/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* DAG Instruction Selector for the AArch64 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 /*189 cases */, 43|128,51/*6571*/, TARGET_VAL(ISD::STORE),// ->6576
/*     5*/    OPC_RecordMemRef,
/*     6*/    OPC_RecordNode, // #0 = 'st' chained node
/*     7*/    OPC_Scope, 50|128,9/*1202*/, /*->1212*/ // 6 children in Scope
/*    10*/      OPC_MoveChild1,
/*    11*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*    14*/      OPC_RecordChild0, // #1 = $Vt
/*    15*/      OPC_Scope, 25|128,1/*153*/, /*->171*/ // 12 children in Scope
/*    18*/        OPC_CheckChild0Type, MVT::v8i16,
/*    20*/        OPC_Scope, 114, /*->136*/ // 2 children in Scope
/*    22*/          OPC_CheckChild1Integer, 0, 
/*    24*/          OPC_CheckType, MVT::i32,
/*    26*/          OPC_MoveParent,
/*    27*/          OPC_RecordChild2, // #2 = $ro_Windexed16:Rn:Rm:extend
/*    28*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    30*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*    32*/          OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*    34*/          OPC_Scope, 25, /*->61*/ // 4 children in Scope
/*    36*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrModeWRO<16>:$ #3 #4 #5 #6
/*    39*/            OPC_EmitMergeInputChains1_0,
/*    40*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/*    43*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 1, 7,  // Results = #8
/*    51*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v8i16] }:$Vt, 0:{ *:[iPTR] }), (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 46
                      // Dst: (STRHroW (EXTRACT_SUBREG:{ *:[f16] } VecListOne128:{ *:[v8i16] }:$Vt, hsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/*    61*/          /*Scope*/ 25, /*->87*/
/*    62*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrModeXRO<16>:$ #3 #4 #5 #6
/*    65*/            OPC_EmitMergeInputChains1_0,
/*    66*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/*    69*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 1, 7,  // Results = #8
/*    77*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v8i16] }:$Vt, 0:{ *:[iPTR] }), (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 46
                      // Dst: (STRHroX (EXTRACT_SUBREG:{ *:[f16] } VecListOne128:{ *:[v8i16] }:$Vt, hsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/*    87*/          /*Scope*/ 23, /*->111*/
/*    88*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrModeIndexed16:$ #3 #4
/*    91*/            OPC_EmitMergeInputChains1_0,
/*    92*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/*    95*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 1, 5,  // Results = #6
/*   103*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v8i16] }:$Vt, 0:{ *:[iPTR] }), (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 40
                      // Dst: (STRHui (EXTRACT_SUBREG:{ *:[f16] } VecListOne128:{ *:[v8i16] }:$Vt, hsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/*   111*/          /*Scope*/ 23, /*->135*/
/*   112*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*   115*/            OPC_EmitMergeInputChains1_0,
/*   116*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/*   119*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 1, 5,  // Results = #6
/*   127*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURHi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v8i16] }:$Vt, 0:{ *:[iPTR] }), (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 40
                      // Dst: (STURHi (EXTRACT_SUBREG:{ *:[f16] } VecListOne128:{ *:[v8i16] }:$Vt, hsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*   135*/          0, /*End of Scope*/
/*   136*/        /*Scope*/ 33, /*->170*/
/*   137*/          OPC_RecordChild1, // #2 = $idx
/*   138*/          OPC_MoveChild1,
/*   139*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   142*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*   144*/          OPC_CheckType, MVT::i64,
/*   146*/          OPC_MoveParent,
/*   147*/          OPC_CheckType, MVT::i32,
/*   149*/          OPC_MoveParent,
/*   150*/          OPC_RecordChild2, // #3 = $Rn
/*   151*/          OPC_CheckChild2Type, MVT::i64,
/*   153*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   155*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   157*/          OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*   159*/          OPC_EmitMergeInputChains1_0,
/*   160*/          OPC_EmitConvertToTarget, 2,
/*   162*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i16), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 4, 3, 
                    // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v8i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 30
                    // Dst: (ST1i16 VecListOne128:{ *:[v8i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*   170*/        0, /*End of Scope*/
/*   171*/      /*Scope*/ 21|128,1/*149*/, /*->322*/
/*   173*/        OPC_CheckChild0Type, MVT::v8f16,
/*   175*/        OPC_Scope, 112, /*->289*/ // 2 children in Scope
/*   177*/          OPC_CheckChild1Integer, 0, 
/*   179*/          OPC_CheckType, MVT::f16,
/*   181*/          OPC_MoveParent,
/*   182*/          OPC_RecordChild2, // #2 = $ro_Windexed16:Rn:Rm:extend
/*   183*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   185*/          OPC_CheckPredicate, 4, // Predicate_store
/*   187*/          OPC_Scope, 25, /*->214*/ // 4 children in Scope
/*   189*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrModeWRO<16>:$ #3 #4 #5 #6
/*   192*/            OPC_EmitMergeInputChains1_0,
/*   193*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/*   196*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 1, 7,  // Results = #8
/*   204*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, 0:{ *:[iPTR] }), (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRHroW (EXTRACT_SUBREG:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, hsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/*   214*/          /*Scope*/ 25, /*->240*/
/*   215*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrModeXRO<16>:$ #3 #4 #5 #6
/*   218*/            OPC_EmitMergeInputChains1_0,
/*   219*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/*   222*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 1, 7,  // Results = #8
/*   230*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, 0:{ *:[iPTR] }), (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRHroX (EXTRACT_SUBREG:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, hsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/*   240*/          /*Scope*/ 23, /*->264*/
/*   241*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrModeIndexed16:$ #3 #4
/*   244*/            OPC_EmitMergeInputChains1_0,
/*   245*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/*   248*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 1, 5,  // Results = #6
/*   256*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, 0:{ *:[iPTR] }), (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STRHui (EXTRACT_SUBREG:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, hsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/*   264*/          /*Scope*/ 23, /*->288*/
/*   265*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*   268*/            OPC_EmitMergeInputChains1_0,
/*   269*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/*   272*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 1, 5,  // Results = #6
/*   280*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURHi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, 0:{ *:[iPTR] }), (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STURHi (EXTRACT_SUBREG:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, hsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*   288*/          0, /*End of Scope*/
/*   289*/        /*Scope*/ 31, /*->321*/
/*   290*/          OPC_RecordChild1, // #2 = $idx
/*   291*/          OPC_MoveChild1,
/*   292*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   295*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*   297*/          OPC_CheckType, MVT::i64,
/*   299*/          OPC_MoveParent,
/*   300*/          OPC_CheckType, MVT::f16,
/*   302*/          OPC_MoveParent,
/*   303*/          OPC_RecordChild2, // #3 = $Rn
/*   304*/          OPC_CheckChild2Type, MVT::i64,
/*   306*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   308*/          OPC_CheckPredicate, 4, // Predicate_store
/*   310*/          OPC_EmitMergeInputChains1_0,
/*   311*/          OPC_EmitConvertToTarget, 2,
/*   313*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i16), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 4, 3, 
                    // Src: (st (vector_extract:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                    // Dst: (ST1i16 VecListOne128:{ *:[v8f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*   321*/        0, /*End of Scope*/
/*   322*/      /*Scope*/ 21|128,1/*149*/, /*->473*/
/*   324*/        OPC_CheckChild0Type, MVT::v4i32,
/*   326*/        OPC_Scope, 112, /*->440*/ // 2 children in Scope
/*   328*/          OPC_CheckChild1Integer, 0, 
/*   330*/          OPC_CheckType, MVT::i32,
/*   332*/          OPC_MoveParent,
/*   333*/          OPC_RecordChild2, // #2 = $ro_Windexed32:Rn:Rm:extend
/*   334*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   336*/          OPC_CheckPredicate, 4, // Predicate_store
/*   338*/          OPC_Scope, 25, /*->365*/ // 4 children in Scope
/*   340*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrModeWRO<32>:$ #3 #4 #5 #6
/*   343*/            OPC_EmitMergeInputChains1_0,
/*   344*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*   347*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*   355*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, 0:{ *:[iPTR] }), (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRSroW (EXTRACT_SUBREG:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, ssub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/*   365*/          /*Scope*/ 25, /*->391*/
/*   366*/            OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrModeXRO<32>:$ #3 #4 #5 #6
/*   369*/            OPC_EmitMergeInputChains1_0,
/*   370*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*   373*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*   381*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, 0:{ *:[iPTR] }), (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRSroX (EXTRACT_SUBREG:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, ssub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/*   391*/          /*Scope*/ 23, /*->415*/
/*   392*/            OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrModeIndexed32:$ #3 #4
/*   395*/            OPC_EmitMergeInputChains1_0,
/*   396*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*   399*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*   407*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, 0:{ *:[iPTR] }), (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STRSui (EXTRACT_SUBREG:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, ssub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/*   415*/          /*Scope*/ 23, /*->439*/
/*   416*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*   419*/            OPC_EmitMergeInputChains1_0,
/*   420*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*   423*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*   431*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURSi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, 0:{ *:[iPTR] }), (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STURSi (EXTRACT_SUBREG:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, ssub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*   439*/          0, /*End of Scope*/
/*   440*/        /*Scope*/ 31, /*->472*/
/*   441*/          OPC_RecordChild1, // #2 = $idx
/*   442*/          OPC_MoveChild1,
/*   443*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   446*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*   448*/          OPC_CheckType, MVT::i64,
/*   450*/          OPC_MoveParent,
/*   451*/          OPC_CheckType, MVT::i32,
/*   453*/          OPC_MoveParent,
/*   454*/          OPC_RecordChild2, // #3 = $Rn
/*   455*/          OPC_CheckChild2Type, MVT::i64,
/*   457*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   459*/          OPC_CheckPredicate, 4, // Predicate_store
/*   461*/          OPC_EmitMergeInputChains1_0,
/*   462*/          OPC_EmitConvertToTarget, 2,
/*   464*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i32), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 4, 3, 
                    // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                    // Dst: (ST1i32 VecListOne128:{ *:[v4i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*   472*/        0, /*End of Scope*/
/*   473*/      /*Scope*/ 21|128,1/*149*/, /*->624*/
/*   475*/        OPC_CheckChild0Type, MVT::v4f32,
/*   477*/        OPC_Scope, 112, /*->591*/ // 2 children in Scope
/*   479*/          OPC_CheckChild1Integer, 0, 
/*   481*/          OPC_CheckType, MVT::f32,
/*   483*/          OPC_MoveParent,
/*   484*/          OPC_RecordChild2, // #2 = $ro_Windexed32:Rn:Rm:extend
/*   485*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   487*/          OPC_CheckPredicate, 4, // Predicate_store
/*   489*/          OPC_Scope, 25, /*->516*/ // 4 children in Scope
/*   491*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrModeWRO<32>:$ #3 #4 #5 #6
/*   494*/            OPC_EmitMergeInputChains1_0,
/*   495*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*   498*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*   506*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[f32] } VecListOne128:{ *:[v4f32] }:$Vt, 0:{ *:[iPTR] }), (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRSroW (EXTRACT_SUBREG:{ *:[i32] } VecListOne128:{ *:[v4f32] }:$Vt, ssub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/*   516*/          /*Scope*/ 25, /*->542*/
/*   517*/            OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrModeXRO<32>:$ #3 #4 #5 #6
/*   520*/            OPC_EmitMergeInputChains1_0,
/*   521*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*   524*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*   532*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[f32] } VecListOne128:{ *:[v4f32] }:$Vt, 0:{ *:[iPTR] }), (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRSroX (EXTRACT_SUBREG:{ *:[i32] } VecListOne128:{ *:[v4f32] }:$Vt, ssub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/*   542*/          /*Scope*/ 23, /*->566*/
/*   543*/            OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrModeIndexed32:$ #3 #4
/*   546*/            OPC_EmitMergeInputChains1_0,
/*   547*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*   550*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*   558*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[f32] } VecListOne128:{ *:[v4f32] }:$Vt, 0:{ *:[iPTR] }), (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STRSui (EXTRACT_SUBREG:{ *:[i32] } VecListOne128:{ *:[v4f32] }:$Vt, ssub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/*   566*/          /*Scope*/ 23, /*->590*/
/*   567*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*   570*/            OPC_EmitMergeInputChains1_0,
/*   571*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*   574*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*   582*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURSi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[f32] } VecListOne128:{ *:[v4f32] }:$Vt, 0:{ *:[iPTR] }), (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STURSi (EXTRACT_SUBREG:{ *:[i32] } VecListOne128:{ *:[v4f32] }:$Vt, ssub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*   590*/          0, /*End of Scope*/
/*   591*/        /*Scope*/ 31, /*->623*/
/*   592*/          OPC_RecordChild1, // #2 = $idx
/*   593*/          OPC_MoveChild1,
/*   594*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   597*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*   599*/          OPC_CheckType, MVT::i64,
/*   601*/          OPC_MoveParent,
/*   602*/          OPC_CheckType, MVT::f32,
/*   604*/          OPC_MoveParent,
/*   605*/          OPC_RecordChild2, // #3 = $Rn
/*   606*/          OPC_CheckChild2Type, MVT::i64,
/*   608*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   610*/          OPC_CheckPredicate, 4, // Predicate_store
/*   612*/          OPC_EmitMergeInputChains1_0,
/*   613*/          OPC_EmitConvertToTarget, 2,
/*   615*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i32), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 4, 3, 
                    // Src: (st (vector_extract:{ *:[f32] } VecListOne128:{ *:[v4f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                    // Dst: (ST1i32 VecListOne128:{ *:[v4f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*   623*/        0, /*End of Scope*/
/*   624*/      /*Scope*/ 21|128,1/*149*/, /*->775*/
/*   626*/        OPC_CheckChild0Type, MVT::v2i64,
/*   628*/        OPC_Scope, 112, /*->742*/ // 2 children in Scope
/*   630*/          OPC_CheckChild1Integer, 0, 
/*   632*/          OPC_CheckType, MVT::i64,
/*   634*/          OPC_MoveParent,
/*   635*/          OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*   636*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   638*/          OPC_CheckPredicate, 4, // Predicate_store
/*   640*/          OPC_Scope, 25, /*->667*/ // 4 children in Scope
/*   642*/            OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*   645*/            OPC_EmitMergeInputChains1_0,
/*   646*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   649*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i64, 2/*#Ops*/, 1, 7,  // Results = #8
/*   657*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, 0:{ *:[iPTR] }), (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRDroW (EXTRACT_SUBREG:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, dsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*   667*/          /*Scope*/ 25, /*->693*/
/*   668*/            OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*   671*/            OPC_EmitMergeInputChains1_0,
/*   672*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   675*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i64, 2/*#Ops*/, 1, 7,  // Results = #8
/*   683*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, 0:{ *:[iPTR] }), (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRDroX (EXTRACT_SUBREG:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, dsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*   693*/          /*Scope*/ 23, /*->717*/
/*   694*/            OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*   697*/            OPC_EmitMergeInputChains1_0,
/*   698*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   701*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   709*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, 0:{ *:[iPTR] }), (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STRDui (EXTRACT_SUBREG:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, dsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*   717*/          /*Scope*/ 23, /*->741*/
/*   718*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*   721*/            OPC_EmitMergeInputChains1_0,
/*   722*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   725*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   733*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, 0:{ *:[iPTR] }), (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STURDi (EXTRACT_SUBREG:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, dsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*   741*/          0, /*End of Scope*/
/*   742*/        /*Scope*/ 31, /*->774*/
/*   743*/          OPC_RecordChild1, // #2 = $idx
/*   744*/          OPC_MoveChild1,
/*   745*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   748*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*   750*/          OPC_CheckType, MVT::i64,
/*   752*/          OPC_MoveParent,
/*   753*/          OPC_CheckType, MVT::i64,
/*   755*/          OPC_MoveParent,
/*   756*/          OPC_RecordChild2, // #3 = $Rn
/*   757*/          OPC_CheckChild2Type, MVT::i64,
/*   759*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   761*/          OPC_CheckPredicate, 4, // Predicate_store
/*   763*/          OPC_EmitMergeInputChains1_0,
/*   764*/          OPC_EmitConvertToTarget, 2,
/*   766*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i64), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 4, 3, 
                    // Src: (st (vector_extract:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                    // Dst: (ST1i64 VecListOne128:{ *:[v2i64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*   774*/        0, /*End of Scope*/
/*   775*/      /*Scope*/ 21|128,1/*149*/, /*->926*/
/*   777*/        OPC_CheckChild0Type, MVT::v2f64,
/*   779*/        OPC_Scope, 112, /*->893*/ // 2 children in Scope
/*   781*/          OPC_CheckChild1Integer, 0, 
/*   783*/          OPC_CheckType, MVT::f64,
/*   785*/          OPC_MoveParent,
/*   786*/          OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*   787*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   789*/          OPC_CheckPredicate, 4, // Predicate_store
/*   791*/          OPC_Scope, 25, /*->818*/ // 4 children in Scope
/*   793*/            OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*   796*/            OPC_EmitMergeInputChains1_0,
/*   797*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   800*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i64, 2/*#Ops*/, 1, 7,  // Results = #8
/*   808*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[f64] } VecListOne128:{ *:[v2f64] }:$Vt, 0:{ *:[iPTR] }), (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRDroW (EXTRACT_SUBREG:{ *:[i64] } VecListOne128:{ *:[v2f64] }:$Vt, dsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*   818*/          /*Scope*/ 25, /*->844*/
/*   819*/            OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*   822*/            OPC_EmitMergeInputChains1_0,
/*   823*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   826*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i64, 2/*#Ops*/, 1, 7,  // Results = #8
/*   834*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 5, 6, 
                      // Src: (st (vector_extract:{ *:[f64] } VecListOne128:{ *:[v2f64] }:$Vt, 0:{ *:[iPTR] }), (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 46
                      // Dst: (STRDroX (EXTRACT_SUBREG:{ *:[i64] } VecListOne128:{ *:[v2f64] }:$Vt, dsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*   844*/          /*Scope*/ 23, /*->868*/
/*   845*/            OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*   848*/            OPC_EmitMergeInputChains1_0,
/*   849*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   852*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   860*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[f64] } VecListOne128:{ *:[v2f64] }:$Vt, 0:{ *:[iPTR] }), (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STRDui (EXTRACT_SUBREG:{ *:[i64] } VecListOne128:{ *:[v2f64] }:$Vt, dsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*   868*/          /*Scope*/ 23, /*->892*/
/*   869*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*   872*/            OPC_EmitMergeInputChains1_0,
/*   873*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   876*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   884*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[f64] } VecListOne128:{ *:[v2f64] }:$Vt, 0:{ *:[iPTR] }), (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                      // Dst: (STURDi (EXTRACT_SUBREG:{ *:[i64] } VecListOne128:{ *:[v2f64] }:$Vt, dsub:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*   892*/          0, /*End of Scope*/
/*   893*/        /*Scope*/ 31, /*->925*/
/*   894*/          OPC_RecordChild1, // #2 = $idx
/*   895*/          OPC_MoveChild1,
/*   896*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   899*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*   901*/          OPC_CheckType, MVT::i64,
/*   903*/          OPC_MoveParent,
/*   904*/          OPC_CheckType, MVT::f64,
/*   906*/          OPC_MoveParent,
/*   907*/          OPC_RecordChild2, // #3 = $Rn
/*   908*/          OPC_CheckChild2Type, MVT::i64,
/*   910*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   912*/          OPC_CheckPredicate, 4, // Predicate_store
/*   914*/          OPC_EmitMergeInputChains1_0,
/*   915*/          OPC_EmitConvertToTarget, 2,
/*   917*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i64), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 4, 3, 
                    // Src: (st (vector_extract:{ *:[f64] } VecListOne128:{ *:[v2f64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                    // Dst: (ST1i64 VecListOne128:{ *:[v2f64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*   925*/        0, /*End of Scope*/
/*   926*/      /*Scope*/ 35, /*->962*/
/*   927*/        OPC_CheckChild0Type, MVT::v16i8,
/*   929*/        OPC_RecordChild1, // #2 = $idx
/*   930*/        OPC_MoveChild1,
/*   931*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   934*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/*   936*/        OPC_CheckType, MVT::i64,
/*   938*/        OPC_MoveParent,
/*   939*/        OPC_CheckType, MVT::i32,
/*   941*/        OPC_MoveParent,
/*   942*/        OPC_RecordChild2, // #3 = $Rn
/*   943*/        OPC_CheckChild2Type, MVT::i64,
/*   945*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   947*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*   949*/        OPC_CheckPredicate, 8, // Predicate_truncstorei8
/*   951*/        OPC_EmitMergeInputChains1_0,
/*   952*/        OPC_EmitConvertToTarget, 2,
/*   954*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i8), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 1, 4, 3, 
                  // Src: (st (vector_extract:{ *:[i32] } VecListOne128:{ *:[v16i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 30
                  // Dst: (ST1i8 VecListOne128:{ *:[v16i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*   962*/      /*Scope*/ 50, /*->1013*/
/*   963*/        OPC_CheckChild0Type, MVT::v8i8,
/*   965*/        OPC_RecordChild1, // #2 = $idx
/*   966*/        OPC_MoveChild1,
/*   967*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*   970*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/*   972*/        OPC_CheckType, MVT::i64,
/*   974*/        OPC_MoveParent,
/*   975*/        OPC_CheckType, MVT::i32,
/*   977*/        OPC_MoveParent,
/*   978*/        OPC_RecordChild2, // #3 = $Rn
/*   979*/        OPC_CheckChild2Type, MVT::i64,
/*   981*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   983*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*   985*/        OPC_CheckPredicate, 8, // Predicate_truncstorei8
/*   987*/        OPC_EmitMergeInputChains1_0,
/*   988*/        OPC_EmitInteger, MVT::i32, 0, 
/*   991*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*   994*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  1003*/        OPC_EmitConvertToTarget, 2,
/*  1005*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i8), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 6, 7, 3, 
                  // Src: (st (vector_extract:{ *:[i32] } VecListOne64:{ *:[v8i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 30
                  // Dst: (ST1i8 (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v8i8] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*  1013*/      /*Scope*/ 50, /*->1064*/
/*  1014*/        OPC_CheckChild0Type, MVT::v4i16,
/*  1016*/        OPC_RecordChild1, // #2 = $idx
/*  1017*/        OPC_MoveChild1,
/*  1018*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1021*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  1023*/        OPC_CheckType, MVT::i64,
/*  1025*/        OPC_MoveParent,
/*  1026*/        OPC_CheckType, MVT::i32,
/*  1028*/        OPC_MoveParent,
/*  1029*/        OPC_RecordChild2, // #3 = $Rn
/*  1030*/        OPC_CheckChild2Type, MVT::i64,
/*  1032*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1034*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1036*/        OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*  1038*/        OPC_EmitMergeInputChains1_0,
/*  1039*/        OPC_EmitInteger, MVT::i32, 0, 
/*  1042*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  1045*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  1054*/        OPC_EmitConvertToTarget, 2,
/*  1056*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i16), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 6, 7, 3, 
                  // Src: (st (vector_extract:{ *:[i32] } VecListOne64:{ *:[v4i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 30
                  // Dst: (ST1i16 (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v4i16] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*  1064*/      /*Scope*/ 48, /*->1113*/
/*  1065*/        OPC_CheckChild0Type, MVT::v2i32,
/*  1067*/        OPC_RecordChild1, // #2 = $idx
/*  1068*/        OPC_MoveChild1,
/*  1069*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1072*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  1074*/        OPC_CheckType, MVT::i64,
/*  1076*/        OPC_MoveParent,
/*  1077*/        OPC_CheckType, MVT::i32,
/*  1079*/        OPC_MoveParent,
/*  1080*/        OPC_RecordChild2, // #3 = $Rn
/*  1081*/        OPC_CheckChild2Type, MVT::i64,
/*  1083*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1085*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1087*/        OPC_EmitMergeInputChains1_0,
/*  1088*/        OPC_EmitInteger, MVT::i32, 0, 
/*  1091*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  1094*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  1103*/        OPC_EmitConvertToTarget, 2,
/*  1105*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i32), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 6, 7, 3, 
                  // Src: (st (vector_extract:{ *:[i32] } VecListOne64:{ *:[v2i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (ST1i32 (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v2i32] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*  1113*/      /*Scope*/ 48, /*->1162*/
/*  1114*/        OPC_CheckChild0Type, MVT::v2f32,
/*  1116*/        OPC_RecordChild1, // #2 = $idx
/*  1117*/        OPC_MoveChild1,
/*  1118*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1121*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  1123*/        OPC_CheckType, MVT::i64,
/*  1125*/        OPC_MoveParent,
/*  1126*/        OPC_CheckType, MVT::f32,
/*  1128*/        OPC_MoveParent,
/*  1129*/        OPC_RecordChild2, // #3 = $Rn
/*  1130*/        OPC_CheckChild2Type, MVT::i64,
/*  1132*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1134*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1136*/        OPC_EmitMergeInputChains1_0,
/*  1137*/        OPC_EmitInteger, MVT::i32, 0, 
/*  1140*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  1143*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  1152*/        OPC_EmitConvertToTarget, 2,
/*  1154*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i32), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 6, 7, 3, 
                  // Src: (st (vector_extract:{ *:[f32] } VecListOne64:{ *:[v2f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (ST1i32 (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v2f32] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*  1162*/      /*Scope*/ 48, /*->1211*/
/*  1163*/        OPC_CheckChild0Type, MVT::v4f16,
/*  1165*/        OPC_RecordChild1, // #2 = $idx
/*  1166*/        OPC_MoveChild1,
/*  1167*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1170*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  1172*/        OPC_CheckType, MVT::i64,
/*  1174*/        OPC_MoveParent,
/*  1175*/        OPC_CheckType, MVT::f16,
/*  1177*/        OPC_MoveParent,
/*  1178*/        OPC_RecordChild2, // #3 = $Rn
/*  1179*/        OPC_CheckChild2Type, MVT::i64,
/*  1181*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1183*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1185*/        OPC_EmitMergeInputChains1_0,
/*  1186*/        OPC_EmitInteger, MVT::i32, 0, 
/*  1189*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  1192*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  1201*/        OPC_EmitConvertToTarget, 2,
/*  1203*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1i16), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 6, 7, 3, 
                  // Src: (st (vector_extract:{ *:[f16] } VecListOne64:{ *:[v4f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (ST1i16 (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v4f16] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/*  1211*/      0, /*End of Scope*/
/*  1212*/    /*Scope*/ 61|128,17/*2237*/, /*->3451*/
/*  1214*/      OPC_RecordChild1, // #1 = $Rt
/*  1215*/      OPC_Scope, 37|128,1/*165*/, /*->1383*/ // 21 children in Scope
/*  1218*/        OPC_CheckChild1Type, MVT::i32,
/*  1220*/        OPC_RecordChild2, // #2 = $ro_Windexed8:Rn:Rm:extend
/*  1221*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1223*/        OPC_Scope, 74, /*->1299*/ // 3 children in Scope
/*  1225*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1227*/          OPC_Scope, 34, /*->1263*/ // 2 children in Scope
/*  1229*/            OPC_CheckPredicate, 8, // Predicate_truncstorei8
/*  1231*/            OPC_Scope, 14, /*->1247*/ // 2 children in Scope
/*  1233*/              OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrModeWRO<8>:$ #3 #4 #5 #6
/*  1236*/              OPC_EmitMergeInputChains1_0,
/*  1237*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st GPR32:{ *:[i32] }:$Rt, (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 29
                        // Dst: (STRBBroW GPR32:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/*  1247*/            /*Scope*/ 14, /*->1262*/
/*  1248*/              OPC_CheckComplexPat, /*CP*/11, /*#*/2, // SelectAddrModeXRO<8>:$ #3 #4 #5 #6
/*  1251*/              OPC_EmitMergeInputChains1_0,
/*  1252*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st GPR32:{ *:[i32] }:$Rt, (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 29
                        // Dst: (STRBBroX GPR32:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/*  1262*/            0, /*End of Scope*/
/*  1263*/          /*Scope*/ 34, /*->1298*/
/*  1264*/            OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*  1266*/            OPC_Scope, 14, /*->1282*/ // 2 children in Scope
/*  1268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrModeWRO<16>:$ #3 #4 #5 #6
/*  1271*/              OPC_EmitMergeInputChains1_0,
/*  1272*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHroW), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st GPR32:{ *:[i32] }:$Rt, (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 29
                        // Dst: (STRHHroW GPR32:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/*  1282*/            /*Scope*/ 14, /*->1297*/
/*  1283*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrModeXRO<16>:$ #3 #4 #5 #6
/*  1286*/              OPC_EmitMergeInputChains1_0,
/*  1287*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHroX), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st GPR32:{ *:[i32] }:$Rt, (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 29
                        // Dst: (STRHHroX GPR32:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/*  1297*/            0, /*End of Scope*/
/*  1298*/          0, /*End of Scope*/
/*  1299*/        /*Scope*/ 47, /*->1347*/
/*  1300*/          OPC_CheckPredicate, 4, // Predicate_store
/*  1302*/          OPC_Scope, 14, /*->1318*/ // 3 children in Scope
/*  1304*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrModeWRO<32>:$ #3 #4 #5 #6
/*  1307*/            OPC_EmitMergeInputChains1_0,
/*  1308*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st GPR32:{ *:[i32] }:$Rt, (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRWroW GPR32:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/*  1318*/          /*Scope*/ 14, /*->1333*/
/*  1319*/            OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrModeXRO<32>:$ #3 #4 #5 #6
/*  1322*/            OPC_EmitMergeInputChains1_0,
/*  1323*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st GPR32:{ *:[i32] }:$Rt, (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRWroX GPR32:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/*  1333*/          /*Scope*/ 12, /*->1346*/
/*  1334*/            OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrModeIndexed32:$ #3 #4
/*  1337*/            OPC_EmitMergeInputChains1_0,
/*  1338*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st GPR32z:{ *:[i32] }:$Rt, (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRWui GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/*  1346*/          0, /*End of Scope*/
/*  1347*/        /*Scope*/ 34, /*->1382*/
/*  1348*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1350*/          OPC_Scope, 14, /*->1366*/ // 2 children in Scope
/*  1352*/            OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*  1354*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrModeIndexed16:$ #3 #4
/*  1357*/            OPC_EmitMergeInputChains1_0,
/*  1358*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st GPR32z:{ *:[i32] }:$Rt, (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 23
                      // Dst: (STRHHui GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/*  1366*/          /*Scope*/ 14, /*->1381*/
/*  1367*/            OPC_CheckPredicate, 8, // Predicate_truncstorei8
/*  1369*/            OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrModeIndexed8:$ #3 #4
/*  1372*/            OPC_EmitMergeInputChains1_0,
/*  1373*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st GPR32z:{ *:[i32] }:$Rt, (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 23
                      // Dst: (STRBBui GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/*  1381*/          0, /*End of Scope*/
/*  1382*/        0, /*End of Scope*/
/*  1383*/      /*Scope*/ 119|128,2/*375*/, /*->1760*/
/*  1385*/        OPC_CheckChild1Type, MVT::i64,
/*  1387*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  1388*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1390*/        OPC_Scope, 34, /*->1426*/ // 4 children in Scope
/*  1392*/          OPC_CheckPredicate, 4, // Predicate_store
/*  1394*/          OPC_Scope, 14, /*->1410*/ // 2 children in Scope
/*  1396*/            OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  1399*/            OPC_EmitMergeInputChains1_0,
/*  1400*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRXroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRXroW GPR64:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  1410*/          /*Scope*/ 14, /*->1425*/
/*  1411*/            OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  1414*/            OPC_EmitMergeInputChains1_0,
/*  1415*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRXroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRXroX GPR64:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  1425*/          0, /*End of Scope*/
/*  1426*/        /*Scope*/ 47|128,1/*175*/, /*->1603*/
/*  1428*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1430*/          OPC_Scope, 56, /*->1488*/ // 3 children in Scope
/*  1432*/            OPC_CheckPredicate, 8, // Predicate_truncstorei8
/*  1434*/            OPC_Scope, 25, /*->1461*/ // 2 children in Scope
/*  1436*/              OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrModeWRO<8>:$ #3 #4 #5 #6
/*  1439*/              OPC_EmitMergeInputChains1_0,
/*  1440*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1443*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*  1451*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 8, 3, 4, 5, 6, 
                        // Src: (st GPR64:{ *:[i64] }:$Rt, (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 29
                        // Dst: (STRBBroW (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/*  1461*/            /*Scope*/ 25, /*->1487*/
/*  1462*/              OPC_CheckComplexPat, /*CP*/11, /*#*/2, // SelectAddrModeXRO<8>:$ #3 #4 #5 #6
/*  1465*/              OPC_EmitMergeInputChains1_0,
/*  1466*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1469*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*  1477*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 8, 3, 4, 5, 6, 
                        // Src: (st GPR64:{ *:[i64] }:$Rt, (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 29
                        // Dst: (STRBBroX (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/*  1487*/            0, /*End of Scope*/
/*  1488*/          /*Scope*/ 56, /*->1545*/
/*  1489*/            OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*  1491*/            OPC_Scope, 25, /*->1518*/ // 2 children in Scope
/*  1493*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrModeWRO<16>:$ #3 #4 #5 #6
/*  1496*/              OPC_EmitMergeInputChains1_0,
/*  1497*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1500*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*  1508*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHroW), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 8, 3, 4, 5, 6, 
                        // Src: (st GPR64:{ *:[i64] }:$Rt, (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 29
                        // Dst: (STRHHroW (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/*  1518*/            /*Scope*/ 25, /*->1544*/
/*  1519*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrModeXRO<16>:$ #3 #4 #5 #6
/*  1522*/              OPC_EmitMergeInputChains1_0,
/*  1523*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1526*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*  1534*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHroX), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 8, 3, 4, 5, 6, 
                        // Src: (st GPR64:{ *:[i64] }:$Rt, (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 29
                        // Dst: (STRHHroX (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/*  1544*/            0, /*End of Scope*/
/*  1545*/          /*Scope*/ 56, /*->1602*/
/*  1546*/            OPC_CheckPredicate, 9, // Predicate_truncstorei32
/*  1548*/            OPC_Scope, 25, /*->1575*/ // 2 children in Scope
/*  1550*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrModeWRO<32>:$ #3 #4 #5 #6
/*  1553*/              OPC_EmitMergeInputChains1_0,
/*  1554*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1557*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*  1565*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWroW), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 8, 3, 4, 5, 6, 
                        // Src: (st GPR64:{ *:[i64] }:$Rt, (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 29
                        // Dst: (STRWroW (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/*  1575*/            /*Scope*/ 25, /*->1601*/
/*  1576*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrModeXRO<32>:$ #3 #4 #5 #6
/*  1579*/              OPC_EmitMergeInputChains1_0,
/*  1580*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1583*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8
/*  1591*/              OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWroX), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 8, 3, 4, 5, 6, 
                        // Src: (st GPR64:{ *:[i64] }:$Rt, (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 29
                        // Dst: (STRWroX (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/*  1601*/            0, /*End of Scope*/
/*  1602*/          0, /*End of Scope*/
/*  1603*/        /*Scope*/ 72, /*->1676*/
/*  1604*/          OPC_CheckPredicate, 4, // Predicate_store
/*  1606*/          OPC_Scope, 54, /*->1662*/ // 2 children in Scope
/*  1608*/            OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  1610*/            OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  1612*/            OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModeIndexed7S32:$ #3 #4
/*  1615*/            OPC_EmitMergeInputChains1_0,
/*  1616*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1619*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1627*/            OPC_EmitInteger, MVT::i64, 32, 
/*  1630*/            OPC_EmitInteger, MVT::i64, 63, 
/*  1633*/            OPC_EmitNode1, TARGET_VAL(AArch64::UBFMXri), 0,
                          MVT::i64, 3/*#Ops*/, 1, 7, 8,  // Results = #9
/*  1642*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1645*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 9, 10,  // Results = #11
/*  1653*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPWi), 0|OPFL_Chain|OPFL_MemRefs,
                          4/*#Ops*/, 6, 11, 3, 4, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (am_indexed7s32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                      // Dst: (STNPWi (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } (UBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rt, 32:{ *:[i64] }, 63:{ *:[i64] }), sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset)
/*  1662*/          /*Scope*/ 12, /*->1675*/
/*  1663*/            OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  1666*/            OPC_EmitMergeInputChains1_0,
/*  1667*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRXui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st GPR64z:{ *:[i64] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRXui GPR64z:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  1675*/          0, /*End of Scope*/
/*  1676*/        /*Scope*/ 82, /*->1759*/
/*  1677*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1679*/          OPC_Scope, 25, /*->1706*/ // 3 children in Scope
/*  1681*/            OPC_CheckPredicate, 9, // Predicate_truncstorei32
/*  1683*/            OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrModeIndexed32:$ #3 #4
/*  1686*/            OPC_EmitMergeInputChains1_0,
/*  1687*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1690*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1698*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 23
                      // Dst: (STRWui (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/*  1706*/          /*Scope*/ 25, /*->1732*/
/*  1707*/            OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*  1709*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrModeIndexed16:$ #3 #4
/*  1712*/            OPC_EmitMergeInputChains1_0,
/*  1713*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1716*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1724*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 23
                      // Dst: (STRHHui (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/*  1732*/          /*Scope*/ 25, /*->1758*/
/*  1733*/            OPC_CheckPredicate, 8, // Predicate_truncstorei8
/*  1735*/            OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrModeIndexed8:$ #3 #4
/*  1738*/            OPC_EmitMergeInputChains1_0,
/*  1739*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  1742*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1750*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 23
                      // Dst: (STRBBui (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/*  1758*/          0, /*End of Scope*/
/*  1759*/        0, /*End of Scope*/
/*  1760*/      /*Scope*/ 52, /*->1813*/
/*  1761*/        OPC_CheckChild1Type, MVT::Untyped,
/*  1763*/        OPC_RecordChild2, // #2 = $ro_Windexed8:Rn:Rm:extend
/*  1764*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1766*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1768*/        OPC_Scope, 14, /*->1784*/ // 3 children in Scope
/*  1770*/          OPC_CheckComplexPat, /*CP*/10, /*#*/2, // SelectAddrModeWRO<8>:$ #3 #4 #5 #6
/*  1773*/          OPC_EmitMergeInputChains1_0,
/*  1774*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR8Op:{ *:[Untyped] }:$Rt, (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRBroW FPR8Op:{ *:[Untyped] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/*  1784*/        /*Scope*/ 14, /*->1799*/
/*  1785*/          OPC_CheckComplexPat, /*CP*/11, /*#*/2, // SelectAddrModeXRO<8>:$ #3 #4 #5 #6
/*  1788*/          OPC_EmitMergeInputChains1_0,
/*  1789*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR8Op:{ *:[Untyped] }:$Rt, (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRBroX FPR8Op:{ *:[Untyped] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/*  1799*/        /*Scope*/ 12, /*->1812*/
/*  1800*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrModeIndexed8:$ #3 #4
/*  1803*/          OPC_EmitMergeInputChains1_0,
/*  1804*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR8Op:{ *:[Untyped] }:$Rt, (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRBui FPR8Op:{ *:[Untyped] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/*  1812*/        0, /*End of Scope*/
/*  1813*/      /*Scope*/ 52, /*->1866*/
/*  1814*/        OPC_CheckChild1Type, MVT::f16,
/*  1816*/        OPC_RecordChild2, // #2 = $ro_Windexed16:Rn:Rm:extend
/*  1817*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1819*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1821*/        OPC_Scope, 14, /*->1837*/ // 3 children in Scope
/*  1823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrModeWRO<16>:$ #3 #4 #5 #6
/*  1826*/          OPC_EmitMergeInputChains1_0,
/*  1827*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR16Op:{ *:[f16] }:$Rt, (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRHroW FPR16Op:{ *:[f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/*  1837*/        /*Scope*/ 14, /*->1852*/
/*  1838*/          OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrModeXRO<16>:$ #3 #4 #5 #6
/*  1841*/          OPC_EmitMergeInputChains1_0,
/*  1842*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR16Op:{ *:[f16] }:$Rt, (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRHroX FPR16Op:{ *:[f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/*  1852*/        /*Scope*/ 12, /*->1865*/
/*  1853*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrModeIndexed16:$ #3 #4
/*  1856*/          OPC_EmitMergeInputChains1_0,
/*  1857*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR16Op:{ *:[f16] }:$Rt, (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRHui FPR16Op:{ *:[f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/*  1865*/        0, /*End of Scope*/
/*  1866*/      /*Scope*/ 52, /*->1919*/
/*  1867*/        OPC_CheckChild1Type, MVT::f32,
/*  1869*/        OPC_RecordChild2, // #2 = $ro_Windexed32:Rn:Rm:extend
/*  1870*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1872*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1874*/        OPC_Scope, 14, /*->1890*/ // 3 children in Scope
/*  1876*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrModeWRO<32>:$ #3 #4 #5 #6
/*  1879*/          OPC_EmitMergeInputChains1_0,
/*  1880*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR32Op:{ *:[f32] }:$Rt, (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRSroW FPR32Op:{ *:[f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/*  1890*/        /*Scope*/ 14, /*->1905*/
/*  1891*/          OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrModeXRO<32>:$ #3 #4 #5 #6
/*  1894*/          OPC_EmitMergeInputChains1_0,
/*  1895*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR32Op:{ *:[f32] }:$Rt, (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRSroX FPR32Op:{ *:[f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/*  1905*/        /*Scope*/ 12, /*->1918*/
/*  1906*/          OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrModeIndexed32:$ #3 #4
/*  1909*/          OPC_EmitMergeInputChains1_0,
/*  1910*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRSui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR32Op:{ *:[f32] }:$Rt, (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRSui FPR32Op:{ *:[f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/*  1918*/        0, /*End of Scope*/
/*  1919*/      /*Scope*/ 52, /*->1972*/
/*  1920*/        OPC_CheckChild1Type, MVT::f64,
/*  1922*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  1923*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1925*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1927*/        OPC_Scope, 14, /*->1943*/ // 3 children in Scope
/*  1929*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  1932*/          OPC_EmitMergeInputChains1_0,
/*  1933*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64Op:{ *:[f64] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroW FPR64Op:{ *:[f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  1943*/        /*Scope*/ 14, /*->1958*/
/*  1944*/          OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  1947*/          OPC_EmitMergeInputChains1_0,
/*  1948*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64Op:{ *:[f64] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroX FPR64Op:{ *:[f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  1958*/        /*Scope*/ 12, /*->1971*/
/*  1959*/          OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  1962*/          OPC_EmitMergeInputChains1_0,
/*  1963*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64Op:{ *:[f64] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRDui FPR64Op:{ *:[f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  1971*/        0, /*End of Scope*/
/*  1972*/      /*Scope*/ 70, /*->2043*/
/*  1973*/        OPC_CheckChild1Type, MVT::f128,
/*  1975*/        OPC_RecordChild2, // #2 = $ro_Windexed128:Rn:Rm:extend
/*  1976*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1978*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1980*/        OPC_Scope, 34, /*->2016*/ // 3 children in Scope
/*  1982*/          OPC_CheckPatternPredicate, 1, // (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize())
/*  1984*/          OPC_Scope, 14, /*->2000*/ // 2 children in Scope
/*  1986*/            OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrModeWRO<128>:$ #3 #4 #5 #6
/*  1989*/            OPC_EmitMergeInputChains1_0,
/*  1990*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[f128] }:$Rt, (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroW FPR128:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  2000*/          /*Scope*/ 14, /*->2015*/
/*  2001*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModeXRO<128>:$ #3 #4 #5 #6
/*  2004*/            OPC_EmitMergeInputChains1_0,
/*  2005*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[f128] }:$Rt, (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroX FPR128:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  2015*/          0, /*End of Scope*/
/*  2016*/        /*Scope*/ 12, /*->2029*/
/*  2017*/          OPC_CheckComplexPat, /*CP*/16, /*#*/2, // SelectAddrModeIndexed128:$ #3 #4
/*  2020*/          OPC_EmitMergeInputChains1_0,
/*  2021*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR128:{ *:[f128] }:$Rt, (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRQui FPR128:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/*  2029*/        /*Scope*/ 12, /*->2042*/
/*  2030*/          OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  2033*/          OPC_EmitMergeInputChains1_0,
/*  2034*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR128:{ *:[f128] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STURQi FPR128:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  2042*/        0, /*End of Scope*/
/*  2043*/      /*Scope*/ 120, /*->2164*/
/*  2044*/        OPC_CheckChild1Type, MVT::v2i32,
/*  2046*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  2047*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2049*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2051*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2053*/        OPC_Scope, 14, /*->2069*/ // 5 children in Scope
/*  2055*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  2058*/          OPC_EmitMergeInputChains1_0,
/*  2059*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v2i32] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroW FPR64:{ *:[v2i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  2069*/        /*Scope*/ 14, /*->2084*/
/*  2070*/          OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  2073*/          OPC_EmitMergeInputChains1_0,
/*  2074*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v2i32] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroX FPR64:{ *:[v2i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  2084*/        /*Scope*/ 52, /*->2137*/
/*  2085*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  2087*/          OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModeIndexed7S32:$ #3 #4
/*  2090*/          OPC_EmitMergeInputChains1_0,
/*  2091*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  2094*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  2102*/          OPC_EmitInteger, MVT::i64, 0, 
/*  2105*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  2108*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/*  2117*/          OPC_EmitInteger, MVT::i64, 1, 
/*  2120*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi32), 0,
                        MVT::i32, 2/*#Ops*/, 9, 10,  // Results = #11
/*  2128*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPSi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 11, 3, 4, 
                    // Src: (st FPR64:{ *:[v2i32] }:$Rt, (am_indexed7s32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPSi (EXTRACT_SUBREG:{ *:[i32] } FPR64:{ *:[v2i32] }:$Rt, ssub:{ *:[i32] }), (CPYi32:{ *:[i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, FPR64:{ *:[v2i32] }:$Rt, dsub:{ *:[i32] }), 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset)
/*  2137*/        /*Scope*/ 12, /*->2150*/
/*  2138*/          OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  2141*/          OPC_EmitMergeInputChains1_0,
/*  2142*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v2i32] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRDui FPR64:{ *:[v2i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  2150*/        /*Scope*/ 12, /*->2163*/
/*  2151*/          OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  2154*/          OPC_EmitMergeInputChains1_0,
/*  2155*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v2i32] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STURDi FPR64:{ *:[v2i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  2163*/        0, /*End of Scope*/
/*  2164*/      /*Scope*/ 67, /*->2232*/
/*  2165*/        OPC_CheckChild1Type, MVT::v2f32,
/*  2167*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  2168*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2170*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2172*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2174*/        OPC_Scope, 14, /*->2190*/ // 4 children in Scope
/*  2176*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  2179*/          OPC_EmitMergeInputChains1_0,
/*  2180*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v2f32] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroW FPR64:{ *:[v2f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  2190*/        /*Scope*/ 14, /*->2205*/
/*  2191*/          OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  2194*/          OPC_EmitMergeInputChains1_0,
/*  2195*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v2f32] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroX FPR64:{ *:[v2f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  2205*/        /*Scope*/ 12, /*->2218*/
/*  2206*/          OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  2209*/          OPC_EmitMergeInputChains1_0,
/*  2210*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v2f32] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRDui FPR64:{ *:[v2f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  2218*/        /*Scope*/ 12, /*->2231*/
/*  2219*/          OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  2222*/          OPC_EmitMergeInputChains1_0,
/*  2223*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v2f32] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STURDi FPR64:{ *:[v2f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  2231*/        0, /*End of Scope*/
/*  2232*/      /*Scope*/ 120, /*->2353*/
/*  2233*/        OPC_CheckChild1Type, MVT::v4i16,
/*  2235*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  2236*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2238*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2240*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2242*/        OPC_Scope, 14, /*->2258*/ // 5 children in Scope
/*  2244*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  2247*/          OPC_EmitMergeInputChains1_0,
/*  2248*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v4i16] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroW FPR64:{ *:[v4i16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  2258*/        /*Scope*/ 14, /*->2273*/
/*  2259*/          OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  2262*/          OPC_EmitMergeInputChains1_0,
/*  2263*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v4i16] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroX FPR64:{ *:[v4i16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  2273*/        /*Scope*/ 52, /*->2326*/
/*  2274*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  2276*/          OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModeIndexed7S32:$ #3 #4
/*  2279*/          OPC_EmitMergeInputChains1_0,
/*  2280*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  2283*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  2291*/          OPC_EmitInteger, MVT::i64, 0, 
/*  2294*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  2297*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/*  2306*/          OPC_EmitInteger, MVT::i64, 1, 
/*  2309*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi32), 0,
                        MVT::i32, 2/*#Ops*/, 9, 10,  // Results = #11
/*  2317*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPSi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 11, 3, 4, 
                    // Src: (st FPR64:{ *:[v4i16] }:$Rt, (am_indexed7s32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPSi (EXTRACT_SUBREG:{ *:[i32] } FPR64:{ *:[v4i16] }:$Rt, ssub:{ *:[i32] }), (CPYi32:{ *:[i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, FPR64:{ *:[v4i16] }:$Rt, dsub:{ *:[i32] }), 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset)
/*  2326*/        /*Scope*/ 12, /*->2339*/
/*  2327*/          OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  2330*/          OPC_EmitMergeInputChains1_0,
/*  2331*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v4i16] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRDui FPR64:{ *:[v4i16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  2339*/        /*Scope*/ 12, /*->2352*/
/*  2340*/          OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  2343*/          OPC_EmitMergeInputChains1_0,
/*  2344*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v4i16] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STURDi FPR64:{ *:[v4i16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  2352*/        0, /*End of Scope*/
/*  2353*/      /*Scope*/ 120, /*->2474*/
/*  2354*/        OPC_CheckChild1Type, MVT::v8i8,
/*  2356*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  2357*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2359*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2361*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2363*/        OPC_Scope, 14, /*->2379*/ // 5 children in Scope
/*  2365*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  2368*/          OPC_EmitMergeInputChains1_0,
/*  2369*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v8i8] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroW FPR64:{ *:[v8i8] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  2379*/        /*Scope*/ 14, /*->2394*/
/*  2380*/          OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  2383*/          OPC_EmitMergeInputChains1_0,
/*  2384*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v8i8] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroX FPR64:{ *:[v8i8] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  2394*/        /*Scope*/ 52, /*->2447*/
/*  2395*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  2397*/          OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModeIndexed7S32:$ #3 #4
/*  2400*/          OPC_EmitMergeInputChains1_0,
/*  2401*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  2404*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  2412*/          OPC_EmitInteger, MVT::i64, 0, 
/*  2415*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  2418*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/*  2427*/          OPC_EmitInteger, MVT::i64, 1, 
/*  2430*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi32), 0,
                        MVT::i32, 2/*#Ops*/, 9, 10,  // Results = #11
/*  2438*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPSi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 11, 3, 4, 
                    // Src: (st FPR64:{ *:[v8i8] }:$Rt, (am_indexed7s32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPSi (EXTRACT_SUBREG:{ *:[i32] } FPR64:{ *:[v8i8] }:$Rt, ssub:{ *:[i32] }), (CPYi32:{ *:[i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, FPR64:{ *:[v8i8] }:$Rt, dsub:{ *:[i32] }), 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset)
/*  2447*/        /*Scope*/ 12, /*->2460*/
/*  2448*/          OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  2451*/          OPC_EmitMergeInputChains1_0,
/*  2452*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v8i8] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRDui FPR64:{ *:[v8i8] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  2460*/        /*Scope*/ 12, /*->2473*/
/*  2461*/          OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  2464*/          OPC_EmitMergeInputChains1_0,
/*  2465*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v8i8] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STURDi FPR64:{ *:[v8i8] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  2473*/        0, /*End of Scope*/
/*  2474*/      /*Scope*/ 67, /*->2542*/
/*  2475*/        OPC_CheckChild1Type, MVT::v4f16,
/*  2477*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  2478*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2480*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2482*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2484*/        OPC_Scope, 14, /*->2500*/ // 4 children in Scope
/*  2486*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  2489*/          OPC_EmitMergeInputChains1_0,
/*  2490*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v4f16] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroW FPR64:{ *:[v4f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  2500*/        /*Scope*/ 14, /*->2515*/
/*  2501*/          OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  2504*/          OPC_EmitMergeInputChains1_0,
/*  2505*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v4f16] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroX FPR64:{ *:[v4f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  2515*/        /*Scope*/ 12, /*->2528*/
/*  2516*/          OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  2519*/          OPC_EmitMergeInputChains1_0,
/*  2520*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v4f16] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRDui FPR64:{ *:[v4f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  2528*/        /*Scope*/ 12, /*->2541*/
/*  2529*/          OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  2532*/          OPC_EmitMergeInputChains1_0,
/*  2533*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v4f16] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STURDi FPR64:{ *:[v4f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  2541*/        0, /*End of Scope*/
/*  2542*/      /*Scope*/ 107, /*->2650*/
/*  2543*/        OPC_CheckChild1Type, MVT::v1i64,
/*  2545*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  2546*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2548*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2550*/        OPC_Scope, 14, /*->2566*/ // 4 children in Scope
/*  2552*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  2555*/          OPC_EmitMergeInputChains1_0,
/*  2556*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v1i64] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroW FPR64:{ *:[v1i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  2566*/        /*Scope*/ 14, /*->2581*/
/*  2567*/          OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  2570*/          OPC_EmitMergeInputChains1_0,
/*  2571*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v1i64] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroX FPR64:{ *:[v1i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  2581*/        /*Scope*/ 54, /*->2636*/
/*  2582*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  2584*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2586*/          OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModeIndexed7S32:$ #3 #4
/*  2589*/          OPC_EmitMergeInputChains1_0,
/*  2590*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  2593*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  2601*/          OPC_EmitInteger, MVT::i64, 0, 
/*  2604*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  2607*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/*  2616*/          OPC_EmitInteger, MVT::i64, 1, 
/*  2619*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi32), 0,
                        MVT::i32, 2/*#Ops*/, 9, 10,  // Results = #11
/*  2627*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPSi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 11, 3, 4, 
                    // Src: (st FPR64:{ *:[v1i64] }:$Rt, (am_indexed7s32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPSi (EXTRACT_SUBREG:{ *:[i32] } FPR64:{ *:[v1i64] }:$Rt, ssub:{ *:[i32] }), (CPYi32:{ *:[i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, FPR64:{ *:[v1i64] }:$Rt, dsub:{ *:[i32] }), 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset)
/*  2636*/        /*Scope*/ 12, /*->2649*/
/*  2637*/          OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  2640*/          OPC_EmitMergeInputChains1_0,
/*  2641*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v1i64] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRDui FPR64:{ *:[v1i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  2649*/        0, /*End of Scope*/
/*  2650*/      /*Scope*/ 107, /*->2758*/
/*  2651*/        OPC_CheckChild1Type, MVT::v1f64,
/*  2653*/        OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/*  2654*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2656*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2658*/        OPC_Scope, 14, /*->2674*/ // 4 children in Scope
/*  2660*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/*  2663*/          OPC_EmitMergeInputChains1_0,
/*  2664*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v1f64] }:$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroW FPR64:{ *:[v1f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/*  2674*/        /*Scope*/ 14, /*->2689*/
/*  2675*/          OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/*  2678*/          OPC_EmitMergeInputChains1_0,
/*  2679*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (st FPR64:{ *:[v1f64] }:$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (STRDroX FPR64:{ *:[v1f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/*  2689*/        /*Scope*/ 54, /*->2744*/
/*  2690*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  2692*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2694*/          OPC_CheckComplexPat, /*CP*/13, /*#*/2, // SelectAddrModeIndexed7S32:$ #3 #4
/*  2697*/          OPC_EmitMergeInputChains1_0,
/*  2698*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  2701*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  2709*/          OPC_EmitInteger, MVT::i64, 0, 
/*  2712*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  2715*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/*  2724*/          OPC_EmitInteger, MVT::i64, 1, 
/*  2727*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi32), 0,
                        MVT::i32, 2/*#Ops*/, 9, 10,  // Results = #11
/*  2735*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPSi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 11, 3, 4, 
                    // Src: (st FPR64:{ *:[v1f64] }:$Rt, (am_indexed7s32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPSi (EXTRACT_SUBREG:{ *:[i32] } FPR64:{ *:[v1f64] }:$Rt, ssub:{ *:[i32] }), (CPYi32:{ *:[i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, FPR64:{ *:[v1f64] }:$Rt, dsub:{ *:[i32] }), 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s4:{ *:[i32] }:$offset)
/*  2744*/        /*Scope*/ 12, /*->2757*/
/*  2745*/          OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/*  2748*/          OPC_EmitMergeInputChains1_0,
/*  2749*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st FPR64:{ *:[v1f64] }:$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                    // Dst: (STRDui FPR64:{ *:[v1f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/*  2757*/        0, /*End of Scope*/
/*  2758*/      /*Scope*/ 115, /*->2874*/
/*  2759*/        OPC_CheckChild1Type, MVT::v2i64,
/*  2761*/        OPC_RecordChild2, // #2 = $ro_Windexed128:Rn:Rm:extend
/*  2762*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2764*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2766*/        OPC_Scope, 34, /*->2802*/ // 3 children in Scope
/*  2768*/          OPC_CheckPatternPredicate, 2, // (Subtarget->isLittleEndian()) && (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize())
/*  2770*/          OPC_Scope, 14, /*->2786*/ // 2 children in Scope
/*  2772*/            OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrModeWRO<128>:$ #3 #4 #5 #6
/*  2775*/            OPC_EmitMergeInputChains1_0,
/*  2776*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v2i64] }:$Rt, (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroW FPR128:{ *:[v2i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  2786*/          /*Scope*/ 14, /*->2801*/
/*  2787*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModeXRO<128>:$ #3 #4 #5 #6
/*  2790*/            OPC_EmitMergeInputChains1_0,
/*  2791*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v2i64] }:$Rt, (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroX FPR128:{ *:[v2i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/*  2801*/          0, /*End of Scope*/
/*  2802*/        /*Scope*/ 39, /*->2842*/
/*  2803*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  2805*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2807*/          OPC_CheckComplexPat, /*CP*/18, /*#*/2, // SelectAddrModeIndexed7S64:$ #3 #4
/*  2810*/          OPC_EmitMergeInputChains1_0,
/*  2811*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  2814*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  2822*/          OPC_EmitInteger, MVT::i64, 1, 
/*  2825*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi64), 0,
                        MVT::i64, 2/*#Ops*/, 1, 7,  // Results = #8
/*  2833*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPDi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 8, 3, 4, 
                    // Src: (st FPR128:{ *:[v2i64] }:$Rt, (am_indexed7s64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s8:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPDi (EXTRACT_SUBREG:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rt, dsub:{ *:[i32] }), (CPYi64:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rt, 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s8:{ *:[i32] }:$offset)
/*  2842*/        /*Scope*/ 30, /*->2873*/
/*  2843*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2845*/          OPC_Scope, 12, /*->2859*/ // 2 children in Scope
/*  2847*/            OPC_CheckComplexPat, /*CP*/16, /*#*/2, // SelectAddrModeIndexed128:$ #3 #4
/*  2850*/            OPC_EmitMergeInputChains1_0,
/*  2851*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v2i64] }:$Rt, (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRQui FPR128:{ *:[v2i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/*  2859*/          /*Scope*/ 12, /*->2872*/
/*  2860*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  2863*/            OPC_EmitMergeInputChains1_0,
/*  2864*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v2i64] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STURQi FPR128:{ *:[v2i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  2872*/          0, /*End of Scope*/
/*  2873*/        0, /*End of Scope*/
/*  2874*/      /*Scope*/ 75, /*->2950*/
/*  2875*/        OPC_CheckChild1Type, MVT::v2f64,
/*  2877*/        OPC_RecordChild2, // #2 = $ro_Windexed128:Rn:Rm:extend
/*  2878*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2880*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2882*/        OPC_Scope, 34, /*->2918*/ // 2 children in Scope
/*  2884*/          OPC_CheckPatternPredicate, 2, // (Subtarget->isLittleEndian()) && (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize())
/*  2886*/          OPC_Scope, 14, /*->2902*/ // 2 children in Scope
/*  2888*/            OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrModeWRO<128>:$ #3 #4 #5 #6
/*  2891*/            OPC_EmitMergeInputChains1_0,
/*  2892*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v2f64] }:$Rt, (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroW FPR128:{ *:[v2f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  2902*/          /*Scope*/ 14, /*->2917*/
/*  2903*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModeXRO<128>:$ #3 #4 #5 #6
/*  2906*/            OPC_EmitMergeInputChains1_0,
/*  2907*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v2f64] }:$Rt, (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroX FPR128:{ *:[v2f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/*  2917*/          0, /*End of Scope*/
/*  2918*/        /*Scope*/ 30, /*->2949*/
/*  2919*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2921*/          OPC_Scope, 12, /*->2935*/ // 2 children in Scope
/*  2923*/            OPC_CheckComplexPat, /*CP*/16, /*#*/2, // SelectAddrModeIndexed128:$ #3 #4
/*  2926*/            OPC_EmitMergeInputChains1_0,
/*  2927*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v2f64] }:$Rt, (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRQui FPR128:{ *:[v2f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/*  2935*/          /*Scope*/ 12, /*->2948*/
/*  2936*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  2939*/            OPC_EmitMergeInputChains1_0,
/*  2940*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v2f64] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STURQi FPR128:{ *:[v2f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  2948*/          0, /*End of Scope*/
/*  2949*/        0, /*End of Scope*/
/*  2950*/      /*Scope*/ 115, /*->3066*/
/*  2951*/        OPC_CheckChild1Type, MVT::v4i32,
/*  2953*/        OPC_RecordChild2, // #2 = $ro_Windexed128:Rn:Rm:extend
/*  2954*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2956*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2958*/        OPC_Scope, 34, /*->2994*/ // 3 children in Scope
/*  2960*/          OPC_CheckPatternPredicate, 2, // (Subtarget->isLittleEndian()) && (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize())
/*  2962*/          OPC_Scope, 14, /*->2978*/ // 2 children in Scope
/*  2964*/            OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrModeWRO<128>:$ #3 #4 #5 #6
/*  2967*/            OPC_EmitMergeInputChains1_0,
/*  2968*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v4i32] }:$Rt, (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroW FPR128:{ *:[v4i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  2978*/          /*Scope*/ 14, /*->2993*/
/*  2979*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModeXRO<128>:$ #3 #4 #5 #6
/*  2982*/            OPC_EmitMergeInputChains1_0,
/*  2983*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v4i32] }:$Rt, (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroX FPR128:{ *:[v4i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/*  2993*/          0, /*End of Scope*/
/*  2994*/        /*Scope*/ 39, /*->3034*/
/*  2995*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  2997*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  2999*/          OPC_CheckComplexPat, /*CP*/18, /*#*/2, // SelectAddrModeIndexed7S64:$ #3 #4
/*  3002*/          OPC_EmitMergeInputChains1_0,
/*  3003*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  3006*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  3014*/          OPC_EmitInteger, MVT::i64, 1, 
/*  3017*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi64), 0,
                        MVT::i64, 2/*#Ops*/, 1, 7,  // Results = #8
/*  3025*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPDi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 8, 3, 4, 
                    // Src: (st FPR128:{ *:[v4i32] }:$Rt, (am_indexed7s64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s8:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPDi (EXTRACT_SUBREG:{ *:[i64] } FPR128:{ *:[v4i32] }:$Rt, dsub:{ *:[i32] }), (CPYi64:{ *:[i64] } FPR128:{ *:[v4i32] }:$Rt, 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s8:{ *:[i32] }:$offset)
/*  3034*/        /*Scope*/ 30, /*->3065*/
/*  3035*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  3037*/          OPC_Scope, 12, /*->3051*/ // 2 children in Scope
/*  3039*/            OPC_CheckComplexPat, /*CP*/16, /*#*/2, // SelectAddrModeIndexed128:$ #3 #4
/*  3042*/            OPC_EmitMergeInputChains1_0,
/*  3043*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v4i32] }:$Rt, (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRQui FPR128:{ *:[v4i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/*  3051*/          /*Scope*/ 12, /*->3064*/
/*  3052*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  3055*/            OPC_EmitMergeInputChains1_0,
/*  3056*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v4i32] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STURQi FPR128:{ *:[v4i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  3064*/          0, /*End of Scope*/
/*  3065*/        0, /*End of Scope*/
/*  3066*/      /*Scope*/ 75, /*->3142*/
/*  3067*/        OPC_CheckChild1Type, MVT::v4f32,
/*  3069*/        OPC_RecordChild2, // #2 = $ro_Windexed128:Rn:Rm:extend
/*  3070*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3072*/        OPC_CheckPredicate, 4, // Predicate_store
/*  3074*/        OPC_Scope, 34, /*->3110*/ // 2 children in Scope
/*  3076*/          OPC_CheckPatternPredicate, 2, // (Subtarget->isLittleEndian()) && (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize())
/*  3078*/          OPC_Scope, 14, /*->3094*/ // 2 children in Scope
/*  3080*/            OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrModeWRO<128>:$ #3 #4 #5 #6
/*  3083*/            OPC_EmitMergeInputChains1_0,
/*  3084*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v4f32] }:$Rt, (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroW FPR128:{ *:[v4f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  3094*/          /*Scope*/ 14, /*->3109*/
/*  3095*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModeXRO<128>:$ #3 #4 #5 #6
/*  3098*/            OPC_EmitMergeInputChains1_0,
/*  3099*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v4f32] }:$Rt, (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroX FPR128:{ *:[v4f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/*  3109*/          0, /*End of Scope*/
/*  3110*/        /*Scope*/ 30, /*->3141*/
/*  3111*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  3113*/          OPC_Scope, 12, /*->3127*/ // 2 children in Scope
/*  3115*/            OPC_CheckComplexPat, /*CP*/16, /*#*/2, // SelectAddrModeIndexed128:$ #3 #4
/*  3118*/            OPC_EmitMergeInputChains1_0,
/*  3119*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v4f32] }:$Rt, (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRQui FPR128:{ *:[v4f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/*  3127*/          /*Scope*/ 12, /*->3140*/
/*  3128*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  3131*/            OPC_EmitMergeInputChains1_0,
/*  3132*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v4f32] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STURQi FPR128:{ *:[v4f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  3140*/          0, /*End of Scope*/
/*  3141*/        0, /*End of Scope*/
/*  3142*/      /*Scope*/ 115, /*->3258*/
/*  3143*/        OPC_CheckChild1Type, MVT::v8i16,
/*  3145*/        OPC_RecordChild2, // #2 = $ro_Windexed128:Rn:Rm:extend
/*  3146*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3148*/        OPC_CheckPredicate, 4, // Predicate_store
/*  3150*/        OPC_Scope, 34, /*->3186*/ // 3 children in Scope
/*  3152*/          OPC_CheckPatternPredicate, 2, // (Subtarget->isLittleEndian()) && (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize())
/*  3154*/          OPC_Scope, 14, /*->3170*/ // 2 children in Scope
/*  3156*/            OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrModeWRO<128>:$ #3 #4 #5 #6
/*  3159*/            OPC_EmitMergeInputChains1_0,
/*  3160*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v8i16] }:$Rt, (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroW FPR128:{ *:[v8i16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  3170*/          /*Scope*/ 14, /*->3185*/
/*  3171*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModeXRO<128>:$ #3 #4 #5 #6
/*  3174*/            OPC_EmitMergeInputChains1_0,
/*  3175*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v8i16] }:$Rt, (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroX FPR128:{ *:[v8i16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/*  3185*/          0, /*End of Scope*/
/*  3186*/        /*Scope*/ 39, /*->3226*/
/*  3187*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  3189*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  3191*/          OPC_CheckComplexPat, /*CP*/18, /*#*/2, // SelectAddrModeIndexed7S64:$ #3 #4
/*  3194*/          OPC_EmitMergeInputChains1_0,
/*  3195*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  3198*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  3206*/          OPC_EmitInteger, MVT::i64, 1, 
/*  3209*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi64), 0,
                        MVT::i64, 2/*#Ops*/, 1, 7,  // Results = #8
/*  3217*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPDi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 8, 3, 4, 
                    // Src: (st FPR128:{ *:[v8i16] }:$Rt, (am_indexed7s64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s8:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPDi (EXTRACT_SUBREG:{ *:[i64] } FPR128:{ *:[v8i16] }:$Rt, dsub:{ *:[i32] }), (CPYi64:{ *:[i64] } FPR128:{ *:[v8i16] }:$Rt, 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s8:{ *:[i32] }:$offset)
/*  3226*/        /*Scope*/ 30, /*->3257*/
/*  3227*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  3229*/          OPC_Scope, 12, /*->3243*/ // 2 children in Scope
/*  3231*/            OPC_CheckComplexPat, /*CP*/16, /*#*/2, // SelectAddrModeIndexed128:$ #3 #4
/*  3234*/            OPC_EmitMergeInputChains1_0,
/*  3235*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v8i16] }:$Rt, (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRQui FPR128:{ *:[v8i16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/*  3243*/          /*Scope*/ 12, /*->3256*/
/*  3244*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  3247*/            OPC_EmitMergeInputChains1_0,
/*  3248*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v8i16] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STURQi FPR128:{ *:[v8i16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  3256*/          0, /*End of Scope*/
/*  3257*/        0, /*End of Scope*/
/*  3258*/      /*Scope*/ 115, /*->3374*/
/*  3259*/        OPC_CheckChild1Type, MVT::v16i8,
/*  3261*/        OPC_RecordChild2, // #2 = $ro_Windexed128:Rn:Rm:extend
/*  3262*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3264*/        OPC_CheckPredicate, 4, // Predicate_store
/*  3266*/        OPC_Scope, 34, /*->3302*/ // 3 children in Scope
/*  3268*/          OPC_CheckPatternPredicate, 2, // (Subtarget->isLittleEndian()) && (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize())
/*  3270*/          OPC_Scope, 14, /*->3286*/ // 2 children in Scope
/*  3272*/            OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrModeWRO<128>:$ #3 #4 #5 #6
/*  3275*/            OPC_EmitMergeInputChains1_0,
/*  3276*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v16i8] }:$Rt, (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroW FPR128:{ *:[v16i8] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  3286*/          /*Scope*/ 14, /*->3301*/
/*  3287*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModeXRO<128>:$ #3 #4 #5 #6
/*  3290*/            OPC_EmitMergeInputChains1_0,
/*  3291*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v16i8] }:$Rt, (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroX FPR128:{ *:[v16i8] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/*  3301*/          0, /*End of Scope*/
/*  3302*/        /*Scope*/ 39, /*->3342*/
/*  3303*/          OPC_CheckPredicate, 10, // Predicate_nontemporalstore
/*  3305*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  3307*/          OPC_CheckComplexPat, /*CP*/18, /*#*/2, // SelectAddrModeIndexed7S64:$ #3 #4
/*  3310*/          OPC_EmitMergeInputChains1_0,
/*  3311*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  3314*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  3322*/          OPC_EmitInteger, MVT::i64, 1, 
/*  3325*/          OPC_EmitNode1, TARGET_VAL(AArch64::CPYi64), 0,
                        MVT::i64, 2/*#Ops*/, 1, 7,  // Results = #8
/*  3333*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STNPDi), 0|OPFL_Chain|OPFL_MemRefs,
                        4/*#Ops*/, 6, 8, 3, 4, 
                    // Src: (st FPR128:{ *:[v16i8] }:$Rt, (am_indexed7s64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, simm7s8:{ *:[i32] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nontemporalstore>> - Complexity = 28
                    // Dst: (STNPDi (EXTRACT_SUBREG:{ *:[i64] } FPR128:{ *:[v16i8] }:$Rt, dsub:{ *:[i32] }), (CPYi64:{ *:[i64] } FPR128:{ *:[v16i8] }:$Rt, 1:{ *:[i64] }), GPR64sp:{ *:[i64] }:$Rn, simm7s8:{ *:[i32] }:$offset)
/*  3342*/        /*Scope*/ 30, /*->3373*/
/*  3343*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  3345*/          OPC_Scope, 12, /*->3359*/ // 2 children in Scope
/*  3347*/            OPC_CheckComplexPat, /*CP*/16, /*#*/2, // SelectAddrModeIndexed128:$ #3 #4
/*  3350*/            OPC_EmitMergeInputChains1_0,
/*  3351*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v16i8] }:$Rt, (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRQui FPR128:{ *:[v16i8] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/*  3359*/          /*Scope*/ 12, /*->3372*/
/*  3360*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  3363*/            OPC_EmitMergeInputChains1_0,
/*  3364*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v16i8] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STURQi FPR128:{ *:[v16i8] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  3372*/          0, /*End of Scope*/
/*  3373*/        0, /*End of Scope*/
/*  3374*/      /*Scope*/ 75, /*->3450*/
/*  3375*/        OPC_CheckChild1Type, MVT::v8f16,
/*  3377*/        OPC_RecordChild2, // #2 = $ro_Windexed128:Rn:Rm:extend
/*  3378*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3380*/        OPC_CheckPredicate, 4, // Predicate_store
/*  3382*/        OPC_Scope, 34, /*->3418*/ // 2 children in Scope
/*  3384*/          OPC_CheckPatternPredicate, 2, // (Subtarget->isLittleEndian()) && (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize())
/*  3386*/          OPC_Scope, 14, /*->3402*/ // 2 children in Scope
/*  3388*/            OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrModeWRO<128>:$ #3 #4 #5 #6
/*  3391*/            OPC_EmitMergeInputChains1_0,
/*  3392*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v8f16] }:$Rt, (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroW FPR128:{ *:[v8f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/*  3402*/          /*Scope*/ 14, /*->3417*/
/*  3403*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModeXRO<128>:$ #3 #4 #5 #6
/*  3406*/            OPC_EmitMergeInputChains1_0,
/*  3407*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st FPR128:{ *:[v8f16] }:$Rt, (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                      // Dst: (STRQroX FPR128:{ *:[v8f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/*  3417*/          0, /*End of Scope*/
/*  3418*/        /*Scope*/ 30, /*->3449*/
/*  3419*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/*  3421*/          OPC_Scope, 12, /*->3435*/ // 2 children in Scope
/*  3423*/            OPC_CheckComplexPat, /*CP*/16, /*#*/2, // SelectAddrModeIndexed128:$ #3 #4
/*  3426*/            OPC_EmitMergeInputChains1_0,
/*  3427*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v8f16] }:$Rt, (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STRQui FPR128:{ *:[v8f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/*  3435*/          /*Scope*/ 12, /*->3448*/
/*  3436*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  3439*/            OPC_EmitMergeInputChains1_0,
/*  3440*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st FPR128:{ *:[v8f16] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
                      // Dst: (STURQi FPR128:{ *:[v8f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  3448*/          0, /*End of Scope*/
/*  3449*/        0, /*End of Scope*/
/*  3450*/      0, /*End of Scope*/
/*  3451*/    /*Scope*/ 54|128,5/*694*/, /*->4147*/
/*  3453*/      OPC_MoveChild1,
/*  3454*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*  3457*/      OPC_RecordChild0, // #1 = $Vt
/*  3458*/      OPC_Scope, 42, /*->3502*/ // 14 children in Scope
/*  3460*/        OPC_CheckChild0Type, MVT::v16i8,
/*  3462*/        OPC_RecordChild1, // #2 = $idx
/*  3463*/        OPC_MoveChild1,
/*  3464*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3467*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/*  3469*/        OPC_CheckType, MVT::i64,
/*  3471*/        OPC_MoveParent,
/*  3472*/        OPC_CheckType, MVT::i32,
/*  3474*/        OPC_MoveParent,
/*  3475*/        OPC_RecordChild2, // #3 = $Rn
/*  3476*/        OPC_CheckChild3Integer, 1, 
/*  3478*/        OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  3480*/        OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  3482*/        OPC_CheckPredicate, 8, // Predicate_post_truncsti8
/*  3484*/        OPC_CheckType, MVT::i64,
/*  3486*/        OPC_EmitMergeInputChains1_0,
/*  3487*/        OPC_EmitConvertToTarget, 2,
/*  3489*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3492*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i8_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 4, 3, 5, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne128:{ *:[v16i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 1:{ *:[iPTR] })<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 16
                  // Dst: (ST1i8_POST:{ *:[i64] } VecListOne128:{ *:[v16i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3502*/      /*Scope*/ 42, /*->3545*/
/*  3503*/        OPC_CheckChild0Type, MVT::v8i16,
/*  3505*/        OPC_RecordChild1, // #2 = $idx
/*  3506*/        OPC_MoveChild1,
/*  3507*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3510*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  3512*/        OPC_CheckType, MVT::i64,
/*  3514*/        OPC_MoveParent,
/*  3515*/        OPC_CheckType, MVT::i32,
/*  3517*/        OPC_MoveParent,
/*  3518*/        OPC_RecordChild2, // #3 = $Rn
/*  3519*/        OPC_CheckChild3Integer, 2, 
/*  3521*/        OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  3523*/        OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  3525*/        OPC_CheckPredicate, 2, // Predicate_post_truncsti16
/*  3527*/        OPC_CheckType, MVT::i64,
/*  3529*/        OPC_EmitMergeInputChains1_0,
/*  3530*/        OPC_EmitConvertToTarget, 2,
/*  3532*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3535*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i16_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 4, 3, 5, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne128:{ *:[v8i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 2:{ *:[iPTR] })<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 16
                  // Dst: (ST1i16_POST:{ *:[i64] } VecListOne128:{ *:[v8i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3545*/      /*Scope*/ 40, /*->3586*/
/*  3546*/        OPC_CheckChild0Type, MVT::v4i32,
/*  3548*/        OPC_RecordChild1, // #2 = $idx
/*  3549*/        OPC_MoveChild1,
/*  3550*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3553*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  3555*/        OPC_CheckType, MVT::i64,
/*  3557*/        OPC_MoveParent,
/*  3558*/        OPC_CheckType, MVT::i32,
/*  3560*/        OPC_MoveParent,
/*  3561*/        OPC_RecordChild2, // #3 = $Rn
/*  3562*/        OPC_CheckChild3Integer, 4, 
/*  3564*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  3566*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  3568*/        OPC_CheckType, MVT::i64,
/*  3570*/        OPC_EmitMergeInputChains1_0,
/*  3571*/        OPC_EmitConvertToTarget, 2,
/*  3573*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3576*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i32_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 4, 3, 5, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 4:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i32_POST:{ *:[i64] } VecListOne128:{ *:[v4i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3586*/      /*Scope*/ 40, /*->3627*/
/*  3587*/        OPC_CheckChild0Type, MVT::v4f32,
/*  3589*/        OPC_RecordChild1, // #2 = $idx
/*  3590*/        OPC_MoveChild1,
/*  3591*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3594*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  3596*/        OPC_CheckType, MVT::i64,
/*  3598*/        OPC_MoveParent,
/*  3599*/        OPC_CheckType, MVT::f32,
/*  3601*/        OPC_MoveParent,
/*  3602*/        OPC_RecordChild2, // #3 = $Rn
/*  3603*/        OPC_CheckChild3Integer, 4, 
/*  3605*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  3607*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  3609*/        OPC_CheckType, MVT::i64,
/*  3611*/        OPC_EmitMergeInputChains1_0,
/*  3612*/        OPC_EmitConvertToTarget, 2,
/*  3614*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3617*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i32_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 4, 3, 5, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f32] } VecListOne128:{ *:[v4f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 4:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i32_POST:{ *:[i64] } VecListOne128:{ *:[v4f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3627*/      /*Scope*/ 40, /*->3668*/
/*  3628*/        OPC_CheckChild0Type, MVT::v2i64,
/*  3630*/        OPC_RecordChild1, // #2 = $idx
/*  3631*/        OPC_MoveChild1,
/*  3632*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3635*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*  3637*/        OPC_CheckType, MVT::i64,
/*  3639*/        OPC_MoveParent,
/*  3640*/        OPC_CheckType, MVT::i64,
/*  3642*/        OPC_MoveParent,
/*  3643*/        OPC_RecordChild2, // #3 = $Rn
/*  3644*/        OPC_CheckChild3Integer, 8, 
/*  3646*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  3648*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  3650*/        OPC_CheckType, MVT::i64,
/*  3652*/        OPC_EmitMergeInputChains1_0,
/*  3653*/        OPC_EmitConvertToTarget, 2,
/*  3655*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3658*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i64_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 4, 3, 5, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 8:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i64_POST:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3668*/      /*Scope*/ 40, /*->3709*/
/*  3669*/        OPC_CheckChild0Type, MVT::v2f64,
/*  3671*/        OPC_RecordChild1, // #2 = $idx
/*  3672*/        OPC_MoveChild1,
/*  3673*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3676*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*  3678*/        OPC_CheckType, MVT::i64,
/*  3680*/        OPC_MoveParent,
/*  3681*/        OPC_CheckType, MVT::f64,
/*  3683*/        OPC_MoveParent,
/*  3684*/        OPC_RecordChild2, // #3 = $Rn
/*  3685*/        OPC_CheckChild3Integer, 8, 
/*  3687*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  3689*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  3691*/        OPC_CheckType, MVT::i64,
/*  3693*/        OPC_EmitMergeInputChains1_0,
/*  3694*/        OPC_EmitConvertToTarget, 2,
/*  3696*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3699*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i64_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 4, 3, 5, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f64] } VecListOne128:{ *:[v2f64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 8:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i64_POST:{ *:[i64] } VecListOne128:{ *:[v2f64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3709*/      /*Scope*/ 40, /*->3750*/
/*  3710*/        OPC_CheckChild0Type, MVT::v8f16,
/*  3712*/        OPC_RecordChild1, // #2 = $idx
/*  3713*/        OPC_MoveChild1,
/*  3714*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3717*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  3719*/        OPC_CheckType, MVT::i64,
/*  3721*/        OPC_MoveParent,
/*  3722*/        OPC_CheckType, MVT::f16,
/*  3724*/        OPC_MoveParent,
/*  3725*/        OPC_RecordChild2, // #3 = $Rn
/*  3726*/        OPC_CheckChild3Integer, 2, 
/*  3728*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  3730*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  3732*/        OPC_CheckType, MVT::i64,
/*  3734*/        OPC_EmitMergeInputChains1_0,
/*  3735*/        OPC_EmitConvertToTarget, 2,
/*  3737*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3740*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i16_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 4, 3, 5, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 2:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i16_POST:{ *:[i64] } VecListOne128:{ *:[v8f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3750*/      /*Scope*/ 57, /*->3808*/
/*  3751*/        OPC_CheckChild0Type, MVT::v8i8,
/*  3753*/        OPC_RecordChild1, // #2 = $idx
/*  3754*/        OPC_MoveChild1,
/*  3755*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3758*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/*  3760*/        OPC_CheckType, MVT::i64,
/*  3762*/        OPC_MoveParent,
/*  3763*/        OPC_CheckType, MVT::i32,
/*  3765*/        OPC_MoveParent,
/*  3766*/        OPC_RecordChild2, // #3 = $Rn
/*  3767*/        OPC_CheckChild3Integer, 1, 
/*  3769*/        OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  3771*/        OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  3773*/        OPC_CheckPredicate, 8, // Predicate_post_truncsti8
/*  3775*/        OPC_CheckType, MVT::i64,
/*  3777*/        OPC_EmitMergeInputChains1_0,
/*  3778*/        OPC_EmitInteger, MVT::i32, 0, 
/*  3781*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  3784*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  3793*/        OPC_EmitConvertToTarget, 2,
/*  3795*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3798*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i8_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 6, 7, 3, 8, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne64:{ *:[v8i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 1:{ *:[iPTR] })<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 16
                  // Dst: (ST1i8_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v8i8] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3808*/      /*Scope*/ 57, /*->3866*/
/*  3809*/        OPC_CheckChild0Type, MVT::v4i16,
/*  3811*/        OPC_RecordChild1, // #2 = $idx
/*  3812*/        OPC_MoveChild1,
/*  3813*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3816*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  3818*/        OPC_CheckType, MVT::i64,
/*  3820*/        OPC_MoveParent,
/*  3821*/        OPC_CheckType, MVT::i32,
/*  3823*/        OPC_MoveParent,
/*  3824*/        OPC_RecordChild2, // #3 = $Rn
/*  3825*/        OPC_CheckChild3Integer, 2, 
/*  3827*/        OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  3829*/        OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  3831*/        OPC_CheckPredicate, 2, // Predicate_post_truncsti16
/*  3833*/        OPC_CheckType, MVT::i64,
/*  3835*/        OPC_EmitMergeInputChains1_0,
/*  3836*/        OPC_EmitInteger, MVT::i32, 0, 
/*  3839*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  3842*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  3851*/        OPC_EmitConvertToTarget, 2,
/*  3853*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3856*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i16_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 6, 7, 3, 8, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne64:{ *:[v4i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 2:{ *:[iPTR] })<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 16
                  // Dst: (ST1i16_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v4i16] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3866*/      /*Scope*/ 55, /*->3922*/
/*  3867*/        OPC_CheckChild0Type, MVT::v2i32,
/*  3869*/        OPC_RecordChild1, // #2 = $idx
/*  3870*/        OPC_MoveChild1,
/*  3871*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3874*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  3876*/        OPC_CheckType, MVT::i64,
/*  3878*/        OPC_MoveParent,
/*  3879*/        OPC_CheckType, MVT::i32,
/*  3881*/        OPC_MoveParent,
/*  3882*/        OPC_RecordChild2, // #3 = $Rn
/*  3883*/        OPC_CheckChild3Integer, 4, 
/*  3885*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  3887*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  3889*/        OPC_CheckType, MVT::i64,
/*  3891*/        OPC_EmitMergeInputChains1_0,
/*  3892*/        OPC_EmitInteger, MVT::i32, 0, 
/*  3895*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  3898*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  3907*/        OPC_EmitConvertToTarget, 2,
/*  3909*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3912*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i32_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 6, 7, 3, 8, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne64:{ *:[v2i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 4:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i32_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v2i32] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3922*/      /*Scope*/ 55, /*->3978*/
/*  3923*/        OPC_CheckChild0Type, MVT::v2f32,
/*  3925*/        OPC_RecordChild1, // #2 = $idx
/*  3926*/        OPC_MoveChild1,
/*  3927*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3930*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  3932*/        OPC_CheckType, MVT::i64,
/*  3934*/        OPC_MoveParent,
/*  3935*/        OPC_CheckType, MVT::f32,
/*  3937*/        OPC_MoveParent,
/*  3938*/        OPC_RecordChild2, // #3 = $Rn
/*  3939*/        OPC_CheckChild3Integer, 4, 
/*  3941*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  3943*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  3945*/        OPC_CheckType, MVT::i64,
/*  3947*/        OPC_EmitMergeInputChains1_0,
/*  3948*/        OPC_EmitInteger, MVT::i32, 0, 
/*  3951*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  3954*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  3963*/        OPC_EmitConvertToTarget, 2,
/*  3965*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  3968*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i32_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 6, 7, 3, 8, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f32] } VecListOne64:{ *:[v2f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 4:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i32_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v2f32] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  3978*/      /*Scope*/ 55, /*->4034*/
/*  3979*/        OPC_CheckChild0Type, MVT::v1i64,
/*  3981*/        OPC_RecordChild1, // #2 = $idx
/*  3982*/        OPC_MoveChild1,
/*  3983*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3986*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*  3988*/        OPC_CheckType, MVT::i64,
/*  3990*/        OPC_MoveParent,
/*  3991*/        OPC_CheckType, MVT::i64,
/*  3993*/        OPC_MoveParent,
/*  3994*/        OPC_RecordChild2, // #3 = $Rn
/*  3995*/        OPC_CheckChild3Integer, 8, 
/*  3997*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  3999*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4001*/        OPC_CheckType, MVT::i64,
/*  4003*/        OPC_EmitMergeInputChains1_0,
/*  4004*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4007*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  4010*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  4019*/        OPC_EmitConvertToTarget, 2,
/*  4021*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  4024*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i64_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 6, 7, 3, 8, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i64] } VecListOne64:{ *:[v1i64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 8:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i64_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v1i64] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  4034*/      /*Scope*/ 55, /*->4090*/
/*  4035*/        OPC_CheckChild0Type, MVT::v1f64,
/*  4037*/        OPC_RecordChild1, // #2 = $idx
/*  4038*/        OPC_MoveChild1,
/*  4039*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4042*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*  4044*/        OPC_CheckType, MVT::i64,
/*  4046*/        OPC_MoveParent,
/*  4047*/        OPC_CheckType, MVT::f64,
/*  4049*/        OPC_MoveParent,
/*  4050*/        OPC_RecordChild2, // #3 = $Rn
/*  4051*/        OPC_CheckChild3Integer, 8, 
/*  4053*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4055*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4057*/        OPC_CheckType, MVT::i64,
/*  4059*/        OPC_EmitMergeInputChains1_0,
/*  4060*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4063*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  4066*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  4075*/        OPC_EmitConvertToTarget, 2,
/*  4077*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  4080*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i64_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 6, 7, 3, 8, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f64] } VecListOne64:{ *:[v1f64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 8:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i64_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v1f64] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  4090*/      /*Scope*/ 55, /*->4146*/
/*  4091*/        OPC_CheckChild0Type, MVT::v4f16,
/*  4093*/        OPC_RecordChild1, // #2 = $idx
/*  4094*/        OPC_MoveChild1,
/*  4095*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4098*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  4100*/        OPC_CheckType, MVT::i64,
/*  4102*/        OPC_MoveParent,
/*  4103*/        OPC_CheckType, MVT::f16,
/*  4105*/        OPC_MoveParent,
/*  4106*/        OPC_RecordChild2, // #3 = $Rn
/*  4107*/        OPC_CheckChild3Integer, 2, 
/*  4109*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4111*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4113*/        OPC_CheckType, MVT::i64,
/*  4115*/        OPC_EmitMergeInputChains1_0,
/*  4116*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4119*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  4122*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*  4131*/        OPC_EmitConvertToTarget, 2,
/*  4133*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/*  4136*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i16_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 6, 7, 3, 8, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f16] } VecListOne64:{ *:[v4f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn, 2:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 16
                  // Dst: (ST1i16_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v4f16] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn, XZR:{ *:[i64] })
/*  4146*/      0, /*End of Scope*/
/*  4147*/    /*Scope*/ 51|128,2/*307*/, /*->4456*/
/*  4149*/      OPC_RecordChild1, // #1 = $Rt
/*  4150*/      OPC_Scope, 105, /*->4257*/ // 9 children in Scope
/*  4152*/        OPC_CheckChild1Type, MVT::i64,
/*  4154*/        OPC_RecordChild2, // #2 = $am_unscaled64:Rn:offset
/*  4155*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4157*/        OPC_Scope, 14, /*->4173*/ // 2 children in Scope
/*  4159*/          OPC_CheckPredicate, 4, // Predicate_store
/*  4161*/          OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  4164*/          OPC_EmitMergeInputChains1_0,
/*  4165*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURXi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st GPR64z:{ *:[i64] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 14
                    // Dst: (STURXi GPR64z:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4173*/        /*Scope*/ 82, /*->4256*/
/*  4174*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  4176*/          OPC_Scope, 25, /*->4203*/ // 3 children in Scope
/*  4178*/            OPC_CheckPredicate, 9, // Predicate_truncstorei32
/*  4180*/            OPC_CheckComplexPat, /*CP*/19, /*#*/2, // SelectAddrModeUnscaled32:$ #3 #4
/*  4183*/            OPC_EmitMergeInputChains1_0,
/*  4184*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  4187*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  4195*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURWi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 13
                      // Dst: (STURWi (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  4203*/          /*Scope*/ 25, /*->4229*/
/*  4204*/            OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*  4206*/            OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrModeUnscaled16:$ #3 #4
/*  4209*/            OPC_EmitMergeInputChains1_0,
/*  4210*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  4213*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  4221*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                      // Dst: (STURHHi (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  4229*/          /*Scope*/ 25, /*->4255*/
/*  4230*/            OPC_CheckPredicate, 8, // Predicate_truncstorei8
/*  4232*/            OPC_CheckComplexPat, /*CP*/21, /*#*/2, // SelectAddrModeUnscaled8:$ #3 #4
/*  4235*/            OPC_EmitMergeInputChains1_0,
/*  4236*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  4239*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  4247*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st GPR64:{ *:[i64] }:$Rt, (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                      // Dst: (STURBBi (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  4255*/          0, /*End of Scope*/
/*  4256*/        0, /*End of Scope*/
/*  4257*/      /*Scope*/ 57, /*->4315*/
/*  4258*/        OPC_CheckChild1Type, MVT::i32,
/*  4260*/        OPC_RecordChild2, // #2 = $am_unscaled32:Rn:offset
/*  4261*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4263*/        OPC_Scope, 14, /*->4279*/ // 2 children in Scope
/*  4265*/          OPC_CheckPredicate, 4, // Predicate_store
/*  4267*/          OPC_CheckComplexPat, /*CP*/19, /*#*/2, // SelectAddrModeUnscaled32:$ #3 #4
/*  4270*/          OPC_EmitMergeInputChains1_0,
/*  4271*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURWi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st GPR32z:{ *:[i32] }:$Rt, (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 14
                    // Dst: (STURWi GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4279*/        /*Scope*/ 34, /*->4314*/
/*  4280*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  4282*/          OPC_Scope, 14, /*->4298*/ // 2 children in Scope
/*  4284*/            OPC_CheckPredicate, 2, // Predicate_truncstorei16
/*  4286*/            OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrModeUnscaled16:$ #3 #4
/*  4289*/            OPC_EmitMergeInputChains1_0,
/*  4290*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st GPR32z:{ *:[i32] }:$Rt, (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 14
                      // Dst: (STURHHi GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4298*/          /*Scope*/ 14, /*->4313*/
/*  4299*/            OPC_CheckPredicate, 8, // Predicate_truncstorei8
/*  4301*/            OPC_CheckComplexPat, /*CP*/21, /*#*/2, // SelectAddrModeUnscaled8:$ #3 #4
/*  4304*/            OPC_EmitMergeInputChains1_0,
/*  4305*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st GPR32z:{ *:[i32] }:$Rt, (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 14
                      // Dst: (STURBBi GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4313*/          0, /*End of Scope*/
/*  4314*/        0, /*End of Scope*/
/*  4315*/      /*Scope*/ 19, /*->4335*/
/*  4316*/        OPC_CheckChild1Type, MVT::Untyped,
/*  4318*/        OPC_RecordChild2, // #2 = $am_unscaled8:Rn:offset
/*  4319*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4321*/        OPC_CheckPredicate, 4, // Predicate_store
/*  4323*/        OPC_CheckComplexPat, /*CP*/21, /*#*/2, // SelectAddrModeUnscaled8:$ #3 #4
/*  4326*/        OPC_EmitMergeInputChains1_0,
/*  4327*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURBi), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (st FPR8Op:{ *:[Untyped] }:$Rt, (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 14
                  // Dst: (STURBi FPR8Op:{ *:[Untyped] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4335*/      /*Scope*/ 19, /*->4355*/
/*  4336*/        OPC_CheckChild1Type, MVT::f16,
/*  4338*/        OPC_RecordChild2, // #2 = $am_unscaled16:Rn:offset
/*  4339*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4341*/        OPC_CheckPredicate, 4, // Predicate_store
/*  4343*/        OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectAddrModeUnscaled16:$ #3 #4
/*  4346*/        OPC_EmitMergeInputChains1_0,
/*  4347*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURHi), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (st FPR16Op:{ *:[f16] }:$Rt, (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 14
                  // Dst: (STURHi FPR16Op:{ *:[f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4355*/      /*Scope*/ 19, /*->4375*/
/*  4356*/        OPC_CheckChild1Type, MVT::f32,
/*  4358*/        OPC_RecordChild2, // #2 = $am_unscaled32:Rn:offset
/*  4359*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4361*/        OPC_CheckPredicate, 4, // Predicate_store
/*  4363*/        OPC_CheckComplexPat, /*CP*/19, /*#*/2, // SelectAddrModeUnscaled32:$ #3 #4
/*  4366*/        OPC_EmitMergeInputChains1_0,
/*  4367*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURSi), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (st FPR32Op:{ *:[f32] }:$Rt, (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 14
                  // Dst: (STURSi FPR32Op:{ *:[f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4375*/      /*Scope*/ 19, /*->4395*/
/*  4376*/        OPC_CheckChild1Type, MVT::f64,
/*  4378*/        OPC_RecordChild2, // #2 = $am_unscaled64:Rn:offset
/*  4379*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4381*/        OPC_CheckPredicate, 4, // Predicate_store
/*  4383*/        OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  4386*/        OPC_EmitMergeInputChains1_0,
/*  4387*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (st FPR64Op:{ *:[f64] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 14
                  // Dst: (STURDi FPR64Op:{ *:[f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4395*/      /*Scope*/ 19, /*->4415*/
/*  4396*/        OPC_CheckChild1Type, MVT::f128,
/*  4398*/        OPC_RecordChild2, // #2 = $am_unscaled128:Rn:offset
/*  4399*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4401*/        OPC_CheckPredicate, 4, // Predicate_store
/*  4403*/        OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrModeUnscaled128:$ #3 #4
/*  4406*/        OPC_EmitMergeInputChains1_0,
/*  4407*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURQi), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (st FPR128Op:{ *:[f128] }:$Rt, (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 14
                  // Dst: (STURQi FPR128Op:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  4415*/      /*Scope*/ 19, /*->4435*/
/*  4416*/        OPC_CheckChild1Type, MVT::v1f64,
/*  4418*/        OPC_RecordChild2, // #2 = $am_unscaled64:Rn:offset
/*  4419*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4421*/        OPC_CheckPredicate, 4, // Predicate_store
/*  4423*/        OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  4426*/        OPC_EmitMergeInputChains1_0,
/*  4427*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (st FPR64:{ *:[v1f64] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                  // Dst: (STURDi FPR64:{ *:[v1f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  4435*/      /*Scope*/ 19, /*->4455*/
/*  4436*/        OPC_CheckChild1Type, MVT::v1i64,
/*  4438*/        OPC_RecordChild2, // #2 = $am_unscaled64:Rn:offset
/*  4439*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4441*/        OPC_CheckPredicate, 4, // Predicate_store
/*  4443*/        OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/*  4446*/        OPC_EmitMergeInputChains1_0,
/*  4447*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURDi), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (st FPR64:{ *:[v1i64] }:$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                  // Dst: (STURDi FPR64:{ *:[v1i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/*  4455*/      0, /*End of Scope*/
/*  4456*/    /*Scope*/ 26|128,5/*666*/, /*->5124*/
/*  4458*/      OPC_MoveChild1,
/*  4459*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*  4462*/      OPC_RecordChild0, // #1 = $Vt
/*  4463*/      OPC_Scope, 40, /*->4505*/ // 14 children in Scope
/*  4465*/        OPC_CheckChild0Type, MVT::v16i8,
/*  4467*/        OPC_RecordChild1, // #2 = $idx
/*  4468*/        OPC_MoveChild1,
/*  4469*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4472*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/*  4474*/        OPC_CheckType, MVT::i64,
/*  4476*/        OPC_MoveParent,
/*  4477*/        OPC_CheckType, MVT::i32,
/*  4479*/        OPC_MoveParent,
/*  4480*/        OPC_RecordChild2, // #3 = $Rn
/*  4481*/        OPC_RecordChild3, // #4 = $Rm
/*  4482*/        OPC_CheckChild3Type, MVT::i64,
/*  4484*/        OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4486*/        OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  4488*/        OPC_CheckPredicate, 8, // Predicate_post_truncsti8
/*  4490*/        OPC_CheckType, MVT::i64,
/*  4492*/        OPC_EmitMergeInputChains1_0,
/*  4493*/        OPC_EmitConvertToTarget, 2,
/*  4495*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i8_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 5, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne128:{ *:[v16i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 11
                  // Dst: (ST1i8_POST:{ *:[i64] } VecListOne128:{ *:[v16i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4505*/      /*Scope*/ 40, /*->4546*/
/*  4506*/        OPC_CheckChild0Type, MVT::v8i16,
/*  4508*/        OPC_RecordChild1, // #2 = $idx
/*  4509*/        OPC_MoveChild1,
/*  4510*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4513*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  4515*/        OPC_CheckType, MVT::i64,
/*  4517*/        OPC_MoveParent,
/*  4518*/        OPC_CheckType, MVT::i32,
/*  4520*/        OPC_MoveParent,
/*  4521*/        OPC_RecordChild2, // #3 = $Rn
/*  4522*/        OPC_RecordChild3, // #4 = $Rm
/*  4523*/        OPC_CheckChild3Type, MVT::i64,
/*  4525*/        OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4527*/        OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  4529*/        OPC_CheckPredicate, 2, // Predicate_post_truncsti16
/*  4531*/        OPC_CheckType, MVT::i64,
/*  4533*/        OPC_EmitMergeInputChains1_0,
/*  4534*/        OPC_EmitConvertToTarget, 2,
/*  4536*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i16_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 5, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne128:{ *:[v8i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 11
                  // Dst: (ST1i16_POST:{ *:[i64] } VecListOne128:{ *:[v8i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4546*/      /*Scope*/ 38, /*->4585*/
/*  4547*/        OPC_CheckChild0Type, MVT::v4i32,
/*  4549*/        OPC_RecordChild1, // #2 = $idx
/*  4550*/        OPC_MoveChild1,
/*  4551*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4554*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  4556*/        OPC_CheckType, MVT::i64,
/*  4558*/        OPC_MoveParent,
/*  4559*/        OPC_CheckType, MVT::i32,
/*  4561*/        OPC_MoveParent,
/*  4562*/        OPC_RecordChild2, // #3 = $Rn
/*  4563*/        OPC_RecordChild3, // #4 = $Rm
/*  4564*/        OPC_CheckChild3Type, MVT::i64,
/*  4566*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4568*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4570*/        OPC_CheckType, MVT::i64,
/*  4572*/        OPC_EmitMergeInputChains1_0,
/*  4573*/        OPC_EmitConvertToTarget, 2,
/*  4575*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i32_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 5, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne128:{ *:[v4i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i32_POST:{ *:[i64] } VecListOne128:{ *:[v4i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4585*/      /*Scope*/ 38, /*->4624*/
/*  4586*/        OPC_CheckChild0Type, MVT::v4f32,
/*  4588*/        OPC_RecordChild1, // #2 = $idx
/*  4589*/        OPC_MoveChild1,
/*  4590*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4593*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  4595*/        OPC_CheckType, MVT::i64,
/*  4597*/        OPC_MoveParent,
/*  4598*/        OPC_CheckType, MVT::f32,
/*  4600*/        OPC_MoveParent,
/*  4601*/        OPC_RecordChild2, // #3 = $Rn
/*  4602*/        OPC_RecordChild3, // #4 = $Rm
/*  4603*/        OPC_CheckChild3Type, MVT::i64,
/*  4605*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4607*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4609*/        OPC_CheckType, MVT::i64,
/*  4611*/        OPC_EmitMergeInputChains1_0,
/*  4612*/        OPC_EmitConvertToTarget, 2,
/*  4614*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i32_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 5, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f32] } VecListOne128:{ *:[v4f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i32_POST:{ *:[i64] } VecListOne128:{ *:[v4f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4624*/      /*Scope*/ 38, /*->4663*/
/*  4625*/        OPC_CheckChild0Type, MVT::v2i64,
/*  4627*/        OPC_RecordChild1, // #2 = $idx
/*  4628*/        OPC_MoveChild1,
/*  4629*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4632*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*  4634*/        OPC_CheckType, MVT::i64,
/*  4636*/        OPC_MoveParent,
/*  4637*/        OPC_CheckType, MVT::i64,
/*  4639*/        OPC_MoveParent,
/*  4640*/        OPC_RecordChild2, // #3 = $Rn
/*  4641*/        OPC_RecordChild3, // #4 = $Rm
/*  4642*/        OPC_CheckChild3Type, MVT::i64,
/*  4644*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4646*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4648*/        OPC_CheckType, MVT::i64,
/*  4650*/        OPC_EmitMergeInputChains1_0,
/*  4651*/        OPC_EmitConvertToTarget, 2,
/*  4653*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i64_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 5, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i64_POST:{ *:[i64] } VecListOne128:{ *:[v2i64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4663*/      /*Scope*/ 38, /*->4702*/
/*  4664*/        OPC_CheckChild0Type, MVT::v2f64,
/*  4666*/        OPC_RecordChild1, // #2 = $idx
/*  4667*/        OPC_MoveChild1,
/*  4668*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4671*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*  4673*/        OPC_CheckType, MVT::i64,
/*  4675*/        OPC_MoveParent,
/*  4676*/        OPC_CheckType, MVT::f64,
/*  4678*/        OPC_MoveParent,
/*  4679*/        OPC_RecordChild2, // #3 = $Rn
/*  4680*/        OPC_RecordChild3, // #4 = $Rm
/*  4681*/        OPC_CheckChild3Type, MVT::i64,
/*  4683*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4685*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4687*/        OPC_CheckType, MVT::i64,
/*  4689*/        OPC_EmitMergeInputChains1_0,
/*  4690*/        OPC_EmitConvertToTarget, 2,
/*  4692*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i64_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 5, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f64] } VecListOne128:{ *:[v2f64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i64_POST:{ *:[i64] } VecListOne128:{ *:[v2f64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4702*/      /*Scope*/ 38, /*->4741*/
/*  4703*/        OPC_CheckChild0Type, MVT::v8f16,
/*  4705*/        OPC_RecordChild1, // #2 = $idx
/*  4706*/        OPC_MoveChild1,
/*  4707*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4710*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  4712*/        OPC_CheckType, MVT::i64,
/*  4714*/        OPC_MoveParent,
/*  4715*/        OPC_CheckType, MVT::f16,
/*  4717*/        OPC_MoveParent,
/*  4718*/        OPC_RecordChild2, // #3 = $Rn
/*  4719*/        OPC_RecordChild3, // #4 = $Rm
/*  4720*/        OPC_CheckChild3Type, MVT::i64,
/*  4722*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4724*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4726*/        OPC_CheckType, MVT::i64,
/*  4728*/        OPC_EmitMergeInputChains1_0,
/*  4729*/        OPC_EmitConvertToTarget, 2,
/*  4731*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i16_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 1, 5, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f16] } VecListOne128:{ *:[v8f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i16_POST:{ *:[i64] } VecListOne128:{ *:[v8f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4741*/      /*Scope*/ 55, /*->4797*/
/*  4742*/        OPC_CheckChild0Type, MVT::v8i8,
/*  4744*/        OPC_RecordChild1, // #2 = $idx
/*  4745*/        OPC_MoveChild1,
/*  4746*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4749*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/*  4751*/        OPC_CheckType, MVT::i64,
/*  4753*/        OPC_MoveParent,
/*  4754*/        OPC_CheckType, MVT::i32,
/*  4756*/        OPC_MoveParent,
/*  4757*/        OPC_RecordChild2, // #3 = $Rn
/*  4758*/        OPC_RecordChild3, // #4 = $Rm
/*  4759*/        OPC_CheckChild3Type, MVT::i64,
/*  4761*/        OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4763*/        OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  4765*/        OPC_CheckPredicate, 8, // Predicate_post_truncsti8
/*  4767*/        OPC_CheckType, MVT::i64,
/*  4769*/        OPC_EmitMergeInputChains1_0,
/*  4770*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4773*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  4776*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*  4785*/        OPC_EmitConvertToTarget, 2,
/*  4787*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i8_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 7, 8, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne64:{ *:[v8i8] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 11
                  // Dst: (ST1i8_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v8i8] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4797*/      /*Scope*/ 55, /*->4853*/
/*  4798*/        OPC_CheckChild0Type, MVT::v4i16,
/*  4800*/        OPC_RecordChild1, // #2 = $idx
/*  4801*/        OPC_MoveChild1,
/*  4802*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4805*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  4807*/        OPC_CheckType, MVT::i64,
/*  4809*/        OPC_MoveParent,
/*  4810*/        OPC_CheckType, MVT::i32,
/*  4812*/        OPC_MoveParent,
/*  4813*/        OPC_RecordChild2, // #3 = $Rn
/*  4814*/        OPC_RecordChild3, // #4 = $Rm
/*  4815*/        OPC_CheckChild3Type, MVT::i64,
/*  4817*/        OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4819*/        OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  4821*/        OPC_CheckPredicate, 2, // Predicate_post_truncsti16
/*  4823*/        OPC_CheckType, MVT::i64,
/*  4825*/        OPC_EmitMergeInputChains1_0,
/*  4826*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4829*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  4832*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*  4841*/        OPC_EmitConvertToTarget, 2,
/*  4843*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i16_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 7, 8, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne64:{ *:[v4i16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 11
                  // Dst: (ST1i16_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v4i16] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4853*/      /*Scope*/ 53, /*->4907*/
/*  4854*/        OPC_CheckChild0Type, MVT::v2i32,
/*  4856*/        OPC_RecordChild1, // #2 = $idx
/*  4857*/        OPC_MoveChild1,
/*  4858*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4861*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  4863*/        OPC_CheckType, MVT::i64,
/*  4865*/        OPC_MoveParent,
/*  4866*/        OPC_CheckType, MVT::i32,
/*  4868*/        OPC_MoveParent,
/*  4869*/        OPC_RecordChild2, // #3 = $Rn
/*  4870*/        OPC_RecordChild3, // #4 = $Rm
/*  4871*/        OPC_CheckChild3Type, MVT::i64,
/*  4873*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4875*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4877*/        OPC_CheckType, MVT::i64,
/*  4879*/        OPC_EmitMergeInputChains1_0,
/*  4880*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4883*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  4886*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*  4895*/        OPC_EmitConvertToTarget, 2,
/*  4897*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i32_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 7, 8, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i32] } VecListOne64:{ *:[v2i32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i32_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v2i32] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4907*/      /*Scope*/ 53, /*->4961*/
/*  4908*/        OPC_CheckChild0Type, MVT::v2f32,
/*  4910*/        OPC_RecordChild1, // #2 = $idx
/*  4911*/        OPC_MoveChild1,
/*  4912*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4915*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  4917*/        OPC_CheckType, MVT::i64,
/*  4919*/        OPC_MoveParent,
/*  4920*/        OPC_CheckType, MVT::f32,
/*  4922*/        OPC_MoveParent,
/*  4923*/        OPC_RecordChild2, // #3 = $Rn
/*  4924*/        OPC_RecordChild3, // #4 = $Rm
/*  4925*/        OPC_CheckChild3Type, MVT::i64,
/*  4927*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4929*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4931*/        OPC_CheckType, MVT::i64,
/*  4933*/        OPC_EmitMergeInputChains1_0,
/*  4934*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4937*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  4940*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*  4949*/        OPC_EmitConvertToTarget, 2,
/*  4951*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i32_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 7, 8, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f32] } VecListOne64:{ *:[v2f32] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i32_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v2f32] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  4961*/      /*Scope*/ 53, /*->5015*/
/*  4962*/        OPC_CheckChild0Type, MVT::v1i64,
/*  4964*/        OPC_RecordChild1, // #2 = $idx
/*  4965*/        OPC_MoveChild1,
/*  4966*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4969*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*  4971*/        OPC_CheckType, MVT::i64,
/*  4973*/        OPC_MoveParent,
/*  4974*/        OPC_CheckType, MVT::i64,
/*  4976*/        OPC_MoveParent,
/*  4977*/        OPC_RecordChild2, // #3 = $Rn
/*  4978*/        OPC_RecordChild3, // #4 = $Rm
/*  4979*/        OPC_CheckChild3Type, MVT::i64,
/*  4981*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  4983*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  4985*/        OPC_CheckType, MVT::i64,
/*  4987*/        OPC_EmitMergeInputChains1_0,
/*  4988*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4991*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  4994*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*  5003*/        OPC_EmitConvertToTarget, 2,
/*  5005*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i64_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 7, 8, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[i64] } VecListOne64:{ *:[v1i64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i64_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v1i64] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  5015*/      /*Scope*/ 53, /*->5069*/
/*  5016*/        OPC_CheckChild0Type, MVT::v1f64,
/*  5018*/        OPC_RecordChild1, // #2 = $idx
/*  5019*/        OPC_MoveChild1,
/*  5020*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5023*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/*  5025*/        OPC_CheckType, MVT::i64,
/*  5027*/        OPC_MoveParent,
/*  5028*/        OPC_CheckType, MVT::f64,
/*  5030*/        OPC_MoveParent,
/*  5031*/        OPC_RecordChild2, // #3 = $Rn
/*  5032*/        OPC_RecordChild3, // #4 = $Rm
/*  5033*/        OPC_CheckChild3Type, MVT::i64,
/*  5035*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  5037*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  5039*/        OPC_CheckType, MVT::i64,
/*  5041*/        OPC_EmitMergeInputChains1_0,
/*  5042*/        OPC_EmitInteger, MVT::i32, 0, 
/*  5045*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  5048*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*  5057*/        OPC_EmitConvertToTarget, 2,
/*  5059*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i64_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 7, 8, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f64] } VecListOne64:{ *:[v1f64] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i64_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v1f64] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  5069*/      /*Scope*/ 53, /*->5123*/
/*  5070*/        OPC_CheckChild0Type, MVT::v4f16,
/*  5072*/        OPC_RecordChild1, // #2 = $idx
/*  5073*/        OPC_MoveChild1,
/*  5074*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5077*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  5079*/        OPC_CheckType, MVT::i64,
/*  5081*/        OPC_MoveParent,
/*  5082*/        OPC_CheckType, MVT::f16,
/*  5084*/        OPC_MoveParent,
/*  5085*/        OPC_RecordChild2, // #3 = $Rn
/*  5086*/        OPC_RecordChild3, // #4 = $Rm
/*  5087*/        OPC_CheckChild3Type, MVT::i64,
/*  5089*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  5091*/        OPC_CheckPredicate, 11, // Predicate_post_store
/*  5093*/        OPC_CheckType, MVT::i64,
/*  5095*/        OPC_EmitMergeInputChains1_0,
/*  5096*/        OPC_EmitInteger, MVT::i32, 0, 
/*  5099*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/*  5102*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*  5111*/        OPC_EmitConvertToTarget, 2,
/*  5113*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ST1i16_POST), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 7, 8, 3, 4, 
                  // Src: (ist:{ *:[i64] } (vector_extract:{ *:[f16] } VecListOne64:{ *:[v4f16] }:$Vt, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 11
                  // Dst: (ST1i16_POST:{ *:[i64] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v4f16] }:$Vt, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn, ?:{ *:[i64] }:$Rm)
/*  5123*/      0, /*End of Scope*/
/*  5124*/    /*Scope*/ 41|128,11/*1449*/, /*->6575*/
/*  5126*/      OPC_RecordChild1, // #1 = $Rt
/*  5127*/      OPC_Scope, 125, /*->5254*/ // 21 children in Scope
/*  5129*/        OPC_CheckChild1Type, MVT::i32,
/*  5131*/        OPC_RecordChild2, // #2 = $Rn
/*  5132*/        OPC_RecordChild3, // #3 = $offset
/*  5133*/        OPC_MoveChild3,
/*  5134*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5137*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  5139*/        OPC_CheckType, MVT::i64,
/*  5141*/        OPC_MoveParent,
/*  5142*/        OPC_CheckType, MVT::i64,
/*  5144*/        OPC_Scope, 16, /*->5162*/ // 4 children in Scope
/*  5146*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  5148*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5150*/          OPC_EmitMergeInputChains1_0,
/*  5151*/          OPC_EmitConvertToTarget, 3,
/*  5153*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRWpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRWpre:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5162*/        /*Scope*/ 36, /*->5199*/
/*  5163*/          OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  5165*/          OPC_CheckPredicate, 13, // Predicate_pre_truncst
/*  5167*/          OPC_Scope, 14, /*->5183*/ // 2 children in Scope
/*  5169*/            OPC_CheckPredicate, 8, // Predicate_pre_truncsti8
/*  5171*/            OPC_EmitMergeInputChains1_0,
/*  5172*/            OPC_EmitConvertToTarget, 3,
/*  5174*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRBBpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 8
                      // Dst: (STRBBpre:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5183*/          /*Scope*/ 14, /*->5198*/
/*  5184*/            OPC_CheckPredicate, 2, // Predicate_pre_truncsti16
/*  5186*/            OPC_EmitMergeInputChains1_0,
/*  5187*/            OPC_EmitConvertToTarget, 3,
/*  5189*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRHHpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti16>> - Complexity = 8
                      // Dst: (STRHHpre:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5198*/          0, /*End of Scope*/
/*  5199*/        /*Scope*/ 16, /*->5216*/
/*  5200*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  5202*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  5204*/          OPC_EmitMergeInputChains1_0,
/*  5205*/          OPC_EmitConvertToTarget, 3,
/*  5207*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRWpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRWpost:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5216*/        /*Scope*/ 36, /*->5253*/
/*  5217*/          OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  5219*/          OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  5221*/          OPC_Scope, 14, /*->5237*/ // 2 children in Scope
/*  5223*/            OPC_CheckPredicate, 8, // Predicate_post_truncsti8
/*  5225*/            OPC_EmitMergeInputChains1_0,
/*  5226*/            OPC_EmitConvertToTarget, 3,
/*  5228*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRBBpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 8
                      // Dst: (STRBBpost:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5237*/          /*Scope*/ 14, /*->5252*/
/*  5238*/            OPC_CheckPredicate, 2, // Predicate_post_truncsti16
/*  5240*/            OPC_EmitMergeInputChains1_0,
/*  5241*/            OPC_EmitConvertToTarget, 3,
/*  5243*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRHHpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 8
                      // Dst: (STRHHpost:{ *:[i64] } GPR32z:{ *:[i32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5252*/          0, /*End of Scope*/
/*  5253*/        0, /*End of Scope*/
/*  5254*/      /*Scope*/ 96|128,1/*224*/, /*->5480*/
/*  5256*/        OPC_CheckChild1Type, MVT::i64,
/*  5258*/        OPC_RecordChild2, // #2 = $Rn
/*  5259*/        OPC_RecordChild3, // #3 = $offset
/*  5260*/        OPC_MoveChild3,
/*  5261*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5264*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  5266*/        OPC_CheckType, MVT::i64,
/*  5268*/        OPC_MoveParent,
/*  5269*/        OPC_CheckType, MVT::i64,
/*  5271*/        OPC_Scope, 34, /*->5307*/ // 2 children in Scope
/*  5273*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  5275*/          OPC_Scope, 14, /*->5291*/ // 2 children in Scope
/*  5277*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5279*/            OPC_EmitMergeInputChains1_0,
/*  5280*/            OPC_EmitConvertToTarget, 3,
/*  5282*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRXpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } GPR64z:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRXpre:{ *:[i64] } GPR64z:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5291*/          /*Scope*/ 14, /*->5306*/
/*  5292*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  5294*/            OPC_EmitMergeInputChains1_0,
/*  5295*/            OPC_EmitConvertToTarget, 3,
/*  5297*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRXpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } GPR64z:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRXpost:{ *:[i64] } GPR64z:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5306*/          0, /*End of Scope*/
/*  5307*/        /*Scope*/ 42|128,1/*170*/, /*->5479*/
/*  5309*/          OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  5311*/          OPC_Scope, 82, /*->5395*/ // 2 children in Scope
/*  5313*/            OPC_CheckPredicate, 13, // Predicate_pre_truncst
/*  5315*/            OPC_Scope, 25, /*->5342*/ // 3 children in Scope
/*  5317*/              OPC_CheckPredicate, 9, // Predicate_pre_truncsti32
/*  5319*/              OPC_EmitMergeInputChains1_0,
/*  5320*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  5323*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  5331*/              OPC_EmitConvertToTarget, 3,
/*  5333*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRWpre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, 3/*#Ops*/, 5, 2, 6, 
                        // Src: (ist:{ *:[i64] } GPR64:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti32>> - Complexity = 8
                        // Dst: (STRWpre:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5342*/            /*Scope*/ 25, /*->5368*/
/*  5343*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti16
/*  5345*/              OPC_EmitMergeInputChains1_0,
/*  5346*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  5349*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  5357*/              OPC_EmitConvertToTarget, 3,
/*  5359*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRHHpre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, 3/*#Ops*/, 5, 2, 6, 
                        // Src: (ist:{ *:[i64] } GPR64:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti16>> - Complexity = 8
                        // Dst: (STRHHpre:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5368*/            /*Scope*/ 25, /*->5394*/
/*  5369*/              OPC_CheckPredicate, 8, // Predicate_pre_truncsti8
/*  5371*/              OPC_EmitMergeInputChains1_0,
/*  5372*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  5375*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  5383*/              OPC_EmitConvertToTarget, 3,
/*  5385*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRBBpre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, 3/*#Ops*/, 5, 2, 6, 
                        // Src: (ist:{ *:[i64] } GPR64:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 8
                        // Dst: (STRBBpre:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5394*/            0, /*End of Scope*/
/*  5395*/          /*Scope*/ 82, /*->5478*/
/*  5396*/            OPC_CheckPredicate, 11, // Predicate_post_truncst
/*  5398*/            OPC_Scope, 25, /*->5425*/ // 3 children in Scope
/*  5400*/              OPC_CheckPredicate, 9, // Predicate_post_truncsti32
/*  5402*/              OPC_EmitMergeInputChains1_0,
/*  5403*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  5406*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  5414*/              OPC_EmitConvertToTarget, 3,
/*  5416*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRWpost), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, 3/*#Ops*/, 5, 2, 6, 
                        // Src: (ist:{ *:[i64] } GPR64:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti32>> - Complexity = 8
                        // Dst: (STRWpost:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5425*/            /*Scope*/ 25, /*->5451*/
/*  5426*/              OPC_CheckPredicate, 2, // Predicate_post_truncsti16
/*  5428*/              OPC_EmitMergeInputChains1_0,
/*  5429*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  5432*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  5440*/              OPC_EmitConvertToTarget, 3,
/*  5442*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRHHpost), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, 3/*#Ops*/, 5, 2, 6, 
                        // Src: (ist:{ *:[i64] } GPR64:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti16>> - Complexity = 8
                        // Dst: (STRHHpost:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5451*/            /*Scope*/ 25, /*->5477*/
/*  5452*/              OPC_CheckPredicate, 8, // Predicate_post_truncsti8
/*  5454*/              OPC_EmitMergeInputChains1_0,
/*  5455*/              OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/*  5458*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  5466*/              OPC_EmitConvertToTarget, 3,
/*  5468*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRBBpost), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i64, 3/*#Ops*/, 5, 2, 6, 
                        // Src: (ist:{ *:[i64] } GPR64:{ *:[i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncsti8>> - Complexity = 8
                        // Dst: (STRBBpost:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rt, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5477*/            0, /*End of Scope*/
/*  5478*/          0, /*End of Scope*/
/*  5479*/        0, /*End of Scope*/
/*  5480*/      /*Scope*/ 49, /*->5530*/
/*  5481*/        OPC_CheckChild1Type, MVT::Untyped,
/*  5483*/        OPC_RecordChild2, // #2 = $Rn
/*  5484*/        OPC_RecordChild3, // #3 = $offset
/*  5485*/        OPC_MoveChild3,
/*  5486*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5489*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  5491*/        OPC_CheckType, MVT::i64,
/*  5493*/        OPC_MoveParent,
/*  5494*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  5496*/        OPC_CheckType, MVT::i64,
/*  5498*/        OPC_Scope, 14, /*->5514*/ // 2 children in Scope
/*  5500*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5502*/          OPC_EmitMergeInputChains1_0,
/*  5503*/          OPC_EmitConvertToTarget, 3,
/*  5505*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRBpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR8Op:{ *:[Untyped] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRBpre:{ *:[i64] } FPR8Op:{ *:[Untyped] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5514*/        /*Scope*/ 14, /*->5529*/
/*  5515*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  5517*/          OPC_EmitMergeInputChains1_0,
/*  5518*/          OPC_EmitConvertToTarget, 3,
/*  5520*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRBpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR8Op:{ *:[Untyped] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRBpost:{ *:[i64] } FPR8Op:{ *:[Untyped] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5529*/        0, /*End of Scope*/
/*  5530*/      /*Scope*/ 49, /*->5580*/
/*  5531*/        OPC_CheckChild1Type, MVT::f16,
/*  5533*/        OPC_RecordChild2, // #2 = $Rn
/*  5534*/        OPC_RecordChild3, // #3 = $offset
/*  5535*/        OPC_MoveChild3,
/*  5536*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5539*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  5541*/        OPC_CheckType, MVT::i64,
/*  5543*/        OPC_MoveParent,
/*  5544*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  5546*/        OPC_CheckType, MVT::i64,
/*  5548*/        OPC_Scope, 14, /*->5564*/ // 2 children in Scope
/*  5550*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5552*/          OPC_EmitMergeInputChains1_0,
/*  5553*/          OPC_EmitConvertToTarget, 3,
/*  5555*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRHpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR16Op:{ *:[f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRHpre:{ *:[i64] } FPR16Op:{ *:[f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5564*/        /*Scope*/ 14, /*->5579*/
/*  5565*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  5567*/          OPC_EmitMergeInputChains1_0,
/*  5568*/          OPC_EmitConvertToTarget, 3,
/*  5570*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRHpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR16Op:{ *:[f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRHpost:{ *:[i64] } FPR16Op:{ *:[f16] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5579*/        0, /*End of Scope*/
/*  5580*/      /*Scope*/ 49, /*->5630*/
/*  5581*/        OPC_CheckChild1Type, MVT::f32,
/*  5583*/        OPC_RecordChild2, // #2 = $Rn
/*  5584*/        OPC_RecordChild3, // #3 = $offset
/*  5585*/        OPC_MoveChild3,
/*  5586*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5589*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  5591*/        OPC_CheckType, MVT::i64,
/*  5593*/        OPC_MoveParent,
/*  5594*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  5596*/        OPC_CheckType, MVT::i64,
/*  5598*/        OPC_Scope, 14, /*->5614*/ // 2 children in Scope
/*  5600*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5602*/          OPC_EmitMergeInputChains1_0,
/*  5603*/          OPC_EmitConvertToTarget, 3,
/*  5605*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRSpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR32Op:{ *:[f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRSpre:{ *:[i64] } FPR32Op:{ *:[f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5614*/        /*Scope*/ 14, /*->5629*/
/*  5615*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  5617*/          OPC_EmitMergeInputChains1_0,
/*  5618*/          OPC_EmitConvertToTarget, 3,
/*  5620*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRSpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR32Op:{ *:[f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRSpost:{ *:[i64] } FPR32Op:{ *:[f32] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5629*/        0, /*End of Scope*/
/*  5630*/      /*Scope*/ 49, /*->5680*/
/*  5631*/        OPC_CheckChild1Type, MVT::f64,
/*  5633*/        OPC_RecordChild2, // #2 = $Rn
/*  5634*/        OPC_RecordChild3, // #3 = $offset
/*  5635*/        OPC_MoveChild3,
/*  5636*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5639*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  5641*/        OPC_CheckType, MVT::i64,
/*  5643*/        OPC_MoveParent,
/*  5644*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  5646*/        OPC_CheckType, MVT::i64,
/*  5648*/        OPC_Scope, 14, /*->5664*/ // 2 children in Scope
/*  5650*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5652*/          OPC_EmitMergeInputChains1_0,
/*  5653*/          OPC_EmitConvertToTarget, 3,
/*  5655*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR64Op:{ *:[f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRDpre:{ *:[i64] } FPR64Op:{ *:[f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5664*/        /*Scope*/ 14, /*->5679*/
/*  5665*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  5667*/          OPC_EmitMergeInputChains1_0,
/*  5668*/          OPC_EmitConvertToTarget, 3,
/*  5670*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR64Op:{ *:[f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRDpost:{ *:[i64] } FPR64Op:{ *:[f64] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5679*/        0, /*End of Scope*/
/*  5680*/      /*Scope*/ 49, /*->5730*/
/*  5681*/        OPC_CheckChild1Type, MVT::f128,
/*  5683*/        OPC_RecordChild2, // #2 = $Rn
/*  5684*/        OPC_RecordChild3, // #3 = $offset
/*  5685*/        OPC_MoveChild3,
/*  5686*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5689*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  5691*/        OPC_CheckType, MVT::i64,
/*  5693*/        OPC_MoveParent,
/*  5694*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  5696*/        OPC_CheckType, MVT::i64,
/*  5698*/        OPC_Scope, 14, /*->5714*/ // 2 children in Scope
/*  5700*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5702*/          OPC_EmitMergeInputChains1_0,
/*  5703*/          OPC_EmitConvertToTarget, 3,
/*  5705*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR128Op:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRQpre:{ *:[i64] } FPR128Op:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5714*/        /*Scope*/ 14, /*->5729*/
/*  5715*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  5717*/          OPC_EmitMergeInputChains1_0,
/*  5718*/          OPC_EmitConvertToTarget, 3,
/*  5720*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR128Op:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRQpost:{ *:[i64] } FPR128Op:{ *:[f128] }:$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/*  5729*/        0, /*End of Scope*/
/*  5730*/      /*Scope*/ 67, /*->5798*/
/*  5731*/        OPC_CheckChild1Type, MVT::v8i8,
/*  5733*/        OPC_RecordChild2, // #2 = $addr
/*  5734*/        OPC_Scope, 46, /*->5782*/ // 2 children in Scope
/*  5736*/          OPC_RecordChild3, // #3 = $off
/*  5737*/          OPC_MoveChild3,
/*  5738*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5741*/          OPC_CheckPredicate, 12, // Predicate_simm9
/*  5743*/          OPC_CheckType, MVT::i64,
/*  5745*/          OPC_MoveParent,
/*  5746*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  5748*/          OPC_CheckType, MVT::i64,
/*  5750*/          OPC_Scope, 14, /*->5766*/ // 2 children in Scope
/*  5752*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5754*/            OPC_EmitMergeInputChains1_0,
/*  5755*/            OPC_EmitConvertToTarget, 3,
/*  5757*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR64:{ *:[v8i8] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRDpre:{ *:[i64] } FPR64:{ *:[v8i8] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5766*/          /*Scope*/ 14, /*->5781*/
/*  5767*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  5769*/            OPC_EmitMergeInputChains1_0,
/*  5770*/            OPC_EmitConvertToTarget, 3,
/*  5772*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR64:{ *:[v8i8] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRDpost:{ *:[i64] } FPR64:{ *:[v8i8] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5781*/          0, /*End of Scope*/
/*  5782*/        /*Scope*/ 14, /*->5797*/
/*  5783*/          OPC_CheckChild2Type, MVT::i64,
/*  5785*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5787*/          OPC_CheckPredicate, 4, // Predicate_store
/*  5789*/          OPC_EmitMergeInputChains1_0,
/*  5790*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1Onev8b), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 1, 2, 
                    // Src: (st v8i8:{ *:[v8i8] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
                    // Dst: (ST1Onev8b v8i8:{ *:[v8i8] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)
/*  5797*/        0, /*End of Scope*/
/*  5798*/      /*Scope*/ 67, /*->5866*/
/*  5799*/        OPC_CheckChild1Type, MVT::v4i16,
/*  5801*/        OPC_RecordChild2, // #2 = $addr
/*  5802*/        OPC_Scope, 46, /*->5850*/ // 2 children in Scope
/*  5804*/          OPC_RecordChild3, // #3 = $off
/*  5805*/          OPC_MoveChild3,
/*  5806*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5809*/          OPC_CheckPredicate, 12, // Predicate_simm9
/*  5811*/          OPC_CheckType, MVT::i64,
/*  5813*/          OPC_MoveParent,
/*  5814*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  5816*/          OPC_CheckType, MVT::i64,
/*  5818*/          OPC_Scope, 14, /*->5834*/ // 2 children in Scope
/*  5820*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5822*/            OPC_EmitMergeInputChains1_0,
/*  5823*/            OPC_EmitConvertToTarget, 3,
/*  5825*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR64:{ *:[v4i16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRDpre:{ *:[i64] } FPR64:{ *:[v4i16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5834*/          /*Scope*/ 14, /*->5849*/
/*  5835*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  5837*/            OPC_EmitMergeInputChains1_0,
/*  5838*/            OPC_EmitConvertToTarget, 3,
/*  5840*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR64:{ *:[v4i16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRDpost:{ *:[i64] } FPR64:{ *:[v4i16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5849*/          0, /*End of Scope*/
/*  5850*/        /*Scope*/ 14, /*->5865*/
/*  5851*/          OPC_CheckChild2Type, MVT::i64,
/*  5853*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5855*/          OPC_CheckPredicate, 4, // Predicate_store
/*  5857*/          OPC_EmitMergeInputChains1_0,
/*  5858*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1Onev4h), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 1, 2, 
                    // Src: (st v4i16:{ *:[v4i16] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
                    // Dst: (ST1Onev4h v4i16:{ *:[v4i16] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)
/*  5865*/        0, /*End of Scope*/
/*  5866*/      /*Scope*/ 67, /*->5934*/
/*  5867*/        OPC_CheckChild1Type, MVT::v2i32,
/*  5869*/        OPC_RecordChild2, // #2 = $addr
/*  5870*/        OPC_Scope, 46, /*->5918*/ // 2 children in Scope
/*  5872*/          OPC_RecordChild3, // #3 = $off
/*  5873*/          OPC_MoveChild3,
/*  5874*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5877*/          OPC_CheckPredicate, 12, // Predicate_simm9
/*  5879*/          OPC_CheckType, MVT::i64,
/*  5881*/          OPC_MoveParent,
/*  5882*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  5884*/          OPC_CheckType, MVT::i64,
/*  5886*/          OPC_Scope, 14, /*->5902*/ // 2 children in Scope
/*  5888*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5890*/            OPC_EmitMergeInputChains1_0,
/*  5891*/            OPC_EmitConvertToTarget, 3,
/*  5893*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR64:{ *:[v2i32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRDpre:{ *:[i64] } FPR64:{ *:[v2i32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5902*/          /*Scope*/ 14, /*->5917*/
/*  5903*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  5905*/            OPC_EmitMergeInputChains1_0,
/*  5906*/            OPC_EmitConvertToTarget, 3,
/*  5908*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR64:{ *:[v2i32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRDpost:{ *:[i64] } FPR64:{ *:[v2i32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5917*/          0, /*End of Scope*/
/*  5918*/        /*Scope*/ 14, /*->5933*/
/*  5919*/          OPC_CheckChild2Type, MVT::i64,
/*  5921*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5923*/          OPC_CheckPredicate, 4, // Predicate_store
/*  5925*/          OPC_EmitMergeInputChains1_0,
/*  5926*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1Onev2s), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 1, 2, 
                    // Src: (st v2i32:{ *:[v2i32] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
                    // Dst: (ST1Onev2s v2i32:{ *:[v2i32] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)
/*  5933*/        0, /*End of Scope*/
/*  5934*/      /*Scope*/ 49, /*->5984*/
/*  5935*/        OPC_CheckChild1Type, MVT::v2f32,
/*  5937*/        OPC_RecordChild2, // #2 = $addr
/*  5938*/        OPC_RecordChild3, // #3 = $off
/*  5939*/        OPC_MoveChild3,
/*  5940*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5943*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  5945*/        OPC_CheckType, MVT::i64,
/*  5947*/        OPC_MoveParent,
/*  5948*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  5950*/        OPC_CheckType, MVT::i64,
/*  5952*/        OPC_Scope, 14, /*->5968*/ // 2 children in Scope
/*  5954*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  5956*/          OPC_EmitMergeInputChains1_0,
/*  5957*/          OPC_EmitConvertToTarget, 3,
/*  5959*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR64:{ *:[v2f32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRDpre:{ *:[i64] } FPR64:{ *:[v2f32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5968*/        /*Scope*/ 14, /*->5983*/
/*  5969*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  5971*/          OPC_EmitMergeInputChains1_0,
/*  5972*/          OPC_EmitConvertToTarget, 3,
/*  5974*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR64:{ *:[v2f32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRDpost:{ *:[i64] } FPR64:{ *:[v2f32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  5983*/        0, /*End of Scope*/
/*  5984*/      /*Scope*/ 67, /*->6052*/
/*  5985*/        OPC_CheckChild1Type, MVT::v1i64,
/*  5987*/        OPC_RecordChild2, // #2 = $addr
/*  5988*/        OPC_Scope, 46, /*->6036*/ // 2 children in Scope
/*  5990*/          OPC_RecordChild3, // #3 = $off
/*  5991*/          OPC_MoveChild3,
/*  5992*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5995*/          OPC_CheckPredicate, 12, // Predicate_simm9
/*  5997*/          OPC_CheckType, MVT::i64,
/*  5999*/          OPC_MoveParent,
/*  6000*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  6002*/          OPC_CheckType, MVT::i64,
/*  6004*/          OPC_Scope, 14, /*->6020*/ // 2 children in Scope
/*  6006*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6008*/            OPC_EmitMergeInputChains1_0,
/*  6009*/            OPC_EmitConvertToTarget, 3,
/*  6011*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR64:{ *:[v1i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRDpre:{ *:[i64] } FPR64:{ *:[v1i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6020*/          /*Scope*/ 14, /*->6035*/
/*  6021*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  6023*/            OPC_EmitMergeInputChains1_0,
/*  6024*/            OPC_EmitConvertToTarget, 3,
/*  6026*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR64:{ *:[v1i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRDpost:{ *:[i64] } FPR64:{ *:[v1i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6035*/          0, /*End of Scope*/
/*  6036*/        /*Scope*/ 14, /*->6051*/
/*  6037*/          OPC_CheckChild2Type, MVT::i64,
/*  6039*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6041*/          OPC_CheckPredicate, 4, // Predicate_store
/*  6043*/          OPC_EmitMergeInputChains1_0,
/*  6044*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1Onev1d), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 1, 2, 
                    // Src: (st v1i64:{ *:[v1i64] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
                    // Dst: (ST1Onev1d v1i64:{ *:[v1i64] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)
/*  6051*/        0, /*End of Scope*/
/*  6052*/      /*Scope*/ 49, /*->6102*/
/*  6053*/        OPC_CheckChild1Type, MVT::v1f64,
/*  6055*/        OPC_RecordChild2, // #2 = $addr
/*  6056*/        OPC_RecordChild3, // #3 = $off
/*  6057*/        OPC_MoveChild3,
/*  6058*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6061*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  6063*/        OPC_CheckType, MVT::i64,
/*  6065*/        OPC_MoveParent,
/*  6066*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  6068*/        OPC_CheckType, MVT::i64,
/*  6070*/        OPC_Scope, 14, /*->6086*/ // 2 children in Scope
/*  6072*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6074*/          OPC_EmitMergeInputChains1_0,
/*  6075*/          OPC_EmitConvertToTarget, 3,
/*  6077*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR64:{ *:[v1f64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRDpre:{ *:[i64] } FPR64:{ *:[v1f64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6086*/        /*Scope*/ 14, /*->6101*/
/*  6087*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  6089*/          OPC_EmitMergeInputChains1_0,
/*  6090*/          OPC_EmitConvertToTarget, 3,
/*  6092*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR64:{ *:[v1f64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRDpost:{ *:[i64] } FPR64:{ *:[v1f64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6101*/        0, /*End of Scope*/
/*  6102*/      /*Scope*/ 49, /*->6152*/
/*  6103*/        OPC_CheckChild1Type, MVT::v4f16,
/*  6105*/        OPC_RecordChild2, // #2 = $addr
/*  6106*/        OPC_RecordChild3, // #3 = $off
/*  6107*/        OPC_MoveChild3,
/*  6108*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6111*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  6113*/        OPC_CheckType, MVT::i64,
/*  6115*/        OPC_MoveParent,
/*  6116*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  6118*/        OPC_CheckType, MVT::i64,
/*  6120*/        OPC_Scope, 14, /*->6136*/ // 2 children in Scope
/*  6122*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6124*/          OPC_EmitMergeInputChains1_0,
/*  6125*/          OPC_EmitConvertToTarget, 3,
/*  6127*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR64:{ *:[v4f16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRDpre:{ *:[i64] } FPR64:{ *:[v4f16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6136*/        /*Scope*/ 14, /*->6151*/
/*  6137*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  6139*/          OPC_EmitMergeInputChains1_0,
/*  6140*/          OPC_EmitConvertToTarget, 3,
/*  6142*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRDpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR64:{ *:[v4f16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRDpost:{ *:[i64] } FPR64:{ *:[v4f16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6151*/        0, /*End of Scope*/
/*  6152*/      /*Scope*/ 67, /*->6220*/
/*  6153*/        OPC_CheckChild1Type, MVT::v16i8,
/*  6155*/        OPC_RecordChild2, // #2 = $addr
/*  6156*/        OPC_Scope, 46, /*->6204*/ // 2 children in Scope
/*  6158*/          OPC_RecordChild3, // #3 = $off
/*  6159*/          OPC_MoveChild3,
/*  6160*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6163*/          OPC_CheckPredicate, 12, // Predicate_simm9
/*  6165*/          OPC_CheckType, MVT::i64,
/*  6167*/          OPC_MoveParent,
/*  6168*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  6170*/          OPC_CheckType, MVT::i64,
/*  6172*/          OPC_Scope, 14, /*->6188*/ // 2 children in Scope
/*  6174*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6176*/            OPC_EmitMergeInputChains1_0,
/*  6177*/            OPC_EmitConvertToTarget, 3,
/*  6179*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR128:{ *:[v16i8] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRQpre:{ *:[i64] } FPR128:{ *:[v16i8] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6188*/          /*Scope*/ 14, /*->6203*/
/*  6189*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  6191*/            OPC_EmitMergeInputChains1_0,
/*  6192*/            OPC_EmitConvertToTarget, 3,
/*  6194*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR128:{ *:[v16i8] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRQpost:{ *:[i64] } FPR128:{ *:[v16i8] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6203*/          0, /*End of Scope*/
/*  6204*/        /*Scope*/ 14, /*->6219*/
/*  6205*/          OPC_CheckChild2Type, MVT::i64,
/*  6207*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6209*/          OPC_CheckPredicate, 4, // Predicate_store
/*  6211*/          OPC_EmitMergeInputChains1_0,
/*  6212*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1Onev16b), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 1, 2, 
                    // Src: (st v16i8:{ *:[v16i8] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
                    // Dst: (ST1Onev16b v16i8:{ *:[v16i8] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)
/*  6219*/        0, /*End of Scope*/
/*  6220*/      /*Scope*/ 67, /*->6288*/
/*  6221*/        OPC_CheckChild1Type, MVT::v8i16,
/*  6223*/        OPC_RecordChild2, // #2 = $addr
/*  6224*/        OPC_Scope, 46, /*->6272*/ // 2 children in Scope
/*  6226*/          OPC_RecordChild3, // #3 = $off
/*  6227*/          OPC_MoveChild3,
/*  6228*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6231*/          OPC_CheckPredicate, 12, // Predicate_simm9
/*  6233*/          OPC_CheckType, MVT::i64,
/*  6235*/          OPC_MoveParent,
/*  6236*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  6238*/          OPC_CheckType, MVT::i64,
/*  6240*/          OPC_Scope, 14, /*->6256*/ // 2 children in Scope
/*  6242*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6244*/            OPC_EmitMergeInputChains1_0,
/*  6245*/            OPC_EmitConvertToTarget, 3,
/*  6247*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR128:{ *:[v8i16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRQpre:{ *:[i64] } FPR128:{ *:[v8i16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6256*/          /*Scope*/ 14, /*->6271*/
/*  6257*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  6259*/            OPC_EmitMergeInputChains1_0,
/*  6260*/            OPC_EmitConvertToTarget, 3,
/*  6262*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR128:{ *:[v8i16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRQpost:{ *:[i64] } FPR128:{ *:[v8i16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6271*/          0, /*End of Scope*/
/*  6272*/        /*Scope*/ 14, /*->6287*/
/*  6273*/          OPC_CheckChild2Type, MVT::i64,
/*  6275*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6277*/          OPC_CheckPredicate, 4, // Predicate_store
/*  6279*/          OPC_EmitMergeInputChains1_0,
/*  6280*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1Onev8h), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 1, 2, 
                    // Src: (st v8i16:{ *:[v8i16] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
                    // Dst: (ST1Onev8h v8i16:{ *:[v8i16] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)
/*  6287*/        0, /*End of Scope*/
/*  6288*/      /*Scope*/ 67, /*->6356*/
/*  6289*/        OPC_CheckChild1Type, MVT::v4i32,
/*  6291*/        OPC_RecordChild2, // #2 = $addr
/*  6292*/        OPC_Scope, 46, /*->6340*/ // 2 children in Scope
/*  6294*/          OPC_RecordChild3, // #3 = $off
/*  6295*/          OPC_MoveChild3,
/*  6296*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6299*/          OPC_CheckPredicate, 12, // Predicate_simm9
/*  6301*/          OPC_CheckType, MVT::i64,
/*  6303*/          OPC_MoveParent,
/*  6304*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  6306*/          OPC_CheckType, MVT::i64,
/*  6308*/          OPC_Scope, 14, /*->6324*/ // 2 children in Scope
/*  6310*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6312*/            OPC_EmitMergeInputChains1_0,
/*  6313*/            OPC_EmitConvertToTarget, 3,
/*  6315*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR128:{ *:[v4i32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRQpre:{ *:[i64] } FPR128:{ *:[v4i32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6324*/          /*Scope*/ 14, /*->6339*/
/*  6325*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  6327*/            OPC_EmitMergeInputChains1_0,
/*  6328*/            OPC_EmitConvertToTarget, 3,
/*  6330*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR128:{ *:[v4i32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRQpost:{ *:[i64] } FPR128:{ *:[v4i32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6339*/          0, /*End of Scope*/
/*  6340*/        /*Scope*/ 14, /*->6355*/
/*  6341*/          OPC_CheckChild2Type, MVT::i64,
/*  6343*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6345*/          OPC_CheckPredicate, 4, // Predicate_store
/*  6347*/          OPC_EmitMergeInputChains1_0,
/*  6348*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1Onev4s), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 1, 2, 
                    // Src: (st v4i32:{ *:[v4i32] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
                    // Dst: (ST1Onev4s v4i32:{ *:[v4i32] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)
/*  6355*/        0, /*End of Scope*/
/*  6356*/      /*Scope*/ 49, /*->6406*/
/*  6357*/        OPC_CheckChild1Type, MVT::v4f32,
/*  6359*/        OPC_RecordChild2, // #2 = $addr
/*  6360*/        OPC_RecordChild3, // #3 = $off
/*  6361*/        OPC_MoveChild3,
/*  6362*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6365*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  6367*/        OPC_CheckType, MVT::i64,
/*  6369*/        OPC_MoveParent,
/*  6370*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  6372*/        OPC_CheckType, MVT::i64,
/*  6374*/        OPC_Scope, 14, /*->6390*/ // 2 children in Scope
/*  6376*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6378*/          OPC_EmitMergeInputChains1_0,
/*  6379*/          OPC_EmitConvertToTarget, 3,
/*  6381*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR128:{ *:[v4f32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRQpre:{ *:[i64] } FPR128:{ *:[v4f32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6390*/        /*Scope*/ 14, /*->6405*/
/*  6391*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  6393*/          OPC_EmitMergeInputChains1_0,
/*  6394*/          OPC_EmitConvertToTarget, 3,
/*  6396*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR128:{ *:[v4f32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRQpost:{ *:[i64] } FPR128:{ *:[v4f32] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6405*/        0, /*End of Scope*/
/*  6406*/      /*Scope*/ 67, /*->6474*/
/*  6407*/        OPC_CheckChild1Type, MVT::v2i64,
/*  6409*/        OPC_RecordChild2, // #2 = $addr
/*  6410*/        OPC_Scope, 46, /*->6458*/ // 2 children in Scope
/*  6412*/          OPC_RecordChild3, // #3 = $off
/*  6413*/          OPC_MoveChild3,
/*  6414*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6417*/          OPC_CheckPredicate, 12, // Predicate_simm9
/*  6419*/          OPC_CheckType, MVT::i64,
/*  6421*/          OPC_MoveParent,
/*  6422*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  6424*/          OPC_CheckType, MVT::i64,
/*  6426*/          OPC_Scope, 14, /*->6442*/ // 2 children in Scope
/*  6428*/            OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6430*/            OPC_EmitMergeInputChains1_0,
/*  6431*/            OPC_EmitConvertToTarget, 3,
/*  6433*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                      // Dst: (STRQpre:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6442*/          /*Scope*/ 14, /*->6457*/
/*  6443*/            OPC_CheckPredicate, 11, // Predicate_post_store
/*  6445*/            OPC_EmitMergeInputChains1_0,
/*  6446*/            OPC_EmitConvertToTarget, 3,
/*  6448*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpost), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                      // Src: (ist:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                      // Dst: (STRQpost:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6457*/          0, /*End of Scope*/
/*  6458*/        /*Scope*/ 14, /*->6473*/
/*  6459*/          OPC_CheckChild2Type, MVT::i64,
/*  6461*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6463*/          OPC_CheckPredicate, 4, // Predicate_store
/*  6465*/          OPC_EmitMergeInputChains1_0,
/*  6466*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::ST1Onev2d), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 1, 2, 
                    // Src: (st v2i64:{ *:[v2i64] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
                    // Dst: (ST1Onev2d v2i64:{ *:[v2i64] }:$Vt, GPR64sp:{ *:[i64] }:$Rn)
/*  6473*/        0, /*End of Scope*/
/*  6474*/      /*Scope*/ 49, /*->6524*/
/*  6475*/        OPC_CheckChild1Type, MVT::v2f64,
/*  6477*/        OPC_RecordChild2, // #2 = $addr
/*  6478*/        OPC_RecordChild3, // #3 = $off
/*  6479*/        OPC_MoveChild3,
/*  6480*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6483*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  6485*/        OPC_CheckType, MVT::i64,
/*  6487*/        OPC_MoveParent,
/*  6488*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  6490*/        OPC_CheckType, MVT::i64,
/*  6492*/        OPC_Scope, 14, /*->6508*/ // 2 children in Scope
/*  6494*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6496*/          OPC_EmitMergeInputChains1_0,
/*  6497*/          OPC_EmitConvertToTarget, 3,
/*  6499*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR128:{ *:[v2f64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRQpre:{ *:[i64] } FPR128:{ *:[v2f64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6508*/        /*Scope*/ 14, /*->6523*/
/*  6509*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  6511*/          OPC_EmitMergeInputChains1_0,
/*  6512*/          OPC_EmitConvertToTarget, 3,
/*  6514*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR128:{ *:[v2f64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRQpost:{ *:[i64] } FPR128:{ *:[v2f64] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6523*/        0, /*End of Scope*/
/*  6524*/      /*Scope*/ 49, /*->6574*/
/*  6525*/        OPC_CheckChild1Type, MVT::v8f16,
/*  6527*/        OPC_RecordChild2, // #2 = $addr
/*  6528*/        OPC_RecordChild3, // #3 = $off
/*  6529*/        OPC_MoveChild3,
/*  6530*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6533*/        OPC_CheckPredicate, 12, // Predicate_simm9
/*  6535*/        OPC_CheckType, MVT::i64,
/*  6537*/        OPC_MoveParent,
/*  6538*/        OPC_CheckPredicate, 4, // Predicate_istore
/*  6540*/        OPC_CheckType, MVT::i64,
/*  6542*/        OPC_Scope, 14, /*->6558*/ // 2 children in Scope
/*  6544*/          OPC_CheckPredicate, 13, // Predicate_pre_store
/*  6546*/          OPC_EmitMergeInputChains1_0,
/*  6547*/          OPC_EmitConvertToTarget, 3,
/*  6549*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR128:{ *:[v8f16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 8
                    // Dst: (STRQpre:{ *:[i64] } FPR128:{ *:[v8f16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6558*/        /*Scope*/ 14, /*->6573*/
/*  6559*/          OPC_CheckPredicate, 11, // Predicate_post_store
/*  6561*/          OPC_EmitMergeInputChains1_0,
/*  6562*/          OPC_EmitConvertToTarget, 3,
/*  6564*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STRQpost), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 3/*#Ops*/, 1, 2, 4, 
                    // Src: (ist:{ *:[i64] } FPR128:{ *:[v8f16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 8
                    // Dst: (STRQpost:{ *:[i64] } FPR128:{ *:[v8f16] }:$Rt, GPR64sp:{ *:[i64] }:$addr, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$off)
/*  6573*/        0, /*End of Scope*/
/*  6574*/      0, /*End of Scope*/
/*  6575*/    0, /*End of Scope*/
/*  6576*/  /*SwitchOpcode*/ 72|128,8|128,1/*17480*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->24061
/*  6581*/    OPC_Scope, 91|128,9/*1243*/, /*->7827*/ // 133 children in Scope
/*  6584*/      OPC_CheckChild0Integer, 33|128,2/*289*/, 
/*  6587*/      OPC_RecordChild1, // #0 = $Rd
/*  6588*/      OPC_Scope, 112|128,2/*368*/, /*->6959*/ // 10 children in Scope
/*  6591*/        OPC_CheckChild1Type, MVT::i32,
/*  6593*/        OPC_Scope, 90|128,2/*346*/, /*->6942*/ // 2 children in Scope
/*  6596*/          OPC_MoveChild2,
/*  6597*/          OPC_SwitchOpcode /*2 cases */, 12|128,2/*268*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->6870
/*  6602*/            OPC_MoveChild0,
/*  6603*/            OPC_SwitchOpcode /*2 cases */, 95, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->6702
/*  6607*/              OPC_MoveChild0,
/*  6608*/              OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*  6611*/              OPC_MoveParent,
/*  6612*/              OPC_MoveChild1,
/*  6613*/              OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  6616*/              OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  6619*/              OPC_RecordChild1, // #1 = $Rn
/*  6620*/              OPC_CheckChild1Type, MVT::v2i32,
/*  6622*/              OPC_MoveChild2,
/*  6623*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  6626*/              OPC_RecordChild0, // #2 = $Rm
/*  6627*/              OPC_CheckChild0Type, MVT::v4i32,
/*  6629*/              OPC_RecordChild1, // #3 = $idx
/*  6630*/              OPC_MoveChild1,
/*  6631*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6634*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  6636*/              OPC_CheckType, MVT::i64,
/*  6638*/              OPC_MoveParent,
/*  6639*/              OPC_CheckType, MVT::v2i32,
/*  6641*/              OPC_MoveParent,
/*  6642*/              OPC_MoveParent,
/*  6643*/              OPC_CheckChild2Integer, 0, 
/*  6645*/              OPC_CheckChild2Type, MVT::i32,
/*  6647*/              OPC_CheckType, MVT::v4i32,
/*  6649*/              OPC_MoveParent,
/*  6650*/              OPC_CheckChild1Integer, 0, 
/*  6652*/              OPC_CheckChild1Type, MVT::i64,
/*  6654*/              OPC_CheckType, MVT::i32,
/*  6656*/              OPC_MoveParent,
/*  6657*/              OPC_CheckType, MVT::i32,
/*  6659*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  6661*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v2i32, 0/*#Ops*/,  // Results = #4
/*  6667*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  6670*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v2i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*  6679*/              OPC_EmitConvertToTarget, 3,
/*  6681*/              OPC_EmitNode1, TARGET_VAL(AArch64::SQRDMLAHv2i32_indexed), 0,
                            MVT::v2i32, 4/*#Ops*/, 6, 1, 2, 7,  // Results = #8
/*  6691*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  6694*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 8, 9, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 289:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rd, (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v4i32] } (undef:{ *:[v4i32] }), (intrinsic_wo_chain:{ *:[v2i32] } 294:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), 0:{ *:[i32] }), 0:{ *:[i64] })) - Complexity = 42
                        // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SQRDMLAHv2i32_indexed:{ *:[v2i32] } (INSERT_SUBREG:{ *:[v2i32] } (IMPLICIT_DEF:{ *:[v2i32] }), FPR32Op:{ *:[i32] }:$Rd, ssub:{ *:[i32] }), V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), ssub:{ *:[i32] })
/*  6702*/            /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->6869
/*  6706*/              OPC_Scope, 78, /*->6786*/ // 2 children in Scope
/*  6708*/                OPC_CheckChild0Integer, 35|128,2/*291*/, 
/*  6711*/                OPC_RecordChild1, // #1 = $Rn
/*  6712*/                OPC_CheckChild1Type, MVT::v4i16,
/*  6714*/                OPC_MoveChild2,
/*  6715*/                OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  6718*/                OPC_RecordChild0, // #2 = $Rm
/*  6719*/                OPC_CheckChild0Type, MVT::v8i16,
/*  6721*/                OPC_RecordChild1, // #3 = $idx
/*  6722*/                OPC_MoveChild1,
/*  6723*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6726*/                OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  6728*/                OPC_CheckType, MVT::i64,
/*  6730*/                OPC_MoveParent,
/*  6731*/                OPC_CheckType, MVT::v4i16,
/*  6733*/                OPC_MoveParent,
/*  6734*/                OPC_CheckType, MVT::v4i32,
/*  6736*/                OPC_MoveParent,
/*  6737*/                OPC_CheckChild1Integer, 0, 
/*  6739*/                OPC_CheckChild1Type, MVT::i64,
/*  6741*/                OPC_CheckType, MVT::i32,
/*  6743*/                OPC_MoveParent,
/*  6744*/                OPC_CheckType, MVT::i32,
/*  6746*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  6748*/                OPC_EmitInteger, MVT::i32, 0, 
/*  6751*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  6754*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*  6763*/                OPC_EmitConvertToTarget, 3,
/*  6765*/                OPC_EmitNode1, TARGET_VAL(AArch64::SQDMLALv4i16_indexed), 0,
                              MVT::f128, 4/*#Ops*/, 6, 1, 2, 7,  // Results = #8
/*  6775*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  6778*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 8, 9, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 289:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rd, (vector_extract:{ *:[i32] } (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)), 0:{ *:[i64] })) - Complexity = 31
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SQDMLALv4i16_indexed:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[i32] }:$Rd, ssub:{ *:[i32] }), V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), ssub:{ *:[i32] })
/*  6786*/              /*Scope*/ 81, /*->6868*/
/*  6787*/                OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  6790*/                OPC_RecordChild1, // #1 = $Rn
/*  6791*/                OPC_CheckChild1Type, MVT::v4i32,
/*  6793*/                OPC_MoveChild2,
/*  6794*/                OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  6797*/                OPC_RecordChild0, // #2 = $Rm
/*  6798*/                OPC_CheckChild0Type, MVT::v4i32,
/*  6800*/                OPC_RecordChild1, // #3 = $idx
/*  6801*/                OPC_MoveChild1,
/*  6802*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6805*/                OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  6807*/                OPC_CheckType, MVT::i64,
/*  6809*/                OPC_MoveParent,
/*  6810*/                OPC_CheckType, MVT::v4i32,
/*  6812*/                OPC_MoveParent,
/*  6813*/                OPC_CheckType, MVT::v4i32,
/*  6815*/                OPC_MoveParent,
/*  6816*/                OPC_CheckChild1Integer, 0, 
/*  6818*/                OPC_CheckChild1Type, MVT::i64,
/*  6820*/                OPC_CheckType, MVT::i32,
/*  6822*/                OPC_MoveParent,
/*  6823*/                OPC_CheckType, MVT::i32,
/*  6825*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  6827*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6833*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  6836*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v4i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*  6845*/                OPC_EmitConvertToTarget, 3,
/*  6847*/                OPC_EmitNode1, TARGET_VAL(AArch64::SQRDMLAHv4i32_indexed), 0,
                              MVT::v4i32, 4/*#Ops*/, 6, 1, 2, 7,  // Results = #8
/*  6857*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  6860*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 8, 9, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 289:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rd, (vector_extract:{ *:[i32] } (intrinsic_wo_chain:{ *:[v4i32] } 294:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), 0:{ *:[i64] })) - Complexity = 31
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SQRDMLAHv4i32_indexed:{ *:[v4i32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32Op:{ *:[i32] }:$Rd, ssub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), ssub:{ *:[i32] })
/*  6868*/              0, /*End of Scope*/
/*  6869*/            0, // EndSwitchOpcode
/*  6870*/          /*SwitchOpcode*/ 68, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->6941
/*  6873*/            OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  6876*/            OPC_RecordChild1, // #1 = $Rn
/*  6877*/            OPC_CheckChild1Type, MVT::i32,
/*  6879*/            OPC_Scope, 39, /*->6920*/ // 2 children in Scope
/*  6881*/              OPC_MoveChild2,
/*  6882*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*  6885*/              OPC_RecordChild0, // #2 = $Rm
/*  6886*/              OPC_CheckChild0Type, MVT::v4i32,
/*  6888*/              OPC_RecordChild1, // #3 = $idx
/*  6889*/              OPC_MoveChild1,
/*  6890*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6893*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  6895*/              OPC_CheckType, MVT::i64,
/*  6897*/              OPC_MoveParent,
/*  6898*/              OPC_CheckType, MVT::i32,
/*  6900*/              OPC_MoveParent,
/*  6901*/              OPC_CheckType, MVT::i32,
/*  6903*/              OPC_MoveParent,
/*  6904*/              OPC_CheckType, MVT::i32,
/*  6906*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  6908*/              OPC_EmitConvertToTarget, 3,
/*  6910*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHi32_indexed), 0,
                            MVT::i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 289:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rd, (intrinsic_wo_chain:{ *:[i32] } 294:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rn, (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                        // Dst: (SQRDMLAHi32_indexed:{ *:[i32] } FPR32Op:{ *:[i32] }:$Rd, FPR32Op:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  6920*/            /*Scope*/ 19, /*->6940*/
/*  6921*/              OPC_RecordChild2, // #2 = $Rm
/*  6922*/              OPC_CheckChild2Type, MVT::i32,
/*  6924*/              OPC_CheckType, MVT::i32,
/*  6926*/              OPC_MoveParent,
/*  6927*/              OPC_CheckType, MVT::i32,
/*  6929*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasRDM())
/*  6931*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv1i32), 0,
                            MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 289:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rd, (intrinsic_wo_chain:{ *:[i32] } 294:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)) - Complexity = 16
                        // Dst: (SQRDMLAHv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rd, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/*  6940*/            0, /*End of Scope*/
/*  6941*/          0, // EndSwitchOpcode
/*  6942*/        /*Scope*/ 15, /*->6958*/
/*  6943*/          OPC_RecordChild2, // #1 = $Rm
/*  6944*/          OPC_CheckChild2Type, MVT::i32,
/*  6946*/          OPC_CheckType, MVT::i32,
/*  6948*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  6950*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv1i32), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 289:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                    // Dst: (SQADDv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/*  6958*/        0, /*End of Scope*/
/*  6959*/      /*Scope*/ 81, /*->7041*/
/*  6960*/        OPC_CheckChild1Type, MVT::i64,
/*  6962*/        OPC_Scope, 60, /*->7024*/ // 2 children in Scope
/*  6964*/          OPC_MoveChild2,
/*  6965*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  6968*/          OPC_CheckChild0Integer, 36|128,2/*292*/, 
/*  6971*/          OPC_RecordChild1, // #1 = $Rn
/*  6972*/          OPC_Scope, 35, /*->7009*/ // 2 children in Scope
/*  6974*/            OPC_MoveChild2,
/*  6975*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*  6978*/            OPC_RecordChild0, // #2 = $Rm
/*  6979*/            OPC_CheckChild0Type, MVT::v4i32,
/*  6981*/            OPC_RecordChild1, // #3 = $idx
/*  6982*/            OPC_MoveChild1,
/*  6983*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6986*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  6988*/            OPC_CheckType, MVT::i64,
/*  6990*/            OPC_MoveParent,
/*  6991*/            OPC_MoveParent,
/*  6992*/            OPC_MoveParent,
/*  6993*/            OPC_CheckType, MVT::i64,
/*  6995*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  6997*/            OPC_EmitConvertToTarget, 3,
/*  6999*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv1i64_indexed), 0,
                          MVT::i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 289:{ *:[iPTR] }, FPR64Op:{ *:[i64] }:$Rd, (intrinsic_wo_chain:{ *:[i64] } 292:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rn, (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                      // Dst: (SQDMLALv1i64_indexed:{ *:[i64] } FPR64Op:{ *:[i64] }:$Rd, FPR32Op:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7009*/          /*Scope*/ 13, /*->7023*/
/*  7010*/            OPC_RecordChild2, // #2 = $Rm
/*  7011*/            OPC_MoveParent,
/*  7012*/            OPC_CheckType, MVT::i64,
/*  7014*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALi32), 0,
                          MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 289:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rd, (intrinsic_wo_chain:{ *:[i64] } 292:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)) - Complexity = 16
                      // Dst: (SQDMLALi32:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/*  7023*/          0, /*End of Scope*/
/*  7024*/        /*Scope*/ 15, /*->7040*/
/*  7025*/          OPC_RecordChild2, // #1 = $Rm
/*  7026*/          OPC_CheckChild2Type, MVT::i64,
/*  7028*/          OPC_CheckType, MVT::i64,
/*  7030*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7032*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv1i64), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 289:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                    // Dst: (SQADDv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/*  7040*/        0, /*End of Scope*/
/*  7041*/      /*Scope*/ 3|128,2/*259*/, /*->7302*/
/*  7043*/        OPC_CheckChild1Type, MVT::v4i32,
/*  7045*/        OPC_Scope, 109|128,1/*237*/, /*->7285*/ // 2 children in Scope
/*  7048*/          OPC_MoveChild2,
/*  7049*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  7052*/          OPC_Scope, 32|128,1/*160*/, /*->7215*/ // 2 children in Scope
/*  7055*/            OPC_CheckChild0Integer, 35|128,2/*291*/, 
/*  7058*/            OPC_Scope, 88, /*->7148*/ // 2 children in Scope
/*  7060*/              OPC_MoveChild1,
/*  7061*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*  7064*/              OPC_RecordChild0, // #1 = $Rn
/*  7065*/              OPC_CheckChild1Integer, 4, 
/*  7067*/              OPC_CheckChild1Type, MVT::i64,
/*  7069*/              OPC_CheckType, MVT::v4i16,
/*  7071*/              OPC_MoveParent,
/*  7072*/              OPC_MoveChild2,
/*  7073*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*  7076*/              OPC_Scope, 44, /*->7122*/ // 2 children in Scope
/*  7078*/                OPC_MoveChild0,
/*  7079*/                OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  7082*/                OPC_RecordChild0, // #2 = $Rm
/*  7083*/                OPC_CheckChild0Type, MVT::v8i16,
/*  7085*/                OPC_RecordChild1, // #3 = $idx
/*  7086*/                OPC_MoveChild1,
/*  7087*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7090*/                OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  7092*/                OPC_CheckType, MVT::i64,
/*  7094*/                OPC_MoveParent,
/*  7095*/                OPC_MoveParent,
/*  7096*/                OPC_CheckChild1Integer, 4, 
/*  7098*/                OPC_CheckChild1Type, MVT::i64,
/*  7100*/                OPC_CheckType, MVT::v4i16,
/*  7102*/                OPC_MoveParent,
/*  7103*/                OPC_CheckType, MVT::v4i32,
/*  7105*/                OPC_MoveParent,
/*  7106*/                OPC_CheckType, MVT::v4i32,
/*  7108*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7110*/                OPC_EmitConvertToTarget, 3,
/*  7112*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv8i16_indexed), 0,
                              MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[v4i32] } 289:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] }))) - Complexity = 39
                          // Dst: (SQDMLALv8i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7122*/              /*Scope*/ 24, /*->7147*/
/*  7123*/                OPC_RecordChild0, // #2 = $Rm
/*  7124*/                OPC_CheckChild1Integer, 4, 
/*  7126*/                OPC_CheckChild1Type, MVT::i64,
/*  7128*/                OPC_CheckType, MVT::v4i16,
/*  7130*/                OPC_MoveParent,
/*  7131*/                OPC_CheckType, MVT::v4i32,
/*  7133*/                OPC_MoveParent,
/*  7134*/                OPC_CheckType, MVT::v4i32,
/*  7136*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7138*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv8i16_v4i32), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[v4i32] } 289:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 32
                          // Dst: (SQDMLALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/*  7147*/              0, /*End of Scope*/
/*  7148*/            /*Scope*/ 65, /*->7214*/
/*  7149*/              OPC_RecordChild1, // #1 = $Rn
/*  7150*/              OPC_CheckChild1Type, MVT::v4i16,
/*  7152*/              OPC_Scope, 39, /*->7193*/ // 2 children in Scope
/*  7154*/                OPC_MoveChild2,
/*  7155*/                OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  7158*/                OPC_RecordChild0, // #2 = $Rm
/*  7159*/                OPC_CheckChild0Type, MVT::v8i16,
/*  7161*/                OPC_RecordChild1, // #3 = $idx
/*  7162*/                OPC_MoveChild1,
/*  7163*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7166*/                OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  7168*/                OPC_CheckType, MVT::i64,
/*  7170*/                OPC_MoveParent,
/*  7171*/                OPC_CheckType, MVT::v4i16,
/*  7173*/                OPC_MoveParent,
/*  7174*/                OPC_CheckType, MVT::v4i32,
/*  7176*/                OPC_MoveParent,
/*  7177*/                OPC_CheckType, MVT::v4i32,
/*  7179*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7181*/                OPC_EmitConvertToTarget, 3,
/*  7183*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv4i16_indexed), 0,
                              MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[v4i32] } 289:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 23
                          // Dst: (SQDMLALv4i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7193*/              /*Scope*/ 19, /*->7213*/
/*  7194*/                OPC_RecordChild2, // #2 = $Rm
/*  7195*/                OPC_CheckChild2Type, MVT::v4i16,
/*  7197*/                OPC_CheckType, MVT::v4i32,
/*  7199*/                OPC_MoveParent,
/*  7200*/                OPC_CheckType, MVT::v4i32,
/*  7202*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7204*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv4i16_v4i32), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[v4i32] } 289:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 16
                          // Dst: (SQDMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/*  7213*/              0, /*End of Scope*/
/*  7214*/            0, /*End of Scope*/
/*  7215*/          /*Scope*/ 68, /*->7284*/
/*  7216*/            OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  7219*/            OPC_RecordChild1, // #1 = $Rn
/*  7220*/            OPC_CheckChild1Type, MVT::v4i32,
/*  7222*/            OPC_Scope, 39, /*->7263*/ // 2 children in Scope
/*  7224*/              OPC_MoveChild2,
/*  7225*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  7228*/              OPC_RecordChild0, // #2 = $Rm
/*  7229*/              OPC_CheckChild0Type, MVT::v4i32,
/*  7231*/              OPC_RecordChild1, // #3 = $idx
/*  7232*/              OPC_MoveChild1,
/*  7233*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7236*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  7238*/              OPC_CheckType, MVT::i64,
/*  7240*/              OPC_MoveParent,
/*  7241*/              OPC_CheckType, MVT::v4i32,
/*  7243*/              OPC_MoveParent,
/*  7244*/              OPC_CheckType, MVT::v4i32,
/*  7246*/              OPC_MoveParent,
/*  7247*/              OPC_CheckType, MVT::v4i32,
/*  7249*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7251*/              OPC_EmitConvertToTarget, 3,
/*  7253*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv4i32_indexed), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 289:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 294:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                        // Dst: (SQRDMLAHv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7263*/            /*Scope*/ 19, /*->7283*/
/*  7264*/              OPC_RecordChild2, // #2 = $Rm
/*  7265*/              OPC_CheckChild2Type, MVT::v4i32,
/*  7267*/              OPC_CheckType, MVT::v4i32,
/*  7269*/              OPC_MoveParent,
/*  7270*/              OPC_CheckType, MVT::v4i32,
/*  7272*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7274*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 289:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 294:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 16
                        // Dst: (SQRDMLAHv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/*  7283*/            0, /*End of Scope*/
/*  7284*/          0, /*End of Scope*/
/*  7285*/        /*Scope*/ 15, /*->7301*/
/*  7286*/          OPC_RecordChild2, // #1 = $Rm
/*  7287*/          OPC_CheckChild2Type, MVT::v4i32,
/*  7289*/          OPC_CheckType, MVT::v4i32,
/*  7291*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7293*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 289:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                    // Dst: (SQADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/*  7301*/        0, /*End of Scope*/
/*  7302*/      /*Scope*/ 58|128,1/*186*/, /*->7490*/
/*  7304*/        OPC_CheckChild1Type, MVT::v2i64,
/*  7306*/        OPC_Scope, 36|128,1/*164*/, /*->7473*/ // 2 children in Scope
/*  7309*/          OPC_MoveChild2,
/*  7310*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  7313*/          OPC_CheckChild0Integer, 35|128,2/*291*/, 
/*  7316*/          OPC_Scope, 88, /*->7406*/ // 2 children in Scope
/*  7318*/            OPC_MoveChild1,
/*  7319*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*  7322*/            OPC_RecordChild0, // #1 = $Rn
/*  7323*/            OPC_CheckChild1Integer, 2, 
/*  7325*/            OPC_CheckChild1Type, MVT::i64,
/*  7327*/            OPC_CheckType, MVT::v2i32,
/*  7329*/            OPC_MoveParent,
/*  7330*/            OPC_MoveChild2,
/*  7331*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*  7334*/            OPC_Scope, 44, /*->7380*/ // 2 children in Scope
/*  7336*/              OPC_MoveChild0,
/*  7337*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  7340*/              OPC_RecordChild0, // #2 = $Rm
/*  7341*/              OPC_CheckChild0Type, MVT::v4i32,
/*  7343*/              OPC_RecordChild1, // #3 = $idx
/*  7344*/              OPC_MoveChild1,
/*  7345*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7348*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  7350*/              OPC_CheckType, MVT::i64,
/*  7352*/              OPC_MoveParent,
/*  7353*/              OPC_MoveParent,
/*  7354*/              OPC_CheckChild1Integer, 2, 
/*  7356*/              OPC_CheckChild1Type, MVT::i64,
/*  7358*/              OPC_CheckType, MVT::v2i32,
/*  7360*/              OPC_MoveParent,
/*  7361*/              OPC_CheckType, MVT::v2i64,
/*  7363*/              OPC_MoveParent,
/*  7364*/              OPC_CheckType, MVT::v2i64,
/*  7366*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7368*/              OPC_EmitConvertToTarget, 3,
/*  7370*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv4i32_indexed), 0,
                            MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v2i64] } 289:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] }))) - Complexity = 39
                        // Dst: (SQDMLALv4i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7380*/            /*Scope*/ 24, /*->7405*/
/*  7381*/              OPC_RecordChild0, // #2 = $Rm
/*  7382*/              OPC_CheckChild1Integer, 2, 
/*  7384*/              OPC_CheckChild1Type, MVT::i64,
/*  7386*/              OPC_CheckType, MVT::v2i32,
/*  7388*/              OPC_MoveParent,
/*  7389*/              OPC_CheckType, MVT::v2i64,
/*  7391*/              OPC_MoveParent,
/*  7392*/              OPC_CheckType, MVT::v2i64,
/*  7394*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7396*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv4i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v2i64] } 289:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 32
                        // Dst: (SQDMLALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/*  7405*/            0, /*End of Scope*/
/*  7406*/          /*Scope*/ 65, /*->7472*/
/*  7407*/            OPC_RecordChild1, // #1 = $Rn
/*  7408*/            OPC_CheckChild1Type, MVT::v2i32,
/*  7410*/            OPC_Scope, 39, /*->7451*/ // 2 children in Scope
/*  7412*/              OPC_MoveChild2,
/*  7413*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  7416*/              OPC_RecordChild0, // #2 = $Rm
/*  7417*/              OPC_CheckChild0Type, MVT::v4i32,
/*  7419*/              OPC_RecordChild1, // #3 = $idx
/*  7420*/              OPC_MoveChild1,
/*  7421*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7424*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  7426*/              OPC_CheckType, MVT::i64,
/*  7428*/              OPC_MoveParent,
/*  7429*/              OPC_CheckType, MVT::v2i32,
/*  7431*/              OPC_MoveParent,
/*  7432*/              OPC_CheckType, MVT::v2i64,
/*  7434*/              OPC_MoveParent,
/*  7435*/              OPC_CheckType, MVT::v2i64,
/*  7437*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7439*/              OPC_EmitConvertToTarget, 3,
/*  7441*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv2i32_indexed), 0,
                            MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v2i64] } 289:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                        // Dst: (SQDMLALv2i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7451*/            /*Scope*/ 19, /*->7471*/
/*  7452*/              OPC_RecordChild2, // #2 = $Rm
/*  7453*/              OPC_CheckChild2Type, MVT::v2i32,
/*  7455*/              OPC_CheckType, MVT::v2i64,
/*  7457*/              OPC_MoveParent,
/*  7458*/              OPC_CheckType, MVT::v2i64,
/*  7460*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7462*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLALv2i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v2i64] } 289:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 16
                        // Dst: (SQDMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/*  7471*/            0, /*End of Scope*/
/*  7472*/          0, /*End of Scope*/
/*  7473*/        /*Scope*/ 15, /*->7489*/
/*  7474*/          OPC_RecordChild2, // #1 = $Rm
/*  7475*/          OPC_CheckChild2Type, MVT::v2i64,
/*  7477*/          OPC_CheckType, MVT::v2i64,
/*  7479*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7481*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 289:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                    // Dst: (SQADDv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/*  7489*/        0, /*End of Scope*/
/*  7490*/      /*Scope*/ 93, /*->7584*/
/*  7491*/        OPC_CheckChild1Type, MVT::v4i16,
/*  7493*/        OPC_Scope, 72, /*->7567*/ // 2 children in Scope
/*  7495*/          OPC_MoveChild2,
/*  7496*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  7499*/          OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  7502*/          OPC_RecordChild1, // #1 = $Rn
/*  7503*/          OPC_CheckChild1Type, MVT::v4i16,
/*  7505*/          OPC_Scope, 39, /*->7546*/ // 2 children in Scope
/*  7507*/            OPC_MoveChild2,
/*  7508*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  7511*/            OPC_RecordChild0, // #2 = $Rm
/*  7512*/            OPC_CheckChild0Type, MVT::v8i16,
/*  7514*/            OPC_RecordChild1, // #3 = $idx
/*  7515*/            OPC_MoveChild1,
/*  7516*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7519*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  7521*/            OPC_CheckType, MVT::i64,
/*  7523*/            OPC_MoveParent,
/*  7524*/            OPC_CheckType, MVT::v4i16,
/*  7526*/            OPC_MoveParent,
/*  7527*/            OPC_CheckType, MVT::v4i16,
/*  7529*/            OPC_MoveParent,
/*  7530*/            OPC_CheckType, MVT::v4i16,
/*  7532*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7534*/            OPC_EmitConvertToTarget, 3,
/*  7536*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv4i16_indexed), 0,
                          MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 289:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 294:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 23
                      // Dst: (SQRDMLAHv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7546*/          /*Scope*/ 19, /*->7566*/
/*  7547*/            OPC_RecordChild2, // #2 = $Rm
/*  7548*/            OPC_CheckChild2Type, MVT::v4i16,
/*  7550*/            OPC_CheckType, MVT::v4i16,
/*  7552*/            OPC_MoveParent,
/*  7553*/            OPC_CheckType, MVT::v4i16,
/*  7555*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7557*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv4i16), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 289:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 294:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 16
                      // Dst: (SQRDMLAHv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/*  7566*/          0, /*End of Scope*/
/*  7567*/        /*Scope*/ 15, /*->7583*/
/*  7568*/          OPC_RecordChild2, // #1 = $Rm
/*  7569*/          OPC_CheckChild2Type, MVT::v4i16,
/*  7571*/          OPC_CheckType, MVT::v4i16,
/*  7573*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7575*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 289:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                    // Dst: (SQADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/*  7583*/        0, /*End of Scope*/
/*  7584*/      /*Scope*/ 93, /*->7678*/
/*  7585*/        OPC_CheckChild1Type, MVT::v8i16,
/*  7587*/        OPC_Scope, 72, /*->7661*/ // 2 children in Scope
/*  7589*/          OPC_MoveChild2,
/*  7590*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  7593*/          OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  7596*/          OPC_RecordChild1, // #1 = $Rn
/*  7597*/          OPC_CheckChild1Type, MVT::v8i16,
/*  7599*/          OPC_Scope, 39, /*->7640*/ // 2 children in Scope
/*  7601*/            OPC_MoveChild2,
/*  7602*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  7605*/            OPC_RecordChild0, // #2 = $Rm
/*  7606*/            OPC_CheckChild0Type, MVT::v8i16,
/*  7608*/            OPC_RecordChild1, // #3 = $idx
/*  7609*/            OPC_MoveChild1,
/*  7610*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7613*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  7615*/            OPC_CheckType, MVT::i64,
/*  7617*/            OPC_MoveParent,
/*  7618*/            OPC_CheckType, MVT::v8i16,
/*  7620*/            OPC_MoveParent,
/*  7621*/            OPC_CheckType, MVT::v8i16,
/*  7623*/            OPC_MoveParent,
/*  7624*/            OPC_CheckType, MVT::v8i16,
/*  7626*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7628*/            OPC_EmitConvertToTarget, 3,
/*  7630*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv8i16_indexed), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 289:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 294:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 23
                      // Dst: (SQRDMLAHv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7640*/          /*Scope*/ 19, /*->7660*/
/*  7641*/            OPC_RecordChild2, // #2 = $Rm
/*  7642*/            OPC_CheckChild2Type, MVT::v8i16,
/*  7644*/            OPC_CheckType, MVT::v8i16,
/*  7646*/            OPC_MoveParent,
/*  7647*/            OPC_CheckType, MVT::v8i16,
/*  7649*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7651*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 289:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 294:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 16
                      // Dst: (SQRDMLAHv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/*  7660*/          0, /*End of Scope*/
/*  7661*/        /*Scope*/ 15, /*->7677*/
/*  7662*/          OPC_RecordChild2, // #1 = $Rm
/*  7663*/          OPC_CheckChild2Type, MVT::v8i16,
/*  7665*/          OPC_CheckType, MVT::v8i16,
/*  7667*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7669*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 289:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                    // Dst: (SQADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/*  7677*/        0, /*End of Scope*/
/*  7678*/      /*Scope*/ 93, /*->7772*/
/*  7679*/        OPC_CheckChild1Type, MVT::v2i32,
/*  7681*/        OPC_Scope, 72, /*->7755*/ // 2 children in Scope
/*  7683*/          OPC_MoveChild2,
/*  7684*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  7687*/          OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  7690*/          OPC_RecordChild1, // #1 = $Rn
/*  7691*/          OPC_CheckChild1Type, MVT::v2i32,
/*  7693*/          OPC_Scope, 39, /*->7734*/ // 2 children in Scope
/*  7695*/            OPC_MoveChild2,
/*  7696*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  7699*/            OPC_RecordChild0, // #2 = $Rm
/*  7700*/            OPC_CheckChild0Type, MVT::v4i32,
/*  7702*/            OPC_RecordChild1, // #3 = $idx
/*  7703*/            OPC_MoveChild1,
/*  7704*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7707*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  7709*/            OPC_CheckType, MVT::i64,
/*  7711*/            OPC_MoveParent,
/*  7712*/            OPC_CheckType, MVT::v2i32,
/*  7714*/            OPC_MoveParent,
/*  7715*/            OPC_CheckType, MVT::v2i32,
/*  7717*/            OPC_MoveParent,
/*  7718*/            OPC_CheckType, MVT::v2i32,
/*  7720*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7722*/            OPC_EmitConvertToTarget, 3,
/*  7724*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv2i32_indexed), 0,
                          MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 289:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 294:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                      // Dst: (SQRDMLAHv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  7734*/          /*Scope*/ 19, /*->7754*/
/*  7735*/            OPC_RecordChild2, // #2 = $Rm
/*  7736*/            OPC_CheckChild2Type, MVT::v2i32,
/*  7738*/            OPC_CheckType, MVT::v2i32,
/*  7740*/            OPC_MoveParent,
/*  7741*/            OPC_CheckType, MVT::v2i32,
/*  7743*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7745*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLAHv2i32), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 289:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 294:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 16
                      // Dst: (SQRDMLAHv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/*  7754*/          0, /*End of Scope*/
/*  7755*/        /*Scope*/ 15, /*->7771*/
/*  7756*/          OPC_RecordChild2, // #1 = $Rm
/*  7757*/          OPC_CheckChild2Type, MVT::v2i32,
/*  7759*/          OPC_CheckType, MVT::v2i32,
/*  7761*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7763*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 289:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                    // Dst: (SQADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/*  7771*/        0, /*End of Scope*/
/*  7772*/      /*Scope*/ 17, /*->7790*/
/*  7773*/        OPC_CheckChild1Type, MVT::v8i8,
/*  7775*/        OPC_RecordChild2, // #1 = $Rm
/*  7776*/        OPC_CheckChild2Type, MVT::v8i8,
/*  7778*/        OPC_CheckType, MVT::v8i8,
/*  7780*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7782*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 289:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SQADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/*  7790*/      /*Scope*/ 17, /*->7808*/
/*  7791*/        OPC_CheckChild1Type, MVT::v16i8,
/*  7793*/        OPC_RecordChild2, // #1 = $Rm
/*  7794*/        OPC_CheckChild2Type, MVT::v16i8,
/*  7796*/        OPC_CheckType, MVT::v16i8,
/*  7798*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7800*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 289:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SQADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/*  7808*/      /*Scope*/ 17, /*->7826*/
/*  7809*/        OPC_CheckChild1Type, MVT::v1i64,
/*  7811*/        OPC_RecordChild2, // #1 = $Rm
/*  7812*/        OPC_CheckChild2Type, MVT::v1i64,
/*  7814*/        OPC_CheckType, MVT::v1i64,
/*  7816*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7818*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQADDv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 289:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (SQADDv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/*  7826*/      0, /*End of Scope*/
/*  7827*/    /*Scope*/ 91|128,9/*1243*/, /*->9072*/
/*  7829*/      OPC_CheckChild0Integer, 46|128,2/*302*/, 
/*  7832*/      OPC_RecordChild1, // #0 = $Rd
/*  7833*/      OPC_Scope, 112|128,2/*368*/, /*->8204*/ // 10 children in Scope
/*  7836*/        OPC_CheckChild1Type, MVT::i32,
/*  7838*/        OPC_Scope, 90|128,2/*346*/, /*->8187*/ // 2 children in Scope
/*  7841*/          OPC_MoveChild2,
/*  7842*/          OPC_SwitchOpcode /*2 cases */, 12|128,2/*268*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->8115
/*  7847*/            OPC_MoveChild0,
/*  7848*/            OPC_SwitchOpcode /*2 cases */, 95, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->7947
/*  7852*/              OPC_MoveChild0,
/*  7853*/              OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*  7856*/              OPC_MoveParent,
/*  7857*/              OPC_MoveChild1,
/*  7858*/              OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  7861*/              OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  7864*/              OPC_RecordChild1, // #1 = $Rn
/*  7865*/              OPC_CheckChild1Type, MVT::v2i32,
/*  7867*/              OPC_MoveChild2,
/*  7868*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  7871*/              OPC_RecordChild0, // #2 = $Rm
/*  7872*/              OPC_CheckChild0Type, MVT::v4i32,
/*  7874*/              OPC_RecordChild1, // #3 = $idx
/*  7875*/              OPC_MoveChild1,
/*  7876*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7879*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  7881*/              OPC_CheckType, MVT::i64,
/*  7883*/              OPC_MoveParent,
/*  7884*/              OPC_CheckType, MVT::v2i32,
/*  7886*/              OPC_MoveParent,
/*  7887*/              OPC_MoveParent,
/*  7888*/              OPC_CheckChild2Integer, 0, 
/*  7890*/              OPC_CheckChild2Type, MVT::i32,
/*  7892*/              OPC_CheckType, MVT::v4i32,
/*  7894*/              OPC_MoveParent,
/*  7895*/              OPC_CheckChild1Integer, 0, 
/*  7897*/              OPC_CheckChild1Type, MVT::i64,
/*  7899*/              OPC_CheckType, MVT::i32,
/*  7901*/              OPC_MoveParent,
/*  7902*/              OPC_CheckType, MVT::i32,
/*  7904*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  7906*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v2i32, 0/*#Ops*/,  // Results = #4
/*  7912*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  7915*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v2i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*  7924*/              OPC_EmitConvertToTarget, 3,
/*  7926*/              OPC_EmitNode1, TARGET_VAL(AArch64::SQRDMLSHv2i32_indexed), 0,
                            MVT::v2i32, 4/*#Ops*/, 6, 1, 2, 7,  // Results = #8
/*  7936*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  7939*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 8, 9, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 302:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rd, (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v4i32] } (undef:{ *:[v4i32] }), (intrinsic_wo_chain:{ *:[v2i32] } 294:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), 0:{ *:[i32] }), 0:{ *:[i64] })) - Complexity = 42
                        // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SQRDMLSHv2i32_indexed:{ *:[v2i32] } (INSERT_SUBREG:{ *:[v2i32] } (IMPLICIT_DEF:{ *:[v2i32] }), FPR32Op:{ *:[i32] }:$Rd, ssub:{ *:[i32] }), V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), ssub:{ *:[i32] })
/*  7947*/            /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->8114
/*  7951*/              OPC_Scope, 78, /*->8031*/ // 2 children in Scope
/*  7953*/                OPC_CheckChild0Integer, 35|128,2/*291*/, 
/*  7956*/                OPC_RecordChild1, // #1 = $Rn
/*  7957*/                OPC_CheckChild1Type, MVT::v4i16,
/*  7959*/                OPC_MoveChild2,
/*  7960*/                OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  7963*/                OPC_RecordChild0, // #2 = $Rm
/*  7964*/                OPC_CheckChild0Type, MVT::v8i16,
/*  7966*/                OPC_RecordChild1, // #3 = $idx
/*  7967*/                OPC_MoveChild1,
/*  7968*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7971*/                OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  7973*/                OPC_CheckType, MVT::i64,
/*  7975*/                OPC_MoveParent,
/*  7976*/                OPC_CheckType, MVT::v4i16,
/*  7978*/                OPC_MoveParent,
/*  7979*/                OPC_CheckType, MVT::v4i32,
/*  7981*/                OPC_MoveParent,
/*  7982*/                OPC_CheckChild1Integer, 0, 
/*  7984*/                OPC_CheckChild1Type, MVT::i64,
/*  7986*/                OPC_CheckType, MVT::i32,
/*  7988*/                OPC_MoveParent,
/*  7989*/                OPC_CheckType, MVT::i32,
/*  7991*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  7993*/                OPC_EmitInteger, MVT::i32, 0, 
/*  7996*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  7999*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*  8008*/                OPC_EmitConvertToTarget, 3,
/*  8010*/                OPC_EmitNode1, TARGET_VAL(AArch64::SQDMLSLv4i16_indexed), 0,
                              MVT::f128, 4/*#Ops*/, 6, 1, 2, 7,  // Results = #8
/*  8020*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  8023*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 8, 9, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 302:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rd, (vector_extract:{ *:[i32] } (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)), 0:{ *:[i64] })) - Complexity = 31
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SQDMLSLv4i16_indexed:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[i32] }:$Rd, ssub:{ *:[i32] }), V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), ssub:{ *:[i32] })
/*  8031*/              /*Scope*/ 81, /*->8113*/
/*  8032*/                OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  8035*/                OPC_RecordChild1, // #1 = $Rn
/*  8036*/                OPC_CheckChild1Type, MVT::v4i32,
/*  8038*/                OPC_MoveChild2,
/*  8039*/                OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  8042*/                OPC_RecordChild0, // #2 = $Rm
/*  8043*/                OPC_CheckChild0Type, MVT::v4i32,
/*  8045*/                OPC_RecordChild1, // #3 = $idx
/*  8046*/                OPC_MoveChild1,
/*  8047*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8050*/                OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  8052*/                OPC_CheckType, MVT::i64,
/*  8054*/                OPC_MoveParent,
/*  8055*/                OPC_CheckType, MVT::v4i32,
/*  8057*/                OPC_MoveParent,
/*  8058*/                OPC_CheckType, MVT::v4i32,
/*  8060*/                OPC_MoveParent,
/*  8061*/                OPC_CheckChild1Integer, 0, 
/*  8063*/                OPC_CheckChild1Type, MVT::i64,
/*  8065*/                OPC_CheckType, MVT::i32,
/*  8067*/                OPC_MoveParent,
/*  8068*/                OPC_CheckType, MVT::i32,
/*  8070*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8072*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  8078*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  8081*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v4i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*  8090*/                OPC_EmitConvertToTarget, 3,
/*  8092*/                OPC_EmitNode1, TARGET_VAL(AArch64::SQRDMLSHv4i32_indexed), 0,
                              MVT::v4i32, 4/*#Ops*/, 6, 1, 2, 7,  // Results = #8
/*  8102*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/*  8105*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 8, 9, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 302:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rd, (vector_extract:{ *:[i32] } (intrinsic_wo_chain:{ *:[v4i32] } 294:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), 0:{ *:[i64] })) - Complexity = 31
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SQRDMLSHv4i32_indexed:{ *:[v4i32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32Op:{ *:[i32] }:$Rd, ssub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), ssub:{ *:[i32] })
/*  8113*/              0, /*End of Scope*/
/*  8114*/            0, // EndSwitchOpcode
/*  8115*/          /*SwitchOpcode*/ 68, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->8186
/*  8118*/            OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  8121*/            OPC_RecordChild1, // #1 = $Rn
/*  8122*/            OPC_CheckChild1Type, MVT::i32,
/*  8124*/            OPC_Scope, 39, /*->8165*/ // 2 children in Scope
/*  8126*/              OPC_MoveChild2,
/*  8127*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*  8130*/              OPC_RecordChild0, // #2 = $Rm
/*  8131*/              OPC_CheckChild0Type, MVT::v4i32,
/*  8133*/              OPC_RecordChild1, // #3 = $idx
/*  8134*/              OPC_MoveChild1,
/*  8135*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8138*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  8140*/              OPC_CheckType, MVT::i64,
/*  8142*/              OPC_MoveParent,
/*  8143*/              OPC_CheckType, MVT::i32,
/*  8145*/              OPC_MoveParent,
/*  8146*/              OPC_CheckType, MVT::i32,
/*  8148*/              OPC_MoveParent,
/*  8149*/              OPC_CheckType, MVT::i32,
/*  8151*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8153*/              OPC_EmitConvertToTarget, 3,
/*  8155*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHi32_indexed), 0,
                            MVT::i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 302:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rd, (intrinsic_wo_chain:{ *:[i32] } 294:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rn, (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                        // Dst: (SQRDMLSHi32_indexed:{ *:[i32] } FPR32Op:{ *:[i32] }:$Rd, FPR32Op:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8165*/            /*Scope*/ 19, /*->8185*/
/*  8166*/              OPC_RecordChild2, // #2 = $Rm
/*  8167*/              OPC_CheckChild2Type, MVT::i32,
/*  8169*/              OPC_CheckType, MVT::i32,
/*  8171*/              OPC_MoveParent,
/*  8172*/              OPC_CheckType, MVT::i32,
/*  8174*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasRDM())
/*  8176*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv1i32), 0,
                            MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 302:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rd, (intrinsic_wo_chain:{ *:[i32] } 294:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)) - Complexity = 16
                        // Dst: (SQRDMLSHv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rd, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/*  8185*/            0, /*End of Scope*/
/*  8186*/          0, // EndSwitchOpcode
/*  8187*/        /*Scope*/ 15, /*->8203*/
/*  8188*/          OPC_RecordChild2, // #1 = $Rm
/*  8189*/          OPC_CheckChild2Type, MVT::i32,
/*  8191*/          OPC_CheckType, MVT::i32,
/*  8193*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8195*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv1i32), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 302:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                    // Dst: (SQSUBv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/*  8203*/        0, /*End of Scope*/
/*  8204*/      /*Scope*/ 81, /*->8286*/
/*  8205*/        OPC_CheckChild1Type, MVT::i64,
/*  8207*/        OPC_Scope, 60, /*->8269*/ // 2 children in Scope
/*  8209*/          OPC_MoveChild2,
/*  8210*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  8213*/          OPC_CheckChild0Integer, 36|128,2/*292*/, 
/*  8216*/          OPC_RecordChild1, // #1 = $Rn
/*  8217*/          OPC_Scope, 35, /*->8254*/ // 2 children in Scope
/*  8219*/            OPC_MoveChild2,
/*  8220*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*  8223*/            OPC_RecordChild0, // #2 = $Rm
/*  8224*/            OPC_CheckChild0Type, MVT::v4i32,
/*  8226*/            OPC_RecordChild1, // #3 = $idx
/*  8227*/            OPC_MoveChild1,
/*  8228*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8231*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  8233*/            OPC_CheckType, MVT::i64,
/*  8235*/            OPC_MoveParent,
/*  8236*/            OPC_MoveParent,
/*  8237*/            OPC_MoveParent,
/*  8238*/            OPC_CheckType, MVT::i64,
/*  8240*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8242*/            OPC_EmitConvertToTarget, 3,
/*  8244*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv1i64_indexed), 0,
                          MVT::i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 302:{ *:[iPTR] }, FPR64Op:{ *:[i64] }:$Rd, (intrinsic_wo_chain:{ *:[i64] } 292:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rn, (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                      // Dst: (SQDMLSLv1i64_indexed:{ *:[i64] } FPR64Op:{ *:[i64] }:$Rd, FPR32Op:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8254*/          /*Scope*/ 13, /*->8268*/
/*  8255*/            OPC_RecordChild2, // #2 = $Rm
/*  8256*/            OPC_MoveParent,
/*  8257*/            OPC_CheckType, MVT::i64,
/*  8259*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLi32), 0,
                          MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 302:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rd, (intrinsic_wo_chain:{ *:[i64] } 292:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)) - Complexity = 16
                      // Dst: (SQDMLSLi32:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/*  8268*/          0, /*End of Scope*/
/*  8269*/        /*Scope*/ 15, /*->8285*/
/*  8270*/          OPC_RecordChild2, // #1 = $Rm
/*  8271*/          OPC_CheckChild2Type, MVT::i64,
/*  8273*/          OPC_CheckType, MVT::i64,
/*  8275*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8277*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv1i64), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 302:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                    // Dst: (SQSUBv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/*  8285*/        0, /*End of Scope*/
/*  8286*/      /*Scope*/ 3|128,2/*259*/, /*->8547*/
/*  8288*/        OPC_CheckChild1Type, MVT::v4i32,
/*  8290*/        OPC_Scope, 109|128,1/*237*/, /*->8530*/ // 2 children in Scope
/*  8293*/          OPC_MoveChild2,
/*  8294*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  8297*/          OPC_Scope, 32|128,1/*160*/, /*->8460*/ // 2 children in Scope
/*  8300*/            OPC_CheckChild0Integer, 35|128,2/*291*/, 
/*  8303*/            OPC_Scope, 88, /*->8393*/ // 2 children in Scope
/*  8305*/              OPC_MoveChild1,
/*  8306*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*  8309*/              OPC_RecordChild0, // #1 = $Rn
/*  8310*/              OPC_CheckChild1Integer, 4, 
/*  8312*/              OPC_CheckChild1Type, MVT::i64,
/*  8314*/              OPC_CheckType, MVT::v4i16,
/*  8316*/              OPC_MoveParent,
/*  8317*/              OPC_MoveChild2,
/*  8318*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*  8321*/              OPC_Scope, 44, /*->8367*/ // 2 children in Scope
/*  8323*/                OPC_MoveChild0,
/*  8324*/                OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  8327*/                OPC_RecordChild0, // #2 = $Rm
/*  8328*/                OPC_CheckChild0Type, MVT::v8i16,
/*  8330*/                OPC_RecordChild1, // #3 = $idx
/*  8331*/                OPC_MoveChild1,
/*  8332*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8335*/                OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  8337*/                OPC_CheckType, MVT::i64,
/*  8339*/                OPC_MoveParent,
/*  8340*/                OPC_MoveParent,
/*  8341*/                OPC_CheckChild1Integer, 4, 
/*  8343*/                OPC_CheckChild1Type, MVT::i64,
/*  8345*/                OPC_CheckType, MVT::v4i16,
/*  8347*/                OPC_MoveParent,
/*  8348*/                OPC_CheckType, MVT::v4i32,
/*  8350*/                OPC_MoveParent,
/*  8351*/                OPC_CheckType, MVT::v4i32,
/*  8353*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8355*/                OPC_EmitConvertToTarget, 3,
/*  8357*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv8i16_indexed), 0,
                              MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[v4i32] } 302:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] }))) - Complexity = 39
                          // Dst: (SQDMLSLv8i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8367*/              /*Scope*/ 24, /*->8392*/
/*  8368*/                OPC_RecordChild0, // #2 = $Rm
/*  8369*/                OPC_CheckChild1Integer, 4, 
/*  8371*/                OPC_CheckChild1Type, MVT::i64,
/*  8373*/                OPC_CheckType, MVT::v4i16,
/*  8375*/                OPC_MoveParent,
/*  8376*/                OPC_CheckType, MVT::v4i32,
/*  8378*/                OPC_MoveParent,
/*  8379*/                OPC_CheckType, MVT::v4i32,
/*  8381*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8383*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv8i16_v4i32), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[v4i32] } 302:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 32
                          // Dst: (SQDMLSLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/*  8392*/              0, /*End of Scope*/
/*  8393*/            /*Scope*/ 65, /*->8459*/
/*  8394*/              OPC_RecordChild1, // #1 = $Rn
/*  8395*/              OPC_CheckChild1Type, MVT::v4i16,
/*  8397*/              OPC_Scope, 39, /*->8438*/ // 2 children in Scope
/*  8399*/                OPC_MoveChild2,
/*  8400*/                OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  8403*/                OPC_RecordChild0, // #2 = $Rm
/*  8404*/                OPC_CheckChild0Type, MVT::v8i16,
/*  8406*/                OPC_RecordChild1, // #3 = $idx
/*  8407*/                OPC_MoveChild1,
/*  8408*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8411*/                OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  8413*/                OPC_CheckType, MVT::i64,
/*  8415*/                OPC_MoveParent,
/*  8416*/                OPC_CheckType, MVT::v4i16,
/*  8418*/                OPC_MoveParent,
/*  8419*/                OPC_CheckType, MVT::v4i32,
/*  8421*/                OPC_MoveParent,
/*  8422*/                OPC_CheckType, MVT::v4i32,
/*  8424*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8426*/                OPC_EmitConvertToTarget, 3,
/*  8428*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv4i16_indexed), 0,
                              MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[v4i32] } 302:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 23
                          // Dst: (SQDMLSLv4i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8438*/              /*Scope*/ 19, /*->8458*/
/*  8439*/                OPC_RecordChild2, // #2 = $Rm
/*  8440*/                OPC_CheckChild2Type, MVT::v4i16,
/*  8442*/                OPC_CheckType, MVT::v4i32,
/*  8444*/                OPC_MoveParent,
/*  8445*/                OPC_CheckType, MVT::v4i32,
/*  8447*/                OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8449*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv4i16_v4i32), 0,
                              MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[v4i32] } 302:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 16
                          // Dst: (SQDMLSLv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/*  8458*/              0, /*End of Scope*/
/*  8459*/            0, /*End of Scope*/
/*  8460*/          /*Scope*/ 68, /*->8529*/
/*  8461*/            OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  8464*/            OPC_RecordChild1, // #1 = $Rn
/*  8465*/            OPC_CheckChild1Type, MVT::v4i32,
/*  8467*/            OPC_Scope, 39, /*->8508*/ // 2 children in Scope
/*  8469*/              OPC_MoveChild2,
/*  8470*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  8473*/              OPC_RecordChild0, // #2 = $Rm
/*  8474*/              OPC_CheckChild0Type, MVT::v4i32,
/*  8476*/              OPC_RecordChild1, // #3 = $idx
/*  8477*/              OPC_MoveChild1,
/*  8478*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8481*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  8483*/              OPC_CheckType, MVT::i64,
/*  8485*/              OPC_MoveParent,
/*  8486*/              OPC_CheckType, MVT::v4i32,
/*  8488*/              OPC_MoveParent,
/*  8489*/              OPC_CheckType, MVT::v4i32,
/*  8491*/              OPC_MoveParent,
/*  8492*/              OPC_CheckType, MVT::v4i32,
/*  8494*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8496*/              OPC_EmitConvertToTarget, 3,
/*  8498*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv4i32_indexed), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 302:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 294:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                        // Dst: (SQRDMLSHv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8508*/            /*Scope*/ 19, /*->8528*/
/*  8509*/              OPC_RecordChild2, // #2 = $Rm
/*  8510*/              OPC_CheckChild2Type, MVT::v4i32,
/*  8512*/              OPC_CheckType, MVT::v4i32,
/*  8514*/              OPC_MoveParent,
/*  8515*/              OPC_CheckType, MVT::v4i32,
/*  8517*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8519*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 302:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 294:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 16
                        // Dst: (SQRDMLSHv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/*  8528*/            0, /*End of Scope*/
/*  8529*/          0, /*End of Scope*/
/*  8530*/        /*Scope*/ 15, /*->8546*/
/*  8531*/          OPC_RecordChild2, // #1 = $Rm
/*  8532*/          OPC_CheckChild2Type, MVT::v4i32,
/*  8534*/          OPC_CheckType, MVT::v4i32,
/*  8536*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8538*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 302:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                    // Dst: (SQSUBv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/*  8546*/        0, /*End of Scope*/
/*  8547*/      /*Scope*/ 58|128,1/*186*/, /*->8735*/
/*  8549*/        OPC_CheckChild1Type, MVT::v2i64,
/*  8551*/        OPC_Scope, 36|128,1/*164*/, /*->8718*/ // 2 children in Scope
/*  8554*/          OPC_MoveChild2,
/*  8555*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  8558*/          OPC_CheckChild0Integer, 35|128,2/*291*/, 
/*  8561*/          OPC_Scope, 88, /*->8651*/ // 2 children in Scope
/*  8563*/            OPC_MoveChild1,
/*  8564*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*  8567*/            OPC_RecordChild0, // #1 = $Rn
/*  8568*/            OPC_CheckChild1Integer, 2, 
/*  8570*/            OPC_CheckChild1Type, MVT::i64,
/*  8572*/            OPC_CheckType, MVT::v2i32,
/*  8574*/            OPC_MoveParent,
/*  8575*/            OPC_MoveChild2,
/*  8576*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*  8579*/            OPC_Scope, 44, /*->8625*/ // 2 children in Scope
/*  8581*/              OPC_MoveChild0,
/*  8582*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  8585*/              OPC_RecordChild0, // #2 = $Rm
/*  8586*/              OPC_CheckChild0Type, MVT::v4i32,
/*  8588*/              OPC_RecordChild1, // #3 = $idx
/*  8589*/              OPC_MoveChild1,
/*  8590*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8593*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  8595*/              OPC_CheckType, MVT::i64,
/*  8597*/              OPC_MoveParent,
/*  8598*/              OPC_MoveParent,
/*  8599*/              OPC_CheckChild1Integer, 2, 
/*  8601*/              OPC_CheckChild1Type, MVT::i64,
/*  8603*/              OPC_CheckType, MVT::v2i32,
/*  8605*/              OPC_MoveParent,
/*  8606*/              OPC_CheckType, MVT::v2i64,
/*  8608*/              OPC_MoveParent,
/*  8609*/              OPC_CheckType, MVT::v2i64,
/*  8611*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8613*/              OPC_EmitConvertToTarget, 3,
/*  8615*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv4i32_indexed), 0,
                            MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v2i64] } 302:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] }))) - Complexity = 39
                        // Dst: (SQDMLSLv4i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8625*/            /*Scope*/ 24, /*->8650*/
/*  8626*/              OPC_RecordChild0, // #2 = $Rm
/*  8627*/              OPC_CheckChild1Integer, 2, 
/*  8629*/              OPC_CheckChild1Type, MVT::i64,
/*  8631*/              OPC_CheckType, MVT::v2i32,
/*  8633*/              OPC_MoveParent,
/*  8634*/              OPC_CheckType, MVT::v2i64,
/*  8636*/              OPC_MoveParent,
/*  8637*/              OPC_CheckType, MVT::v2i64,
/*  8639*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8641*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv4i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v2i64] } 302:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 32
                        // Dst: (SQDMLSLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/*  8650*/            0, /*End of Scope*/
/*  8651*/          /*Scope*/ 65, /*->8717*/
/*  8652*/            OPC_RecordChild1, // #1 = $Rn
/*  8653*/            OPC_CheckChild1Type, MVT::v2i32,
/*  8655*/            OPC_Scope, 39, /*->8696*/ // 2 children in Scope
/*  8657*/              OPC_MoveChild2,
/*  8658*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  8661*/              OPC_RecordChild0, // #2 = $Rm
/*  8662*/              OPC_CheckChild0Type, MVT::v4i32,
/*  8664*/              OPC_RecordChild1, // #3 = $idx
/*  8665*/              OPC_MoveChild1,
/*  8666*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8669*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  8671*/              OPC_CheckType, MVT::i64,
/*  8673*/              OPC_MoveParent,
/*  8674*/              OPC_CheckType, MVT::v2i32,
/*  8676*/              OPC_MoveParent,
/*  8677*/              OPC_CheckType, MVT::v2i64,
/*  8679*/              OPC_MoveParent,
/*  8680*/              OPC_CheckType, MVT::v2i64,
/*  8682*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8684*/              OPC_EmitConvertToTarget, 3,
/*  8686*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv2i32_indexed), 0,
                            MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v2i64] } 302:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                        // Dst: (SQDMLSLv2i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8696*/            /*Scope*/ 19, /*->8716*/
/*  8697*/              OPC_RecordChild2, // #2 = $Rm
/*  8698*/              OPC_CheckChild2Type, MVT::v2i32,
/*  8700*/              OPC_CheckType, MVT::v2i64,
/*  8702*/              OPC_MoveParent,
/*  8703*/              OPC_CheckType, MVT::v2i64,
/*  8705*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8707*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMLSLv2i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v2i64] } 302:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 16
                        // Dst: (SQDMLSLv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/*  8716*/            0, /*End of Scope*/
/*  8717*/          0, /*End of Scope*/
/*  8718*/        /*Scope*/ 15, /*->8734*/
/*  8719*/          OPC_RecordChild2, // #1 = $Rm
/*  8720*/          OPC_CheckChild2Type, MVT::v2i64,
/*  8722*/          OPC_CheckType, MVT::v2i64,
/*  8724*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8726*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 302:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                    // Dst: (SQSUBv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/*  8734*/        0, /*End of Scope*/
/*  8735*/      /*Scope*/ 93, /*->8829*/
/*  8736*/        OPC_CheckChild1Type, MVT::v4i16,
/*  8738*/        OPC_Scope, 72, /*->8812*/ // 2 children in Scope
/*  8740*/          OPC_MoveChild2,
/*  8741*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  8744*/          OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  8747*/          OPC_RecordChild1, // #1 = $Rn
/*  8748*/          OPC_CheckChild1Type, MVT::v4i16,
/*  8750*/          OPC_Scope, 39, /*->8791*/ // 2 children in Scope
/*  8752*/            OPC_MoveChild2,
/*  8753*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  8756*/            OPC_RecordChild0, // #2 = $Rm
/*  8757*/            OPC_CheckChild0Type, MVT::v8i16,
/*  8759*/            OPC_RecordChild1, // #3 = $idx
/*  8760*/            OPC_MoveChild1,
/*  8761*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8764*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  8766*/            OPC_CheckType, MVT::i64,
/*  8768*/            OPC_MoveParent,
/*  8769*/            OPC_CheckType, MVT::v4i16,
/*  8771*/            OPC_MoveParent,
/*  8772*/            OPC_CheckType, MVT::v4i16,
/*  8774*/            OPC_MoveParent,
/*  8775*/            OPC_CheckType, MVT::v4i16,
/*  8777*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8779*/            OPC_EmitConvertToTarget, 3,
/*  8781*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv4i16_indexed), 0,
                          MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 302:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 294:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 23
                      // Dst: (SQRDMLSHv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8791*/          /*Scope*/ 19, /*->8811*/
/*  8792*/            OPC_RecordChild2, // #2 = $Rm
/*  8793*/            OPC_CheckChild2Type, MVT::v4i16,
/*  8795*/            OPC_CheckType, MVT::v4i16,
/*  8797*/            OPC_MoveParent,
/*  8798*/            OPC_CheckType, MVT::v4i16,
/*  8800*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8802*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv4i16), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 302:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 294:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 16
                      // Dst: (SQRDMLSHv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/*  8811*/          0, /*End of Scope*/
/*  8812*/        /*Scope*/ 15, /*->8828*/
/*  8813*/          OPC_RecordChild2, // #1 = $Rm
/*  8814*/          OPC_CheckChild2Type, MVT::v4i16,
/*  8816*/          OPC_CheckType, MVT::v4i16,
/*  8818*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8820*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 302:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                    // Dst: (SQSUBv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/*  8828*/        0, /*End of Scope*/
/*  8829*/      /*Scope*/ 93, /*->8923*/
/*  8830*/        OPC_CheckChild1Type, MVT::v8i16,
/*  8832*/        OPC_Scope, 72, /*->8906*/ // 2 children in Scope
/*  8834*/          OPC_MoveChild2,
/*  8835*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  8838*/          OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  8841*/          OPC_RecordChild1, // #1 = $Rn
/*  8842*/          OPC_CheckChild1Type, MVT::v8i16,
/*  8844*/          OPC_Scope, 39, /*->8885*/ // 2 children in Scope
/*  8846*/            OPC_MoveChild2,
/*  8847*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  8850*/            OPC_RecordChild0, // #2 = $Rm
/*  8851*/            OPC_CheckChild0Type, MVT::v8i16,
/*  8853*/            OPC_RecordChild1, // #3 = $idx
/*  8854*/            OPC_MoveChild1,
/*  8855*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8858*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  8860*/            OPC_CheckType, MVT::i64,
/*  8862*/            OPC_MoveParent,
/*  8863*/            OPC_CheckType, MVT::v8i16,
/*  8865*/            OPC_MoveParent,
/*  8866*/            OPC_CheckType, MVT::v8i16,
/*  8868*/            OPC_MoveParent,
/*  8869*/            OPC_CheckType, MVT::v8i16,
/*  8871*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8873*/            OPC_EmitConvertToTarget, 3,
/*  8875*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv8i16_indexed), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 302:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 294:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 23
                      // Dst: (SQRDMLSHv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8885*/          /*Scope*/ 19, /*->8905*/
/*  8886*/            OPC_RecordChild2, // #2 = $Rm
/*  8887*/            OPC_CheckChild2Type, MVT::v8i16,
/*  8889*/            OPC_CheckType, MVT::v8i16,
/*  8891*/            OPC_MoveParent,
/*  8892*/            OPC_CheckType, MVT::v8i16,
/*  8894*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8896*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 302:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 294:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 16
                      // Dst: (SQRDMLSHv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/*  8905*/          0, /*End of Scope*/
/*  8906*/        /*Scope*/ 15, /*->8922*/
/*  8907*/          OPC_RecordChild2, // #1 = $Rm
/*  8908*/          OPC_CheckChild2Type, MVT::v8i16,
/*  8910*/          OPC_CheckType, MVT::v8i16,
/*  8912*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  8914*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 302:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                    // Dst: (SQSUBv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/*  8922*/        0, /*End of Scope*/
/*  8923*/      /*Scope*/ 93, /*->9017*/
/*  8924*/        OPC_CheckChild1Type, MVT::v2i32,
/*  8926*/        OPC_Scope, 72, /*->9000*/ // 2 children in Scope
/*  8928*/          OPC_MoveChild2,
/*  8929*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*  8932*/          OPC_CheckChild0Integer, 38|128,2/*294*/, 
/*  8935*/          OPC_RecordChild1, // #1 = $Rn
/*  8936*/          OPC_CheckChild1Type, MVT::v2i32,
/*  8938*/          OPC_Scope, 39, /*->8979*/ // 2 children in Scope
/*  8940*/            OPC_MoveChild2,
/*  8941*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  8944*/            OPC_RecordChild0, // #2 = $Rm
/*  8945*/            OPC_CheckChild0Type, MVT::v4i32,
/*  8947*/            OPC_RecordChild1, // #3 = $idx
/*  8948*/            OPC_MoveChild1,
/*  8949*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8952*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  8954*/            OPC_CheckType, MVT::i64,
/*  8956*/            OPC_MoveParent,
/*  8957*/            OPC_CheckType, MVT::v2i32,
/*  8959*/            OPC_MoveParent,
/*  8960*/            OPC_CheckType, MVT::v2i32,
/*  8962*/            OPC_MoveParent,
/*  8963*/            OPC_CheckType, MVT::v2i32,
/*  8965*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8967*/            OPC_EmitConvertToTarget, 3,
/*  8969*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv2i32_indexed), 0,
                          MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 302:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 294:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 23
                      // Dst: (SQRDMLSHv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  8979*/          /*Scope*/ 19, /*->8999*/
/*  8980*/            OPC_RecordChild2, // #2 = $Rm
/*  8981*/            OPC_CheckChild2Type, MVT::v2i32,
/*  8983*/            OPC_CheckType, MVT::v2i32,
/*  8985*/            OPC_MoveParent,
/*  8986*/            OPC_CheckType, MVT::v2i32,
/*  8988*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasNEON()) && (Subtarget->hasRDM())
/*  8990*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMLSHv2i32), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 302:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 294:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 16
                      // Dst: (SQRDMLSHv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/*  8999*/          0, /*End of Scope*/
/*  9000*/        /*Scope*/ 15, /*->9016*/
/*  9001*/          OPC_RecordChild2, // #1 = $Rm
/*  9002*/          OPC_CheckChild2Type, MVT::v2i32,
/*  9004*/          OPC_CheckType, MVT::v2i32,
/*  9006*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9008*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 302:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                    // Dst: (SQSUBv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/*  9016*/        0, /*End of Scope*/
/*  9017*/      /*Scope*/ 17, /*->9035*/
/*  9018*/        OPC_CheckChild1Type, MVT::v8i8,
/*  9020*/        OPC_RecordChild2, // #1 = $Rm
/*  9021*/        OPC_CheckChild2Type, MVT::v8i8,
/*  9023*/        OPC_CheckType, MVT::v8i8,
/*  9025*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9027*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 302:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SQSUBv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/*  9035*/      /*Scope*/ 17, /*->9053*/
/*  9036*/        OPC_CheckChild1Type, MVT::v16i8,
/*  9038*/        OPC_RecordChild2, // #1 = $Rm
/*  9039*/        OPC_CheckChild2Type, MVT::v16i8,
/*  9041*/        OPC_CheckType, MVT::v16i8,
/*  9043*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9045*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 302:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SQSUBv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/*  9053*/      /*Scope*/ 17, /*->9071*/
/*  9054*/        OPC_CheckChild1Type, MVT::v1i64,
/*  9056*/        OPC_RecordChild2, // #1 = $Rm
/*  9057*/        OPC_CheckChild2Type, MVT::v1i64,
/*  9059*/        OPC_CheckType, MVT::v1i64,
/*  9061*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9063*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSUBv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 302:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (SQSUBv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/*  9071*/      0, /*End of Scope*/
/*  9072*/    /*Scope*/ 76|128,2/*332*/, /*->9406*/
/*  9074*/      OPC_CheckChild0Integer, 102|128,1/*230*/, 
/*  9077*/      OPC_Scope, 63|128,1/*191*/, /*->9271*/ // 2 children in Scope
/*  9080*/        OPC_MoveChild1,
/*  9081*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*  9084*/        OPC_RecordChild0, // #0 = $Rn
/*  9085*/        OPC_RecordChild1, // #1 = $scale
/*  9086*/        OPC_SwitchType /*3 cases */, 59, MVT::f16,// ->9148
/*  9089*/          OPC_MoveParent,
/*  9090*/          OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->9119
/*  9093*/            OPC_Scope, 11, /*->9106*/ // 2 children in Scope
/*  9095*/              OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9098*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWHri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, (fmul:{ *:[f16] } f16:{ *:[f16] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZSSWHri:{ *:[i32] } ?:{ *:[f16] }:$Rn, ?:{ *:[f16] }:$scale)
/*  9106*/            /*Scope*/ 11, /*->9118*/
/*  9107*/              OPC_CheckComplexPat, /*CP*/22, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9110*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWHri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, (fmul:{ *:[f16] } fixedpoint_f16_i32:{ *:[f16] }:$scale, f16:{ *:[f16] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZSSWHri:{ *:[i32] } ?:{ *:[f16] }:$Rn, ?:{ *:[f16] }:$scale)
/*  9118*/            0, /*End of Scope*/
/*  9119*/          /*SwitchType*/ 26, MVT::i64,// ->9147
/*  9121*/            OPC_Scope, 11, /*->9134*/ // 2 children in Scope
/*  9123*/              OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9126*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXHri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, (fmul:{ *:[f16] } f16:{ *:[f16] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZSSXHri:{ *:[i64] } ?:{ *:[f16] }:$Rn, ?:{ *:[f16] }:$scale)
/*  9134*/            /*Scope*/ 11, /*->9146*/
/*  9135*/              OPC_CheckComplexPat, /*CP*/23, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9138*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXHri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, (fmul:{ *:[f16] } fixedpoint_f16_i64:{ *:[f16] }:$scale, f16:{ *:[f16] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZSSXHri:{ *:[i64] } ?:{ *:[f16] }:$Rn, ?:{ *:[f16] }:$scale)
/*  9146*/            0, /*End of Scope*/
/*  9147*/          0, // EndSwitchType
/*  9148*/        /*SwitchType*/ 59, MVT::f32,// ->9209
/*  9150*/          OPC_MoveParent,
/*  9151*/          OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->9180
/*  9154*/            OPC_Scope, 11, /*->9167*/ // 2 children in Scope
/*  9156*/              OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9159*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWSri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, (fmul:{ *:[f32] } f32:{ *:[f32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZSSWSri:{ *:[i32] } ?:{ *:[f32] }:$Rn, ?:{ *:[f32] }:$scale)
/*  9167*/            /*Scope*/ 11, /*->9179*/
/*  9168*/              OPC_CheckComplexPat, /*CP*/24, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9171*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWSri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, (fmul:{ *:[f32] } fixedpoint_f32_i32:{ *:[f32] }:$scale, f32:{ *:[f32] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZSSWSri:{ *:[i32] } ?:{ *:[f32] }:$Rn, ?:{ *:[f32] }:$scale)
/*  9179*/            0, /*End of Scope*/
/*  9180*/          /*SwitchType*/ 26, MVT::i64,// ->9208
/*  9182*/            OPC_Scope, 11, /*->9195*/ // 2 children in Scope
/*  9184*/              OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9187*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXSri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, (fmul:{ *:[f32] } f32:{ *:[f32] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZSSXSri:{ *:[i64] } ?:{ *:[f32] }:$Rn, ?:{ *:[f32] }:$scale)
/*  9195*/            /*Scope*/ 11, /*->9207*/
/*  9196*/              OPC_CheckComplexPat, /*CP*/25, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9199*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXSri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, (fmul:{ *:[f32] } fixedpoint_f32_i64:{ *:[f32] }:$scale, f32:{ *:[f32] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZSSXSri:{ *:[i64] } ?:{ *:[f32] }:$Rn, ?:{ *:[f32] }:$scale)
/*  9207*/            0, /*End of Scope*/
/*  9208*/          0, // EndSwitchType
/*  9209*/        /*SwitchType*/ 59, MVT::f64,// ->9270
/*  9211*/          OPC_MoveParent,
/*  9212*/          OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->9241
/*  9215*/            OPC_Scope, 11, /*->9228*/ // 2 children in Scope
/*  9217*/              OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9220*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWDri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, (fmul:{ *:[f64] } f64:{ *:[f64] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZSSWDri:{ *:[i32] } ?:{ *:[f64] }:$Rn, ?:{ *:[f64] }:$scale)
/*  9228*/            /*Scope*/ 11, /*->9240*/
/*  9229*/              OPC_CheckComplexPat, /*CP*/26, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9232*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWDri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, (fmul:{ *:[f64] } fixedpoint_f64_i32:{ *:[f64] }:$scale, f64:{ *:[f64] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZSSWDri:{ *:[i32] } ?:{ *:[f64] }:$Rn, ?:{ *:[f64] }:$scale)
/*  9240*/            0, /*End of Scope*/
/*  9241*/          /*SwitchType*/ 26, MVT::i64,// ->9269
/*  9243*/            OPC_Scope, 11, /*->9256*/ // 2 children in Scope
/*  9245*/              OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9248*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXDri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, (fmul:{ *:[f64] } f64:{ *:[f64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZSSXDri:{ *:[i64] } ?:{ *:[f64] }:$Rn, ?:{ *:[f64] }:$scale)
/*  9256*/            /*Scope*/ 11, /*->9268*/
/*  9257*/              OPC_CheckComplexPat, /*CP*/27, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9260*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXDri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, (fmul:{ *:[f64] } fixedpoint_f64_i64:{ *:[f64] }:$scale, f64:{ *:[f64] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZSSXDri:{ *:[i64] } ?:{ *:[f64] }:$Rn, ?:{ *:[f64] }:$scale)
/*  9268*/            0, /*End of Scope*/
/*  9269*/          0, // EndSwitchType
/*  9270*/        0, // EndSwitchType
/*  9271*/      /*Scope*/ 4|128,1/*132*/, /*->9405*/
/*  9273*/        OPC_RecordChild1, // #0 = $Rn
/*  9274*/        OPC_Scope, 22, /*->9298*/ // 8 children in Scope
/*  9276*/          OPC_CheckChild1Type, MVT::f16,
/*  9278*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->9288
/*  9281*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUWHr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, f16:{ *:[f16] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZSUWHr:{ *:[i32] } ?:{ *:[f16] }:$Rn)
/*  9288*/          /*SwitchType*/ 7, MVT::i64,// ->9297
/*  9290*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUXHr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, f16:{ *:[f16] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZSUXHr:{ *:[i64] } ?:{ *:[f16] }:$Rn)
/*  9297*/          0, // EndSwitchType
/*  9298*/        /*Scope*/ 22, /*->9321*/
/*  9299*/          OPC_CheckChild1Type, MVT::f32,
/*  9301*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->9311
/*  9304*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, f32:{ *:[f32] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZSUWSr:{ *:[i32] } ?:{ *:[f32] }:$Rn)
/*  9311*/          /*SwitchType*/ 7, MVT::i64,// ->9320
/*  9313*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, f32:{ *:[f32] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZSUXSr:{ *:[i64] } ?:{ *:[f32] }:$Rn)
/*  9320*/          0, // EndSwitchType
/*  9321*/        /*Scope*/ 22, /*->9344*/
/*  9322*/          OPC_CheckChild1Type, MVT::f64,
/*  9324*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->9334
/*  9327*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 230:{ *:[iPTR] }, f64:{ *:[f64] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZSUWDr:{ *:[i32] } ?:{ *:[f64] }:$Rn)
/*  9334*/          /*SwitchType*/ 7, MVT::i64,// ->9343
/*  9336*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 230:{ *:[iPTR] }, f64:{ *:[f64] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZSUXDr:{ *:[i64] } ?:{ *:[f64] }:$Rn)
/*  9343*/          0, // EndSwitchType
/*  9344*/        /*Scope*/ 11, /*->9356*/
/*  9345*/          OPC_CheckChild1Type, MVT::v4f16,
/*  9347*/          OPC_CheckType, MVT::v4i16,
/*  9349*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv4f16), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 230:{ *:[iPTR] }, v4f16:{ *:[v4f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZSv4f16:{ *:[v4i16] } ?:{ *:[v4f16] }:$Rn)
/*  9356*/        /*Scope*/ 11, /*->9368*/
/*  9357*/          OPC_CheckChild1Type, MVT::v8f16,
/*  9359*/          OPC_CheckType, MVT::v8i16,
/*  9361*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv8f16), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 230:{ *:[iPTR] }, v8f16:{ *:[v8f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZSv8f16:{ *:[v8i16] } ?:{ *:[v8f16] }:$Rn)
/*  9368*/        /*Scope*/ 11, /*->9380*/
/*  9369*/          OPC_CheckChild1Type, MVT::v2f32,
/*  9371*/          OPC_CheckType, MVT::v2i32,
/*  9373*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv2f32), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 230:{ *:[iPTR] }, v2f32:{ *:[v2f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZSv2f32:{ *:[v2i32] } ?:{ *:[v2f32] }:$Rn)
/*  9380*/        /*Scope*/ 11, /*->9392*/
/*  9381*/          OPC_CheckChild1Type, MVT::v4f32,
/*  9383*/          OPC_CheckType, MVT::v4i32,
/*  9385*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv4f32), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 230:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZSv4f32:{ *:[v4i32] } ?:{ *:[v4f32] }:$Rn)
/*  9392*/        /*Scope*/ 11, /*->9404*/
/*  9393*/          OPC_CheckChild1Type, MVT::v2f64,
/*  9395*/          OPC_CheckType, MVT::v2i64,
/*  9397*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv2f64), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 230:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZSv2f64:{ *:[v2i64] } ?:{ *:[v2f64] }:$Rn)
/*  9404*/        0, /*End of Scope*/
/*  9405*/      0, /*End of Scope*/
/*  9406*/    /*Scope*/ 76|128,2/*332*/, /*->9740*/
/*  9408*/      OPC_CheckChild0Integer, 103|128,1/*231*/, 
/*  9411*/      OPC_Scope, 63|128,1/*191*/, /*->9605*/ // 2 children in Scope
/*  9414*/        OPC_MoveChild1,
/*  9415*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*  9418*/        OPC_RecordChild0, // #0 = $Rn
/*  9419*/        OPC_RecordChild1, // #1 = $scale
/*  9420*/        OPC_SwitchType /*3 cases */, 59, MVT::f16,// ->9482
/*  9423*/          OPC_MoveParent,
/*  9424*/          OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->9453
/*  9427*/            OPC_Scope, 11, /*->9440*/ // 2 children in Scope
/*  9429*/              OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9432*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWHri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, (fmul:{ *:[f16] } f16:{ *:[f16] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZUSWHri:{ *:[i32] } ?:{ *:[f16] }:$Rn, ?:{ *:[f16] }:$scale)
/*  9440*/            /*Scope*/ 11, /*->9452*/
/*  9441*/              OPC_CheckComplexPat, /*CP*/22, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9444*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWHri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, (fmul:{ *:[f16] } fixedpoint_f16_i32:{ *:[f16] }:$scale, f16:{ *:[f16] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZUSWHri:{ *:[i32] } ?:{ *:[f16] }:$Rn, ?:{ *:[f16] }:$scale)
/*  9452*/            0, /*End of Scope*/
/*  9453*/          /*SwitchType*/ 26, MVT::i64,// ->9481
/*  9455*/            OPC_Scope, 11, /*->9468*/ // 2 children in Scope
/*  9457*/              OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9460*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXHri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, (fmul:{ *:[f16] } f16:{ *:[f16] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZUSXHri:{ *:[i64] } ?:{ *:[f16] }:$Rn, ?:{ *:[f16] }:$scale)
/*  9468*/            /*Scope*/ 11, /*->9480*/
/*  9469*/              OPC_CheckComplexPat, /*CP*/23, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9472*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXHri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, (fmul:{ *:[f16] } fixedpoint_f16_i64:{ *:[f16] }:$scale, f16:{ *:[f16] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZUSXHri:{ *:[i64] } ?:{ *:[f16] }:$Rn, ?:{ *:[f16] }:$scale)
/*  9480*/            0, /*End of Scope*/
/*  9481*/          0, // EndSwitchType
/*  9482*/        /*SwitchType*/ 59, MVT::f32,// ->9543
/*  9484*/          OPC_MoveParent,
/*  9485*/          OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->9514
/*  9488*/            OPC_Scope, 11, /*->9501*/ // 2 children in Scope
/*  9490*/              OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9493*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWSri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, (fmul:{ *:[f32] } f32:{ *:[f32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZUSWSri:{ *:[i32] } ?:{ *:[f32] }:$Rn, ?:{ *:[f32] }:$scale)
/*  9501*/            /*Scope*/ 11, /*->9513*/
/*  9502*/              OPC_CheckComplexPat, /*CP*/24, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9505*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWSri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, (fmul:{ *:[f32] } fixedpoint_f32_i32:{ *:[f32] }:$scale, f32:{ *:[f32] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZUSWSri:{ *:[i32] } ?:{ *:[f32] }:$Rn, ?:{ *:[f32] }:$scale)
/*  9513*/            0, /*End of Scope*/
/*  9514*/          /*SwitchType*/ 26, MVT::i64,// ->9542
/*  9516*/            OPC_Scope, 11, /*->9529*/ // 2 children in Scope
/*  9518*/              OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9521*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXSri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, (fmul:{ *:[f32] } f32:{ *:[f32] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZUSXSri:{ *:[i64] } ?:{ *:[f32] }:$Rn, ?:{ *:[f32] }:$scale)
/*  9529*/            /*Scope*/ 11, /*->9541*/
/*  9530*/              OPC_CheckComplexPat, /*CP*/25, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9533*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXSri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, (fmul:{ *:[f32] } fixedpoint_f32_i64:{ *:[f32] }:$scale, f32:{ *:[f32] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZUSXSri:{ *:[i64] } ?:{ *:[f32] }:$Rn, ?:{ *:[f32] }:$scale)
/*  9541*/            0, /*End of Scope*/
/*  9542*/          0, // EndSwitchType
/*  9543*/        /*SwitchType*/ 59, MVT::f64,// ->9604
/*  9545*/          OPC_MoveParent,
/*  9546*/          OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->9575
/*  9549*/            OPC_Scope, 11, /*->9562*/ // 2 children in Scope
/*  9551*/              OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9554*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWDri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, (fmul:{ *:[f64] } f64:{ *:[f64] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZUSWDri:{ *:[i32] } ?:{ *:[f64] }:$Rn, ?:{ *:[f64] }:$scale)
/*  9562*/            /*Scope*/ 11, /*->9574*/
/*  9563*/              OPC_CheckComplexPat, /*CP*/26, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/*  9566*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWDri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, (fmul:{ *:[f64] } fixedpoint_f64_i32:{ *:[f64] }:$scale, f64:{ *:[f64] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZUSWDri:{ *:[i32] } ?:{ *:[f64] }:$Rn, ?:{ *:[f64] }:$scale)
/*  9574*/            0, /*End of Scope*/
/*  9575*/          /*SwitchType*/ 26, MVT::i64,// ->9603
/*  9577*/            OPC_Scope, 11, /*->9590*/ // 2 children in Scope
/*  9579*/              OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9582*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXDri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, (fmul:{ *:[f64] } f64:{ *:[f64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)) - Complexity = 17
                        // Dst: (FCVTZUSXDri:{ *:[i64] } ?:{ *:[f64] }:$Rn, ?:{ *:[f64] }:$scale)
/*  9590*/            /*Scope*/ 11, /*->9602*/
/*  9591*/              OPC_CheckComplexPat, /*CP*/27, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/*  9594*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXDri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, (fmul:{ *:[f64] } fixedpoint_f64_i64:{ *:[f64] }:$scale, f64:{ *:[f64] }:$Rn)) - Complexity = 17
                        // Dst: (FCVTZUSXDri:{ *:[i64] } ?:{ *:[f64] }:$Rn, ?:{ *:[f64] }:$scale)
/*  9602*/            0, /*End of Scope*/
/*  9603*/          0, // EndSwitchType
/*  9604*/        0, // EndSwitchType
/*  9605*/      /*Scope*/ 4|128,1/*132*/, /*->9739*/
/*  9607*/        OPC_RecordChild1, // #0 = $Rn
/*  9608*/        OPC_Scope, 22, /*->9632*/ // 8 children in Scope
/*  9610*/          OPC_CheckChild1Type, MVT::f16,
/*  9612*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->9622
/*  9615*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUWHr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, f16:{ *:[f16] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZUUWHr:{ *:[i32] } ?:{ *:[f16] }:$Rn)
/*  9622*/          /*SwitchType*/ 7, MVT::i64,// ->9631
/*  9624*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUXHr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, f16:{ *:[f16] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZUUXHr:{ *:[i64] } ?:{ *:[f16] }:$Rn)
/*  9631*/          0, // EndSwitchType
/*  9632*/        /*Scope*/ 22, /*->9655*/
/*  9633*/          OPC_CheckChild1Type, MVT::f32,
/*  9635*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->9645
/*  9638*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, f32:{ *:[f32] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZUUWSr:{ *:[i32] } ?:{ *:[f32] }:$Rn)
/*  9645*/          /*SwitchType*/ 7, MVT::i64,// ->9654
/*  9647*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, f32:{ *:[f32] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZUUXSr:{ *:[i64] } ?:{ *:[f32] }:$Rn)
/*  9654*/          0, // EndSwitchType
/*  9655*/        /*Scope*/ 22, /*->9678*/
/*  9656*/          OPC_CheckChild1Type, MVT::f64,
/*  9658*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->9668
/*  9661*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 231:{ *:[iPTR] }, f64:{ *:[f64] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZUUWDr:{ *:[i32] } ?:{ *:[f64] }:$Rn)
/*  9668*/          /*SwitchType*/ 7, MVT::i64,// ->9677
/*  9670*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (intrinsic_wo_chain:{ *:[i64] } 231:{ *:[iPTR] }, f64:{ *:[f64] }:$Rn) - Complexity = 8
                      // Dst: (FCVTZUUXDr:{ *:[i64] } ?:{ *:[f64] }:$Rn)
/*  9677*/          0, // EndSwitchType
/*  9678*/        /*Scope*/ 11, /*->9690*/
/*  9679*/          OPC_CheckChild1Type, MVT::v4f16,
/*  9681*/          OPC_CheckType, MVT::v4i16,
/*  9683*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv4f16), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 231:{ *:[iPTR] }, v4f16:{ *:[v4f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZUv4f16:{ *:[v4i16] } ?:{ *:[v4f16] }:$Rn)
/*  9690*/        /*Scope*/ 11, /*->9702*/
/*  9691*/          OPC_CheckChild1Type, MVT::v8f16,
/*  9693*/          OPC_CheckType, MVT::v8i16,
/*  9695*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv8f16), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 231:{ *:[iPTR] }, v8f16:{ *:[v8f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZUv8f16:{ *:[v8i16] } ?:{ *:[v8f16] }:$Rn)
/*  9702*/        /*Scope*/ 11, /*->9714*/
/*  9703*/          OPC_CheckChild1Type, MVT::v2f32,
/*  9705*/          OPC_CheckType, MVT::v2i32,
/*  9707*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv2f32), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 231:{ *:[iPTR] }, v2f32:{ *:[v2f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZUv2f32:{ *:[v2i32] } ?:{ *:[v2f32] }:$Rn)
/*  9714*/        /*Scope*/ 11, /*->9726*/
/*  9715*/          OPC_CheckChild1Type, MVT::v4f32,
/*  9717*/          OPC_CheckType, MVT::v4i32,
/*  9719*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv4f32), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 231:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZUv4f32:{ *:[v4i32] } ?:{ *:[v4f32] }:$Rn)
/*  9726*/        /*Scope*/ 11, /*->9738*/
/*  9727*/          OPC_CheckChild1Type, MVT::v2f64,
/*  9729*/          OPC_CheckType, MVT::v2i64,
/*  9731*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv2f64), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 231:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTZUv2f64:{ *:[v2i64] } ?:{ *:[v2f64] }:$Rn)
/*  9738*/        0, /*End of Scope*/
/*  9739*/      0, /*End of Scope*/
/*  9740*/    /*Scope*/ 35|128,2/*291*/, /*->10033*/
/*  9742*/      OPC_CheckChild0Integer, 34|128,2/*290*/, 
/*  9745*/      OPC_RecordChild1, // #0 = $Rn
/*  9746*/      OPC_Scope, 56, /*->9804*/ // 5 children in Scope
/*  9748*/        OPC_CheckChild1Type, MVT::i32,
/*  9750*/        OPC_Scope, 35, /*->9787*/ // 2 children in Scope
/*  9752*/          OPC_MoveChild2,
/*  9753*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*  9756*/          OPC_RecordChild0, // #1 = $Rm
/*  9757*/          OPC_CheckChild0Type, MVT::v4i32,
/*  9759*/          OPC_RecordChild1, // #2 = $idx
/*  9760*/          OPC_MoveChild1,
/*  9761*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9764*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  9766*/          OPC_CheckType, MVT::i64,
/*  9768*/          OPC_MoveParent,
/*  9769*/          OPC_CheckType, MVT::i32,
/*  9771*/          OPC_MoveParent,
/*  9772*/          OPC_CheckType, MVT::i32,
/*  9774*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9776*/          OPC_EmitConvertToTarget, 2,
/*  9778*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv1i32_indexed), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 290:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rn, (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (SQDMULHv1i32_indexed:{ *:[i32] } FPR32Op:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  9787*/        /*Scope*/ 15, /*->9803*/
/*  9788*/          OPC_RecordChild2, // #1 = $Rm
/*  9789*/          OPC_CheckChild2Type, MVT::i32,
/*  9791*/          OPC_CheckType, MVT::i32,
/*  9793*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9795*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv1i32), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 290:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                    // Dst: (SQDMULHv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/*  9803*/        0, /*End of Scope*/
/*  9804*/      /*Scope*/ 56, /*->9861*/
/*  9805*/        OPC_CheckChild1Type, MVT::v4i16,
/*  9807*/        OPC_Scope, 35, /*->9844*/ // 2 children in Scope
/*  9809*/          OPC_MoveChild2,
/*  9810*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  9813*/          OPC_RecordChild0, // #1 = $Rm
/*  9814*/          OPC_CheckChild0Type, MVT::v8i16,
/*  9816*/          OPC_RecordChild1, // #2 = $idx
/*  9817*/          OPC_MoveChild1,
/*  9818*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9821*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  9823*/          OPC_CheckType, MVT::i64,
/*  9825*/          OPC_MoveParent,
/*  9826*/          OPC_CheckType, MVT::v4i16,
/*  9828*/          OPC_MoveParent,
/*  9829*/          OPC_CheckType, MVT::v4i16,
/*  9831*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9833*/          OPC_EmitConvertToTarget, 2,
/*  9835*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv4i16_indexed), 0,
                        MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 290:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                    // Dst: (SQDMULHv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  9844*/        /*Scope*/ 15, /*->9860*/
/*  9845*/          OPC_RecordChild2, // #1 = $Rm
/*  9846*/          OPC_CheckChild2Type, MVT::v4i16,
/*  9848*/          OPC_CheckType, MVT::v4i16,
/*  9850*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9852*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 290:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                    // Dst: (SQDMULHv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/*  9860*/        0, /*End of Scope*/
/*  9861*/      /*Scope*/ 56, /*->9918*/
/*  9862*/        OPC_CheckChild1Type, MVT::v8i16,
/*  9864*/        OPC_Scope, 35, /*->9901*/ // 2 children in Scope
/*  9866*/          OPC_MoveChild2,
/*  9867*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/*  9870*/          OPC_RecordChild0, // #1 = $Rm
/*  9871*/          OPC_CheckChild0Type, MVT::v8i16,
/*  9873*/          OPC_RecordChild1, // #2 = $idx
/*  9874*/          OPC_MoveChild1,
/*  9875*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9878*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/*  9880*/          OPC_CheckType, MVT::i64,
/*  9882*/          OPC_MoveParent,
/*  9883*/          OPC_CheckType, MVT::v8i16,
/*  9885*/          OPC_MoveParent,
/*  9886*/          OPC_CheckType, MVT::v8i16,
/*  9888*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9890*/          OPC_EmitConvertToTarget, 2,
/*  9892*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv8i16_indexed), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 290:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                    // Dst: (SQDMULHv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  9901*/        /*Scope*/ 15, /*->9917*/
/*  9902*/          OPC_RecordChild2, // #1 = $Rm
/*  9903*/          OPC_CheckChild2Type, MVT::v8i16,
/*  9905*/          OPC_CheckType, MVT::v8i16,
/*  9907*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9909*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 290:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                    // Dst: (SQDMULHv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/*  9917*/        0, /*End of Scope*/
/*  9918*/      /*Scope*/ 56, /*->9975*/
/*  9919*/        OPC_CheckChild1Type, MVT::v2i32,
/*  9921*/        OPC_Scope, 35, /*->9958*/ // 2 children in Scope
/*  9923*/          OPC_MoveChild2,
/*  9924*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  9927*/          OPC_RecordChild0, // #1 = $Rm
/*  9928*/          OPC_CheckChild0Type, MVT::v4i32,
/*  9930*/          OPC_RecordChild1, // #2 = $idx
/*  9931*/          OPC_MoveChild1,
/*  9932*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9935*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  9937*/          OPC_CheckType, MVT::i64,
/*  9939*/          OPC_MoveParent,
/*  9940*/          OPC_CheckType, MVT::v2i32,
/*  9942*/          OPC_MoveParent,
/*  9943*/          OPC_CheckType, MVT::v2i32,
/*  9945*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9947*/          OPC_EmitConvertToTarget, 2,
/*  9949*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv2i32_indexed), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 290:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (SQDMULHv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/*  9958*/        /*Scope*/ 15, /*->9974*/
/*  9959*/          OPC_RecordChild2, // #1 = $Rm
/*  9960*/          OPC_CheckChild2Type, MVT::v2i32,
/*  9962*/          OPC_CheckType, MVT::v2i32,
/*  9964*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/*  9966*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 290:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                    // Dst: (SQDMULHv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/*  9974*/        0, /*End of Scope*/
/*  9975*/      /*Scope*/ 56, /*->10032*/
/*  9976*/        OPC_CheckChild1Type, MVT::v4i32,
/*  9978*/        OPC_Scope, 35, /*->10015*/ // 2 children in Scope
/*  9980*/          OPC_MoveChild2,
/*  9981*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/*  9984*/          OPC_RecordChild0, // #1 = $Rm
/*  9985*/          OPC_CheckChild0Type, MVT::v4i32,
/*  9987*/          OPC_RecordChild1, // #2 = $idx
/*  9988*/          OPC_MoveChild1,
/*  9989*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9992*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/*  9994*/          OPC_CheckType, MVT::i64,
/*  9996*/          OPC_MoveParent,
/*  9997*/          OPC_CheckType, MVT::v4i32,
/*  9999*/          OPC_MoveParent,
/* 10000*/          OPC_CheckType, MVT::v4i32,
/* 10002*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10004*/          OPC_EmitConvertToTarget, 2,
/* 10006*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv4i32_indexed), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 290:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (SQDMULHv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 10015*/        /*Scope*/ 15, /*->10031*/
/* 10016*/          OPC_RecordChild2, // #1 = $Rm
/* 10017*/          OPC_CheckChild2Type, MVT::v4i32,
/* 10019*/          OPC_CheckType, MVT::v4i32,
/* 10021*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10023*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULHv4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 290:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                    // Dst: (SQDMULHv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 10031*/        0, /*End of Scope*/
/* 10032*/      0, /*End of Scope*/
/* 10033*/    /*Scope*/ 35|128,2/*291*/, /*->10326*/
/* 10035*/      OPC_CheckChild0Integer, 38|128,2/*294*/, 
/* 10038*/      OPC_RecordChild1, // #0 = $Rn
/* 10039*/      OPC_Scope, 56, /*->10097*/ // 5 children in Scope
/* 10041*/        OPC_CheckChild1Type, MVT::i32,
/* 10043*/        OPC_Scope, 35, /*->10080*/ // 2 children in Scope
/* 10045*/          OPC_MoveChild2,
/* 10046*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 10049*/          OPC_RecordChild0, // #1 = $Rm
/* 10050*/          OPC_CheckChild0Type, MVT::v4i32,
/* 10052*/          OPC_RecordChild1, // #2 = $idx
/* 10053*/          OPC_MoveChild1,
/* 10054*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10057*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 10059*/          OPC_CheckType, MVT::i64,
/* 10061*/          OPC_MoveParent,
/* 10062*/          OPC_CheckType, MVT::i32,
/* 10064*/          OPC_MoveParent,
/* 10065*/          OPC_CheckType, MVT::i32,
/* 10067*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10069*/          OPC_EmitConvertToTarget, 2,
/* 10071*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv1i32_indexed), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 294:{ *:[iPTR] }, FPR32Op:{ *:[i32] }:$Rn, (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (SQRDMULHv1i32_indexed:{ *:[i32] } FPR32Op:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 10080*/        /*Scope*/ 15, /*->10096*/
/* 10081*/          OPC_RecordChild2, // #1 = $Rm
/* 10082*/          OPC_CheckChild2Type, MVT::i32,
/* 10084*/          OPC_CheckType, MVT::i32,
/* 10086*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10088*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv1i32), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 294:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                    // Dst: (SQRDMULHv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/* 10096*/        0, /*End of Scope*/
/* 10097*/      /*Scope*/ 56, /*->10154*/
/* 10098*/        OPC_CheckChild1Type, MVT::v4i16,
/* 10100*/        OPC_Scope, 35, /*->10137*/ // 2 children in Scope
/* 10102*/          OPC_MoveChild2,
/* 10103*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 10106*/          OPC_RecordChild0, // #1 = $Rm
/* 10107*/          OPC_CheckChild0Type, MVT::v8i16,
/* 10109*/          OPC_RecordChild1, // #2 = $idx
/* 10110*/          OPC_MoveChild1,
/* 10111*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10114*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 10116*/          OPC_CheckType, MVT::i64,
/* 10118*/          OPC_MoveParent,
/* 10119*/          OPC_CheckType, MVT::v4i16,
/* 10121*/          OPC_MoveParent,
/* 10122*/          OPC_CheckType, MVT::v4i16,
/* 10124*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10126*/          OPC_EmitConvertToTarget, 2,
/* 10128*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv4i16_indexed), 0,
                        MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 294:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                    // Dst: (SQRDMULHv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 10137*/        /*Scope*/ 15, /*->10153*/
/* 10138*/          OPC_RecordChild2, // #1 = $Rm
/* 10139*/          OPC_CheckChild2Type, MVT::v4i16,
/* 10141*/          OPC_CheckType, MVT::v4i16,
/* 10143*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10145*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 294:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                    // Dst: (SQRDMULHv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 10153*/        0, /*End of Scope*/
/* 10154*/      /*Scope*/ 56, /*->10211*/
/* 10155*/        OPC_CheckChild1Type, MVT::v8i16,
/* 10157*/        OPC_Scope, 35, /*->10194*/ // 2 children in Scope
/* 10159*/          OPC_MoveChild2,
/* 10160*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 10163*/          OPC_RecordChild0, // #1 = $Rm
/* 10164*/          OPC_CheckChild0Type, MVT::v8i16,
/* 10166*/          OPC_RecordChild1, // #2 = $idx
/* 10167*/          OPC_MoveChild1,
/* 10168*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10171*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 10173*/          OPC_CheckType, MVT::i64,
/* 10175*/          OPC_MoveParent,
/* 10176*/          OPC_CheckType, MVT::v8i16,
/* 10178*/          OPC_MoveParent,
/* 10179*/          OPC_CheckType, MVT::v8i16,
/* 10181*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10183*/          OPC_EmitConvertToTarget, 2,
/* 10185*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv8i16_indexed), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 294:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                    // Dst: (SQRDMULHv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 10194*/        /*Scope*/ 15, /*->10210*/
/* 10195*/          OPC_RecordChild2, // #1 = $Rm
/* 10196*/          OPC_CheckChild2Type, MVT::v8i16,
/* 10198*/          OPC_CheckType, MVT::v8i16,
/* 10200*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10202*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 294:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                    // Dst: (SQRDMULHv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 10210*/        0, /*End of Scope*/
/* 10211*/      /*Scope*/ 56, /*->10268*/
/* 10212*/        OPC_CheckChild1Type, MVT::v2i32,
/* 10214*/        OPC_Scope, 35, /*->10251*/ // 2 children in Scope
/* 10216*/          OPC_MoveChild2,
/* 10217*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 10220*/          OPC_RecordChild0, // #1 = $Rm
/* 10221*/          OPC_CheckChild0Type, MVT::v4i32,
/* 10223*/          OPC_RecordChild1, // #2 = $idx
/* 10224*/          OPC_MoveChild1,
/* 10225*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10228*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 10230*/          OPC_CheckType, MVT::i64,
/* 10232*/          OPC_MoveParent,
/* 10233*/          OPC_CheckType, MVT::v2i32,
/* 10235*/          OPC_MoveParent,
/* 10236*/          OPC_CheckType, MVT::v2i32,
/* 10238*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10240*/          OPC_EmitConvertToTarget, 2,
/* 10242*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv2i32_indexed), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 294:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (SQRDMULHv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 10251*/        /*Scope*/ 15, /*->10267*/
/* 10252*/          OPC_RecordChild2, // #1 = $Rm
/* 10253*/          OPC_CheckChild2Type, MVT::v2i32,
/* 10255*/          OPC_CheckType, MVT::v2i32,
/* 10257*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10259*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 294:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                    // Dst: (SQRDMULHv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 10267*/        0, /*End of Scope*/
/* 10268*/      /*Scope*/ 56, /*->10325*/
/* 10269*/        OPC_CheckChild1Type, MVT::v4i32,
/* 10271*/        OPC_Scope, 35, /*->10308*/ // 2 children in Scope
/* 10273*/          OPC_MoveChild2,
/* 10274*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 10277*/          OPC_RecordChild0, // #1 = $Rm
/* 10278*/          OPC_CheckChild0Type, MVT::v4i32,
/* 10280*/          OPC_RecordChild1, // #2 = $idx
/* 10281*/          OPC_MoveChild1,
/* 10282*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10285*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 10287*/          OPC_CheckType, MVT::i64,
/* 10289*/          OPC_MoveParent,
/* 10290*/          OPC_CheckType, MVT::v4i32,
/* 10292*/          OPC_MoveParent,
/* 10293*/          OPC_CheckType, MVT::v4i32,
/* 10295*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10297*/          OPC_EmitConvertToTarget, 2,
/* 10299*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv4i32_indexed), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 294:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (SQRDMULHv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 10308*/        /*Scope*/ 15, /*->10324*/
/* 10309*/          OPC_RecordChild2, // #1 = $Rm
/* 10310*/          OPC_CheckChild2Type, MVT::v4i32,
/* 10312*/          OPC_CheckType, MVT::v4i32,
/* 10314*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10316*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRDMULHv4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 294:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                    // Dst: (SQRDMULHv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 10324*/        0, /*End of Scope*/
/* 10325*/      0, /*End of Scope*/
/* 10326*/    /*Scope*/ 48, /*->10375*/
/* 10327*/      OPC_CheckChild0Integer, 36|128,2/*292*/, 
/* 10330*/      OPC_RecordChild1, // #0 = $Rn
/* 10331*/      OPC_Scope, 29, /*->10362*/ // 2 children in Scope
/* 10333*/        OPC_MoveChild2,
/* 10334*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 10337*/        OPC_RecordChild0, // #1 = $Vm
/* 10338*/        OPC_CheckChild0Type, MVT::v4i32,
/* 10340*/        OPC_RecordChild1, // #2 = $idx
/* 10341*/        OPC_MoveChild1,
/* 10342*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10345*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 10347*/        OPC_CheckType, MVT::i64,
/* 10349*/        OPC_MoveParent,
/* 10350*/        OPC_MoveParent,
/* 10351*/        OPC_EmitConvertToTarget, 2,
/* 10353*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv1i64_indexed), 0,
                      MVT::i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 292:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Vm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                  // Dst: (SQDMULLv1i64_indexed:{ *:[i64] } FPR32:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Vm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 10362*/      /*Scope*/ 11, /*->10374*/
/* 10363*/        OPC_RecordChild2, // #1 = $Rm
/* 10364*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10366*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLi32), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 292:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SQDMULLi32:{ *:[i64] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/* 10374*/      0, /*End of Scope*/
/* 10375*/    /*Scope*/ 12|128,2/*268*/, /*->10645*/
/* 10377*/      OPC_CheckChild0Integer, 101|128,2/*357*/, 
/* 10380*/      OPC_RecordChild1, // #0 = $Rn
/* 10381*/      OPC_Scope, 22, /*->10405*/ // 9 children in Scope
/* 10383*/        OPC_CheckChild1Type, MVT::f32,
/* 10385*/        OPC_RecordChild2, // #1 = $imm
/* 10386*/        OPC_MoveChild2,
/* 10387*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10390*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 10392*/        OPC_MoveParent,
/* 10393*/        OPC_CheckType, MVT::i32,
/* 10395*/        OPC_EmitConvertToTarget, 1,
/* 10397*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSs), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 357:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (FCVTZSs:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)
/* 10405*/      /*Scope*/ 22, /*->10428*/
/* 10406*/        OPC_CheckChild1Type, MVT::f64,
/* 10408*/        OPC_RecordChild2, // #1 = $imm
/* 10409*/        OPC_MoveChild2,
/* 10410*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10413*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 10415*/        OPC_MoveParent,
/* 10416*/        OPC_CheckType, MVT::i64,
/* 10418*/        OPC_EmitConvertToTarget, 1,
/* 10420*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 357:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                  // Dst: (FCVTZSd:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 10428*/      /*Scope*/ 77, /*->10506*/
/* 10429*/        OPC_CheckChild1Type, MVT::f16,
/* 10431*/        OPC_RecordChild2, // #1 = $imm
/* 10432*/        OPC_MoveChild2,
/* 10433*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10436*/        OPC_Scope, 33, /*->10471*/ // 2 children in Scope
/* 10438*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 10440*/          OPC_MoveParent,
/* 10441*/          OPC_CheckType, MVT::i32,
/* 10443*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 10449*/          OPC_EmitConvertToTarget, 1,
/* 10451*/          OPC_EmitNode1, TARGET_VAL(AArch64::FCVTZSh), 0,
                        MVT::f16, 2/*#Ops*/, 0, 3,  // Results = #4
/* 10459*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 10462*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 357:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                    // Dst: (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), (FCVTZSh:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), hsub:{ *:[i32] })
/* 10471*/        /*Scope*/ 33, /*->10505*/
/* 10472*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 10474*/          OPC_MoveParent,
/* 10475*/          OPC_CheckType, MVT::i64,
/* 10477*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 10483*/          OPC_EmitConvertToTarget, 1,
/* 10485*/          OPC_EmitNode1, TARGET_VAL(AArch64::FCVTZSh), 0,
                        MVT::f16, 2/*#Ops*/, 0, 3,  // Results = #4
/* 10493*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 10496*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 357:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                    // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (FCVTZSh:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), hsub:{ *:[i32] })
/* 10505*/        0, /*End of Scope*/
/* 10506*/      /*Scope*/ 22, /*->10529*/
/* 10507*/        OPC_CheckChild1Type, MVT::v1f64,
/* 10509*/        OPC_RecordChild2, // #1 = $imm
/* 10510*/        OPC_MoveChild2,
/* 10511*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10514*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 10516*/        OPC_MoveParent,
/* 10517*/        OPC_CheckType, MVT::v1i64,
/* 10519*/        OPC_EmitConvertToTarget, 1,
/* 10521*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 357:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                  // Dst: (FCVTZSd:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 10529*/      /*Scope*/ 22, /*->10552*/
/* 10530*/        OPC_CheckChild1Type, MVT::v4f16,
/* 10532*/        OPC_RecordChild2, // #1 = $imm
/* 10533*/        OPC_MoveChild2,
/* 10534*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10537*/        OPC_MoveParent,
/* 10538*/        OPC_CheckType, MVT::v4i16,
/* 10540*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 10542*/        OPC_EmitConvertToTarget, 1,
/* 10544*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 357:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZSv4i16_shift:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10552*/      /*Scope*/ 22, /*->10575*/
/* 10553*/        OPC_CheckChild1Type, MVT::v8f16,
/* 10555*/        OPC_RecordChild2, // #1 = $imm
/* 10556*/        OPC_MoveChild2,
/* 10557*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10560*/        OPC_MoveParent,
/* 10561*/        OPC_CheckType, MVT::v8i16,
/* 10563*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 10565*/        OPC_EmitConvertToTarget, 1,
/* 10567*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 357:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZSv8i16_shift:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10575*/      /*Scope*/ 22, /*->10598*/
/* 10576*/        OPC_CheckChild1Type, MVT::v2f32,
/* 10578*/        OPC_RecordChild2, // #1 = $imm
/* 10579*/        OPC_MoveChild2,
/* 10580*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10583*/        OPC_MoveParent,
/* 10584*/        OPC_CheckType, MVT::v2i32,
/* 10586*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10588*/        OPC_EmitConvertToTarget, 1,
/* 10590*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 357:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZSv2i32_shift:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10598*/      /*Scope*/ 22, /*->10621*/
/* 10599*/        OPC_CheckChild1Type, MVT::v4f32,
/* 10601*/        OPC_RecordChild2, // #1 = $imm
/* 10602*/        OPC_MoveChild2,
/* 10603*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10606*/        OPC_MoveParent,
/* 10607*/        OPC_CheckType, MVT::v4i32,
/* 10609*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10611*/        OPC_EmitConvertToTarget, 1,
/* 10613*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 357:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZSv4i32_shift:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10621*/      /*Scope*/ 22, /*->10644*/
/* 10622*/        OPC_CheckChild1Type, MVT::v2f64,
/* 10624*/        OPC_RecordChild2, // #1 = $imm
/* 10625*/        OPC_MoveChild2,
/* 10626*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10629*/        OPC_MoveParent,
/* 10630*/        OPC_CheckType, MVT::v2i64,
/* 10632*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10634*/        OPC_EmitConvertToTarget, 1,
/* 10636*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv2i64_shift), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 357:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZSv2i64_shift:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10644*/      0, /*End of Scope*/
/* 10645*/    /*Scope*/ 12|128,2/*268*/, /*->10915*/
/* 10647*/      OPC_CheckChild0Integer, 102|128,2/*358*/, 
/* 10650*/      OPC_RecordChild1, // #0 = $Rn
/* 10651*/      OPC_Scope, 22, /*->10675*/ // 9 children in Scope
/* 10653*/        OPC_CheckChild1Type, MVT::f32,
/* 10655*/        OPC_RecordChild2, // #1 = $imm
/* 10656*/        OPC_MoveChild2,
/* 10657*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10660*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 10662*/        OPC_MoveParent,
/* 10663*/        OPC_CheckType, MVT::i32,
/* 10665*/        OPC_EmitConvertToTarget, 1,
/* 10667*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUs), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 358:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (FCVTZUs:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)
/* 10675*/      /*Scope*/ 22, /*->10698*/
/* 10676*/        OPC_CheckChild1Type, MVT::f64,
/* 10678*/        OPC_RecordChild2, // #1 = $imm
/* 10679*/        OPC_MoveChild2,
/* 10680*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10683*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 10685*/        OPC_MoveParent,
/* 10686*/        OPC_CheckType, MVT::i64,
/* 10688*/        OPC_EmitConvertToTarget, 1,
/* 10690*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 358:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                  // Dst: (FCVTZUd:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 10698*/      /*Scope*/ 77, /*->10776*/
/* 10699*/        OPC_CheckChild1Type, MVT::f16,
/* 10701*/        OPC_RecordChild2, // #1 = $imm
/* 10702*/        OPC_MoveChild2,
/* 10703*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10706*/        OPC_Scope, 33, /*->10741*/ // 2 children in Scope
/* 10708*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 10710*/          OPC_MoveParent,
/* 10711*/          OPC_CheckType, MVT::i32,
/* 10713*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 10719*/          OPC_EmitConvertToTarget, 1,
/* 10721*/          OPC_EmitNode1, TARGET_VAL(AArch64::FCVTZUh), 0,
                        MVT::f16, 2/*#Ops*/, 0, 3,  // Results = #4
/* 10729*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 10732*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 358:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                    // Dst: (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), (FCVTZUh:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), hsub:{ *:[i32] })
/* 10741*/        /*Scope*/ 33, /*->10775*/
/* 10742*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 10744*/          OPC_MoveParent,
/* 10745*/          OPC_CheckType, MVT::i64,
/* 10747*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 10753*/          OPC_EmitConvertToTarget, 1,
/* 10755*/          OPC_EmitNode1, TARGET_VAL(AArch64::FCVTZUh), 0,
                        MVT::f16, 2/*#Ops*/, 0, 3,  // Results = #4
/* 10763*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 10766*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 358:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                    // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (FCVTZUh:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), hsub:{ *:[i32] })
/* 10775*/        0, /*End of Scope*/
/* 10776*/      /*Scope*/ 22, /*->10799*/
/* 10777*/        OPC_CheckChild1Type, MVT::v1f64,
/* 10779*/        OPC_RecordChild2, // #1 = $imm
/* 10780*/        OPC_MoveChild2,
/* 10781*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10784*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 10786*/        OPC_MoveParent,
/* 10787*/        OPC_CheckType, MVT::v1i64,
/* 10789*/        OPC_EmitConvertToTarget, 1,
/* 10791*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 358:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                  // Dst: (FCVTZUd:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 10799*/      /*Scope*/ 22, /*->10822*/
/* 10800*/        OPC_CheckChild1Type, MVT::v4f16,
/* 10802*/        OPC_RecordChild2, // #1 = $imm
/* 10803*/        OPC_MoveChild2,
/* 10804*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10807*/        OPC_MoveParent,
/* 10808*/        OPC_CheckType, MVT::v4i16,
/* 10810*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 10812*/        OPC_EmitConvertToTarget, 1,
/* 10814*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 358:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZUv4i16_shift:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10822*/      /*Scope*/ 22, /*->10845*/
/* 10823*/        OPC_CheckChild1Type, MVT::v8f16,
/* 10825*/        OPC_RecordChild2, // #1 = $imm
/* 10826*/        OPC_MoveChild2,
/* 10827*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10830*/        OPC_MoveParent,
/* 10831*/        OPC_CheckType, MVT::v8i16,
/* 10833*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 10835*/        OPC_EmitConvertToTarget, 1,
/* 10837*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 358:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZUv8i16_shift:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10845*/      /*Scope*/ 22, /*->10868*/
/* 10846*/        OPC_CheckChild1Type, MVT::v2f32,
/* 10848*/        OPC_RecordChild2, // #1 = $imm
/* 10849*/        OPC_MoveChild2,
/* 10850*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10853*/        OPC_MoveParent,
/* 10854*/        OPC_CheckType, MVT::v2i32,
/* 10856*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10858*/        OPC_EmitConvertToTarget, 1,
/* 10860*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 358:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZUv2i32_shift:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10868*/      /*Scope*/ 22, /*->10891*/
/* 10869*/        OPC_CheckChild1Type, MVT::v4f32,
/* 10871*/        OPC_RecordChild2, // #1 = $imm
/* 10872*/        OPC_MoveChild2,
/* 10873*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10876*/        OPC_MoveParent,
/* 10877*/        OPC_CheckType, MVT::v4i32,
/* 10879*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10881*/        OPC_EmitConvertToTarget, 1,
/* 10883*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 358:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZUv4i32_shift:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10891*/      /*Scope*/ 22, /*->10914*/
/* 10892*/        OPC_CheckChild1Type, MVT::v2f64,
/* 10894*/        OPC_RecordChild2, // #1 = $imm
/* 10895*/        OPC_MoveChild2,
/* 10896*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10899*/        OPC_MoveParent,
/* 10900*/        OPC_CheckType, MVT::v2i64,
/* 10902*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10904*/        OPC_EmitConvertToTarget, 1,
/* 10906*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv2i64_shift), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 358:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                  // Dst: (FCVTZUv2i64_shift:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10914*/      0, /*End of Scope*/
/* 10915*/    /*Scope*/ 106, /*->11022*/
/* 10916*/      OPC_CheckChild0Integer, 40|128,2/*296*/, 
/* 10919*/      OPC_RecordChild1, // #0 = $Rn
/* 10920*/      OPC_Scope, 24, /*->10946*/ // 4 children in Scope
/* 10922*/        OPC_CheckChild1Type, MVT::i64,
/* 10924*/        OPC_RecordChild2, // #1 = $imm
/* 10925*/        OPC_MoveChild2,
/* 10926*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10929*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 10931*/        OPC_MoveParent,
/* 10932*/        OPC_CheckType, MVT::i32,
/* 10934*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10936*/        OPC_EmitConvertToTarget, 1,
/* 10938*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRNs), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 296:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (SQRSHRNs:{ *:[i32] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10946*/      /*Scope*/ 24, /*->10971*/
/* 10947*/        OPC_CheckChild1Type, MVT::v8i16,
/* 10949*/        OPC_RecordChild2, // #1 = $imm
/* 10950*/        OPC_MoveChild2,
/* 10951*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10954*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 10956*/        OPC_MoveParent,
/* 10957*/        OPC_CheckType, MVT::v8i8,
/* 10959*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10961*/        OPC_EmitConvertToTarget, 1,
/* 10963*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRNv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 296:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQRSHRNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10971*/      /*Scope*/ 24, /*->10996*/
/* 10972*/        OPC_CheckChild1Type, MVT::v4i32,
/* 10974*/        OPC_RecordChild2, // #1 = $imm
/* 10975*/        OPC_MoveChild2,
/* 10976*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10979*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 10981*/        OPC_MoveParent,
/* 10982*/        OPC_CheckType, MVT::v4i16,
/* 10984*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 10986*/        OPC_EmitConvertToTarget, 1,
/* 10988*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRNv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 296:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQRSHRNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 10996*/      /*Scope*/ 24, /*->11021*/
/* 10997*/        OPC_CheckChild1Type, MVT::v2i64,
/* 10999*/        OPC_RecordChild2, // #1 = $imm
/* 11000*/        OPC_MoveChild2,
/* 11001*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11004*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 11006*/        OPC_MoveParent,
/* 11007*/        OPC_CheckType, MVT::v2i32,
/* 11009*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11011*/        OPC_EmitConvertToTarget, 1,
/* 11013*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRNv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 296:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQRSHRNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11021*/      0, /*End of Scope*/
/* 11022*/    /*Scope*/ 106, /*->11129*/
/* 11023*/      OPC_CheckChild0Integer, 41|128,2/*297*/, 
/* 11026*/      OPC_RecordChild1, // #0 = $Rn
/* 11027*/      OPC_Scope, 24, /*->11053*/ // 4 children in Scope
/* 11029*/        OPC_CheckChild1Type, MVT::i64,
/* 11031*/        OPC_RecordChild2, // #1 = $imm
/* 11032*/        OPC_MoveChild2,
/* 11033*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11036*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 11038*/        OPC_MoveParent,
/* 11039*/        OPC_CheckType, MVT::i32,
/* 11041*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11043*/        OPC_EmitConvertToTarget, 1,
/* 11045*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRUNs), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 297:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (SQRSHRUNs:{ *:[i32] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11053*/      /*Scope*/ 24, /*->11078*/
/* 11054*/        OPC_CheckChild1Type, MVT::v8i16,
/* 11056*/        OPC_RecordChild2, // #1 = $imm
/* 11057*/        OPC_MoveChild2,
/* 11058*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11061*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 11063*/        OPC_MoveParent,
/* 11064*/        OPC_CheckType, MVT::v8i8,
/* 11066*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11068*/        OPC_EmitConvertToTarget, 1,
/* 11070*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRUNv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 297:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQRSHRUNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11078*/      /*Scope*/ 24, /*->11103*/
/* 11079*/        OPC_CheckChild1Type, MVT::v4i32,
/* 11081*/        OPC_RecordChild2, // #1 = $imm
/* 11082*/        OPC_MoveChild2,
/* 11083*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11086*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 11088*/        OPC_MoveParent,
/* 11089*/        OPC_CheckType, MVT::v4i16,
/* 11091*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11093*/        OPC_EmitConvertToTarget, 1,
/* 11095*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRUNv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 297:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQRSHRUNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11103*/      /*Scope*/ 24, /*->11128*/
/* 11104*/        OPC_CheckChild1Type, MVT::v2i64,
/* 11106*/        OPC_RecordChild2, // #1 = $imm
/* 11107*/        OPC_MoveChild2,
/* 11108*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11111*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 11113*/        OPC_MoveParent,
/* 11114*/        OPC_CheckType, MVT::v2i32,
/* 11116*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11118*/        OPC_EmitConvertToTarget, 1,
/* 11120*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRUNv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 297:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQRSHRUNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11128*/      0, /*End of Scope*/
/* 11129*/    /*Scope*/ 106, /*->11236*/
/* 11130*/      OPC_CheckChild0Integer, 44|128,2/*300*/, 
/* 11133*/      OPC_RecordChild1, // #0 = $Rn
/* 11134*/      OPC_Scope, 24, /*->11160*/ // 4 children in Scope
/* 11136*/        OPC_CheckChild1Type, MVT::i64,
/* 11138*/        OPC_RecordChild2, // #1 = $imm
/* 11139*/        OPC_MoveChild2,
/* 11140*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11143*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 11145*/        OPC_MoveParent,
/* 11146*/        OPC_CheckType, MVT::i32,
/* 11148*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11150*/        OPC_EmitConvertToTarget, 1,
/* 11152*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRNs), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 300:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (SQSHRNs:{ *:[i32] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11160*/      /*Scope*/ 24, /*->11185*/
/* 11161*/        OPC_CheckChild1Type, MVT::v8i16,
/* 11163*/        OPC_RecordChild2, // #1 = $imm
/* 11164*/        OPC_MoveChild2,
/* 11165*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11168*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 11170*/        OPC_MoveParent,
/* 11171*/        OPC_CheckType, MVT::v8i8,
/* 11173*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11175*/        OPC_EmitConvertToTarget, 1,
/* 11177*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRNv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 300:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQSHRNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11185*/      /*Scope*/ 24, /*->11210*/
/* 11186*/        OPC_CheckChild1Type, MVT::v4i32,
/* 11188*/        OPC_RecordChild2, // #1 = $imm
/* 11189*/        OPC_MoveChild2,
/* 11190*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11193*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 11195*/        OPC_MoveParent,
/* 11196*/        OPC_CheckType, MVT::v4i16,
/* 11198*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11200*/        OPC_EmitConvertToTarget, 1,
/* 11202*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRNv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 300:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQSHRNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11210*/      /*Scope*/ 24, /*->11235*/
/* 11211*/        OPC_CheckChild1Type, MVT::v2i64,
/* 11213*/        OPC_RecordChild2, // #1 = $imm
/* 11214*/        OPC_MoveChild2,
/* 11215*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11218*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 11220*/        OPC_MoveParent,
/* 11221*/        OPC_CheckType, MVT::v2i32,
/* 11223*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11225*/        OPC_EmitConvertToTarget, 1,
/* 11227*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRNv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 300:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQSHRNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11235*/      0, /*End of Scope*/
/* 11236*/    /*Scope*/ 106, /*->11343*/
/* 11237*/      OPC_CheckChild0Integer, 45|128,2/*301*/, 
/* 11240*/      OPC_RecordChild1, // #0 = $Rn
/* 11241*/      OPC_Scope, 24, /*->11267*/ // 4 children in Scope
/* 11243*/        OPC_CheckChild1Type, MVT::i64,
/* 11245*/        OPC_RecordChild2, // #1 = $imm
/* 11246*/        OPC_MoveChild2,
/* 11247*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11250*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 11252*/        OPC_MoveParent,
/* 11253*/        OPC_CheckType, MVT::i32,
/* 11255*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11257*/        OPC_EmitConvertToTarget, 1,
/* 11259*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRUNs), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 301:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (SQSHRUNs:{ *:[i32] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11267*/      /*Scope*/ 24, /*->11292*/
/* 11268*/        OPC_CheckChild1Type, MVT::v8i16,
/* 11270*/        OPC_RecordChild2, // #1 = $imm
/* 11271*/        OPC_MoveChild2,
/* 11272*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11275*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 11277*/        OPC_MoveParent,
/* 11278*/        OPC_CheckType, MVT::v8i8,
/* 11280*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11282*/        OPC_EmitConvertToTarget, 1,
/* 11284*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRUNv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 301:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQSHRUNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11292*/      /*Scope*/ 24, /*->11317*/
/* 11293*/        OPC_CheckChild1Type, MVT::v4i32,
/* 11295*/        OPC_RecordChild2, // #1 = $imm
/* 11296*/        OPC_MoveChild2,
/* 11297*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11300*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 11302*/        OPC_MoveParent,
/* 11303*/        OPC_CheckType, MVT::v4i16,
/* 11305*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11307*/        OPC_EmitConvertToTarget, 1,
/* 11309*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRUNv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 301:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQSHRUNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11317*/      /*Scope*/ 24, /*->11342*/
/* 11318*/        OPC_CheckChild1Type, MVT::v2i64,
/* 11320*/        OPC_RecordChild2, // #1 = $imm
/* 11321*/        OPC_MoveChild2,
/* 11322*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11325*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 11327*/        OPC_MoveParent,
/* 11328*/        OPC_CheckType, MVT::v2i32,
/* 11330*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11332*/        OPC_EmitConvertToTarget, 1,
/* 11334*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRUNv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 301:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm) - Complexity = 12
                  // Dst: (SQSHRUNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11342*/      0, /*End of Scope*/
/* 11343*/    /*Scope*/ 106, /*->11450*/
/* 11344*/      OPC_CheckChild0Integer, 88|128,2/*344*/, 
/* 11347*/      OPC_RecordChild1, // #0 = $Rn
/* 11348*/      OPC_Scope, 24, /*->11374*/ // 4 children in Scope
/* 11350*/        OPC_CheckChild1Type, MVT::i64,
/* 11352*/        OPC_RecordChild2, // #1 = $imm
/* 11353*/        OPC_MoveChild2,
/* 11354*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11357*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 11359*/        OPC_MoveParent,
/* 11360*/        OPC_CheckType, MVT::i32,
/* 11362*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11364*/        OPC_EmitConvertToTarget, 1,
/* 11366*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHRNs), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 344:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (UQRSHRNs:{ *:[i32] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11374*/      /*Scope*/ 24, /*->11399*/
/* 11375*/        OPC_CheckChild1Type, MVT::v8i16,
/* 11377*/        OPC_RecordChild2, // #1 = $imm
/* 11378*/        OPC_MoveChild2,
/* 11379*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11382*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 11384*/        OPC_MoveParent,
/* 11385*/        OPC_CheckType, MVT::v8i8,
/* 11387*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11389*/        OPC_EmitConvertToTarget, 1,
/* 11391*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHRNv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 344:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm) - Complexity = 12
                  // Dst: (UQRSHRNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11399*/      /*Scope*/ 24, /*->11424*/
/* 11400*/        OPC_CheckChild1Type, MVT::v4i32,
/* 11402*/        OPC_RecordChild2, // #1 = $imm
/* 11403*/        OPC_MoveChild2,
/* 11404*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11407*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 11409*/        OPC_MoveParent,
/* 11410*/        OPC_CheckType, MVT::v4i16,
/* 11412*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11414*/        OPC_EmitConvertToTarget, 1,
/* 11416*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHRNv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 344:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm) - Complexity = 12
                  // Dst: (UQRSHRNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11424*/      /*Scope*/ 24, /*->11449*/
/* 11425*/        OPC_CheckChild1Type, MVT::v2i64,
/* 11427*/        OPC_RecordChild2, // #1 = $imm
/* 11428*/        OPC_MoveChild2,
/* 11429*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11432*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 11434*/        OPC_MoveParent,
/* 11435*/        OPC_CheckType, MVT::v2i32,
/* 11437*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11439*/        OPC_EmitConvertToTarget, 1,
/* 11441*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHRNv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 344:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm) - Complexity = 12
                  // Dst: (UQRSHRNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11449*/      0, /*End of Scope*/
/* 11450*/    /*Scope*/ 106, /*->11557*/
/* 11451*/      OPC_CheckChild0Integer, 90|128,2/*346*/, 
/* 11454*/      OPC_RecordChild1, // #0 = $Rn
/* 11455*/      OPC_Scope, 24, /*->11481*/ // 4 children in Scope
/* 11457*/        OPC_CheckChild1Type, MVT::i64,
/* 11459*/        OPC_RecordChild2, // #1 = $imm
/* 11460*/        OPC_MoveChild2,
/* 11461*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11464*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 11466*/        OPC_MoveParent,
/* 11467*/        OPC_CheckType, MVT::i32,
/* 11469*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11471*/        OPC_EmitConvertToTarget, 1,
/* 11473*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHRNs), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 346:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (UQSHRNs:{ *:[i32] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11481*/      /*Scope*/ 24, /*->11506*/
/* 11482*/        OPC_CheckChild1Type, MVT::v8i16,
/* 11484*/        OPC_RecordChild2, // #1 = $imm
/* 11485*/        OPC_MoveChild2,
/* 11486*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11489*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 11491*/        OPC_MoveParent,
/* 11492*/        OPC_CheckType, MVT::v8i8,
/* 11494*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11496*/        OPC_EmitConvertToTarget, 1,
/* 11498*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHRNv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 346:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm) - Complexity = 12
                  // Dst: (UQSHRNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11506*/      /*Scope*/ 24, /*->11531*/
/* 11507*/        OPC_CheckChild1Type, MVT::v4i32,
/* 11509*/        OPC_RecordChild2, // #1 = $imm
/* 11510*/        OPC_MoveChild2,
/* 11511*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11514*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 11516*/        OPC_MoveParent,
/* 11517*/        OPC_CheckType, MVT::v4i16,
/* 11519*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11521*/        OPC_EmitConvertToTarget, 1,
/* 11523*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHRNv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 346:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm) - Complexity = 12
                  // Dst: (UQSHRNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11531*/      /*Scope*/ 24, /*->11556*/
/* 11532*/        OPC_CheckChild1Type, MVT::v2i64,
/* 11534*/        OPC_RecordChild2, // #1 = $imm
/* 11535*/        OPC_MoveChild2,
/* 11536*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11539*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 11541*/        OPC_MoveParent,
/* 11542*/        OPC_CheckType, MVT::v2i32,
/* 11544*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11546*/        OPC_EmitConvertToTarget, 1,
/* 11548*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHRNv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 346:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm) - Complexity = 12
                  // Dst: (UQSHRNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 11556*/      0, /*End of Scope*/
/* 11557*/    /*Scope*/ 15, /*->11573*/
/* 11558*/      OPC_CheckChild0Integer, 78|128,1/*206*/, 
/* 11561*/      OPC_EmitInteger, MVT::i32, 32|128,52|128,3/*55840*/, 
/* 11566*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MRS), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i64] } 206:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MRS:{ *:[i64] } 55840:{ *:[i32] })
/* 11573*/    /*Scope*/ 36, /*->11610*/
/* 11574*/      OPC_CheckChild0Integer, 116|128,2/*372*/, 
/* 11577*/      OPC_RecordChild1, // #0 = $Rn
/* 11578*/      OPC_SwitchType /*2 cases */, 13, MVT::i32,// ->11594
/* 11581*/        OPC_CheckChild1Type, MVT::i32,
/* 11583*/        OPC_RecordChild2, // #1 = $Rm
/* 11584*/        OPC_CheckChild2Type, MVT::i32,
/* 11586*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UDIVWr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 372:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UDIVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 11594*/      /*SwitchType*/ 13, MVT::i64,// ->11609
/* 11596*/        OPC_CheckChild1Type, MVT::i64,
/* 11598*/        OPC_RecordChild2, // #1 = $Rm
/* 11599*/        OPC_CheckChild2Type, MVT::i64,
/* 11601*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UDIVXr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 372:{ *:[iPTR] }, GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (UDIVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 11609*/      0, // EndSwitchType
/* 11610*/    /*Scope*/ 36, /*->11647*/
/* 11611*/      OPC_CheckChild0Integer, 109|128,2/*365*/, 
/* 11614*/      OPC_RecordChild1, // #0 = $Rn
/* 11615*/      OPC_SwitchType /*2 cases */, 13, MVT::i32,// ->11631
/* 11618*/        OPC_CheckChild1Type, MVT::i32,
/* 11620*/        OPC_RecordChild2, // #1 = $Rm
/* 11621*/        OPC_CheckChild2Type, MVT::i32,
/* 11623*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SDIVWr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 365:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SDIVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 11631*/      /*SwitchType*/ 13, MVT::i64,// ->11646
/* 11633*/        OPC_CheckChild1Type, MVT::i64,
/* 11635*/        OPC_RecordChild2, // #1 = $Rm
/* 11636*/        OPC_CheckChild2Type, MVT::i64,
/* 11638*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SDIVXr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 365:{ *:[iPTR] }, GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (SDIVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 11646*/      0, // EndSwitchType
/* 11647*/    /*Scope*/ 15, /*->11663*/
/* 11648*/      OPC_CheckChild0Integer, 54|128,1/*182*/, 
/* 11651*/      OPC_RecordChild1, // #0 = $Rn
/* 11652*/      OPC_RecordChild2, // #1 = $Rm
/* 11653*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasCRC())
/* 11655*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CRC32Brr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 182:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                // Dst: (CRC32Brr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 11663*/    /*Scope*/ 15, /*->11679*/
/* 11664*/      OPC_CheckChild0Integer, 59|128,1/*187*/, 
/* 11667*/      OPC_RecordChild1, // #0 = $Rn
/* 11668*/      OPC_RecordChild2, // #1 = $Rm
/* 11669*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasCRC())
/* 11671*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CRC32Hrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 187:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                // Dst: (CRC32Hrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 11679*/    /*Scope*/ 15, /*->11695*/
/* 11680*/      OPC_CheckChild0Integer, 60|128,1/*188*/, 
/* 11683*/      OPC_RecordChild1, // #0 = $Rn
/* 11684*/      OPC_RecordChild2, // #1 = $Rm
/* 11685*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasCRC())
/* 11687*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CRC32Wrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 188:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                // Dst: (CRC32Wrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 11695*/    /*Scope*/ 15, /*->11711*/
/* 11696*/      OPC_CheckChild0Integer, 61|128,1/*189*/, 
/* 11699*/      OPC_RecordChild1, // #0 = $Rn
/* 11700*/      OPC_RecordChild2, // #1 = $Rm
/* 11701*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasCRC())
/* 11703*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CRC32Xrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 189:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 8
                // Dst: (CRC32Xrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 11711*/    /*Scope*/ 15, /*->11727*/
/* 11712*/      OPC_CheckChild0Integer, 55|128,1/*183*/, 
/* 11715*/      OPC_RecordChild1, // #0 = $Rn
/* 11716*/      OPC_RecordChild2, // #1 = $Rm
/* 11717*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasCRC())
/* 11719*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CRC32CBrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 183:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                // Dst: (CRC32CBrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 11727*/    /*Scope*/ 15, /*->11743*/
/* 11728*/      OPC_CheckChild0Integer, 56|128,1/*184*/, 
/* 11731*/      OPC_RecordChild1, // #0 = $Rn
/* 11732*/      OPC_RecordChild2, // #1 = $Rm
/* 11733*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasCRC())
/* 11735*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CRC32CHrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 184:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                // Dst: (CRC32CHrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 11743*/    /*Scope*/ 15, /*->11759*/
/* 11744*/      OPC_CheckChild0Integer, 57|128,1/*185*/, 
/* 11747*/      OPC_RecordChild1, // #0 = $Rn
/* 11748*/      OPC_RecordChild2, // #1 = $Rm
/* 11749*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasCRC())
/* 11751*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CRC32CWrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 185:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                // Dst: (CRC32CWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 11759*/    /*Scope*/ 15, /*->11775*/
/* 11760*/      OPC_CheckChild0Integer, 58|128,1/*186*/, 
/* 11763*/      OPC_RecordChild1, // #0 = $Rn
/* 11764*/      OPC_RecordChild2, // #1 = $Rm
/* 11765*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasCRC())
/* 11767*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CRC32CXrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 186:{ *:[iPTR] }, GPR32:{ *:[i32] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 8
                // Dst: (CRC32CXrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 11775*/    /*Scope*/ 41|128,1/*169*/, /*->11946*/
/* 11777*/      OPC_CheckChild0Integer, 93|128,1/*221*/, 
/* 11780*/      OPC_RecordChild1, // #0 = $Rn
/* 11781*/      OPC_Scope, 26, /*->11809*/ // 9 children in Scope
/* 11783*/        OPC_CheckChild1Type, MVT::f16,
/* 11785*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->11797
/* 11788*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 11790*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 221:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTASUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 11797*/        /*SwitchType*/ 9, MVT::i64,// ->11808
/* 11799*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 11801*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 221:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTASUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 11808*/        0, // EndSwitchType
/* 11809*/      /*Scope*/ 26, /*->11836*/
/* 11810*/        OPC_CheckChild1Type, MVT::f32,
/* 11812*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->11824
/* 11815*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 11817*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 221:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTASUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 11824*/        /*SwitchType*/ 9, MVT::i64,// ->11835
/* 11826*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 11828*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 221:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTASUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 11835*/        0, // EndSwitchType
/* 11836*/      /*Scope*/ 26, /*->11863*/
/* 11837*/        OPC_CheckChild1Type, MVT::f64,
/* 11839*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->11851
/* 11842*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 11844*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 221:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTASUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 11851*/        /*SwitchType*/ 9, MVT::i64,// ->11862
/* 11853*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 11855*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 221:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTASUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 11862*/        0, // EndSwitchType
/* 11863*/      /*Scope*/ 13, /*->11877*/
/* 11864*/        OPC_CheckChild1Type, MVT::v4f16,
/* 11866*/        OPC_CheckType, MVT::v4i16,
/* 11868*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 11870*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 221:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTASv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 11877*/      /*Scope*/ 13, /*->11891*/
/* 11878*/        OPC_CheckChild1Type, MVT::v8f16,
/* 11880*/        OPC_CheckType, MVT::v8i16,
/* 11882*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 11884*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 221:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTASv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 11891*/      /*Scope*/ 13, /*->11905*/
/* 11892*/        OPC_CheckChild1Type, MVT::v2f32,
/* 11894*/        OPC_CheckType, MVT::v2i32,
/* 11896*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11898*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 221:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTASv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 11905*/      /*Scope*/ 13, /*->11919*/
/* 11906*/        OPC_CheckChild1Type, MVT::v4f32,
/* 11908*/        OPC_CheckType, MVT::v4i32,
/* 11910*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11912*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 221:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTASv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 11919*/      /*Scope*/ 13, /*->11933*/
/* 11920*/        OPC_CheckChild1Type, MVT::v2f64,
/* 11922*/        OPC_CheckType, MVT::v2i64,
/* 11924*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 11926*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 221:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTASv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 11933*/      /*Scope*/ 11, /*->11945*/
/* 11934*/        OPC_CheckChild1Type, MVT::v1f64,
/* 11936*/        OPC_CheckType, MVT::v1i64,
/* 11938*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 221:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTASv1i64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 11945*/      0, /*End of Scope*/
/* 11946*/    /*Scope*/ 41|128,1/*169*/, /*->12117*/
/* 11948*/      OPC_CheckChild0Integer, 94|128,1/*222*/, 
/* 11951*/      OPC_RecordChild1, // #0 = $Rn
/* 11952*/      OPC_Scope, 26, /*->11980*/ // 9 children in Scope
/* 11954*/        OPC_CheckChild1Type, MVT::f16,
/* 11956*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->11968
/* 11959*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 11961*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 222:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTAUUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 11968*/        /*SwitchType*/ 9, MVT::i64,// ->11979
/* 11970*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 11972*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 222:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTAUUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 11979*/        0, // EndSwitchType
/* 11980*/      /*Scope*/ 26, /*->12007*/
/* 11981*/        OPC_CheckChild1Type, MVT::f32,
/* 11983*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->11995
/* 11986*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 11988*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 222:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTAUUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 11995*/        /*SwitchType*/ 9, MVT::i64,// ->12006
/* 11997*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 11999*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 222:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTAUUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 12006*/        0, // EndSwitchType
/* 12007*/      /*Scope*/ 26, /*->12034*/
/* 12008*/        OPC_CheckChild1Type, MVT::f64,
/* 12010*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12022
/* 12013*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12015*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 222:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTAUUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 12022*/        /*SwitchType*/ 9, MVT::i64,// ->12033
/* 12024*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12026*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 222:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTAUUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 12033*/        0, // EndSwitchType
/* 12034*/      /*Scope*/ 13, /*->12048*/
/* 12035*/        OPC_CheckChild1Type, MVT::v4f16,
/* 12037*/        OPC_CheckType, MVT::v4i16,
/* 12039*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12041*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 222:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTAUv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 12048*/      /*Scope*/ 13, /*->12062*/
/* 12049*/        OPC_CheckChild1Type, MVT::v8f16,
/* 12051*/        OPC_CheckType, MVT::v8i16,
/* 12053*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12055*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 222:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTAUv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 12062*/      /*Scope*/ 13, /*->12076*/
/* 12063*/        OPC_CheckChild1Type, MVT::v2f32,
/* 12065*/        OPC_CheckType, MVT::v2i32,
/* 12067*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12069*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 222:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTAUv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 12076*/      /*Scope*/ 13, /*->12090*/
/* 12077*/        OPC_CheckChild1Type, MVT::v4f32,
/* 12079*/        OPC_CheckType, MVT::v4i32,
/* 12081*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12083*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 222:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTAUv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 12090*/      /*Scope*/ 13, /*->12104*/
/* 12091*/        OPC_CheckChild1Type, MVT::v2f64,
/* 12093*/        OPC_CheckType, MVT::v2i64,
/* 12095*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12097*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 222:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTAUv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 12104*/      /*Scope*/ 11, /*->12116*/
/* 12105*/        OPC_CheckChild1Type, MVT::v1f64,
/* 12107*/        OPC_CheckType, MVT::v1i64,
/* 12109*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 222:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTAUv1i64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 12116*/      0, /*End of Scope*/
/* 12117*/    /*Scope*/ 41|128,1/*169*/, /*->12288*/
/* 12119*/      OPC_CheckChild0Integer, 95|128,1/*223*/, 
/* 12122*/      OPC_RecordChild1, // #0 = $Rn
/* 12123*/      OPC_Scope, 26, /*->12151*/ // 9 children in Scope
/* 12125*/        OPC_CheckChild1Type, MVT::f16,
/* 12127*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12139
/* 12130*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12132*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 223:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMSUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 12139*/        /*SwitchType*/ 9, MVT::i64,// ->12150
/* 12141*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12143*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 223:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMSUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 12150*/        0, // EndSwitchType
/* 12151*/      /*Scope*/ 26, /*->12178*/
/* 12152*/        OPC_CheckChild1Type, MVT::f32,
/* 12154*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12166
/* 12157*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12159*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 223:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMSUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 12166*/        /*SwitchType*/ 9, MVT::i64,// ->12177
/* 12168*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12170*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 223:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMSUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 12177*/        0, // EndSwitchType
/* 12178*/      /*Scope*/ 26, /*->12205*/
/* 12179*/        OPC_CheckChild1Type, MVT::f64,
/* 12181*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12193
/* 12184*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12186*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 223:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMSUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 12193*/        /*SwitchType*/ 9, MVT::i64,// ->12204
/* 12195*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12197*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 223:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMSUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 12204*/        0, // EndSwitchType
/* 12205*/      /*Scope*/ 13, /*->12219*/
/* 12206*/        OPC_CheckChild1Type, MVT::v4f16,
/* 12208*/        OPC_CheckType, MVT::v4i16,
/* 12210*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12212*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 223:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMSv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 12219*/      /*Scope*/ 13, /*->12233*/
/* 12220*/        OPC_CheckChild1Type, MVT::v8f16,
/* 12222*/        OPC_CheckType, MVT::v8i16,
/* 12224*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12226*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 223:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMSv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 12233*/      /*Scope*/ 13, /*->12247*/
/* 12234*/        OPC_CheckChild1Type, MVT::v2f32,
/* 12236*/        OPC_CheckType, MVT::v2i32,
/* 12238*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12240*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 223:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMSv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 12247*/      /*Scope*/ 13, /*->12261*/
/* 12248*/        OPC_CheckChild1Type, MVT::v4f32,
/* 12250*/        OPC_CheckType, MVT::v4i32,
/* 12252*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12254*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 223:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMSv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 12261*/      /*Scope*/ 13, /*->12275*/
/* 12262*/        OPC_CheckChild1Type, MVT::v2f64,
/* 12264*/        OPC_CheckType, MVT::v2i64,
/* 12266*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12268*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 223:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMSv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 12275*/      /*Scope*/ 11, /*->12287*/
/* 12276*/        OPC_CheckChild1Type, MVT::v1f64,
/* 12278*/        OPC_CheckType, MVT::v1i64,
/* 12280*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 223:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMSv1i64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 12287*/      0, /*End of Scope*/
/* 12288*/    /*Scope*/ 41|128,1/*169*/, /*->12459*/
/* 12290*/      OPC_CheckChild0Integer, 96|128,1/*224*/, 
/* 12293*/      OPC_RecordChild1, // #0 = $Rn
/* 12294*/      OPC_Scope, 26, /*->12322*/ // 9 children in Scope
/* 12296*/        OPC_CheckChild1Type, MVT::f16,
/* 12298*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12310
/* 12301*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12303*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 224:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMUUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 12310*/        /*SwitchType*/ 9, MVT::i64,// ->12321
/* 12312*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12314*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 224:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMUUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 12321*/        0, // EndSwitchType
/* 12322*/      /*Scope*/ 26, /*->12349*/
/* 12323*/        OPC_CheckChild1Type, MVT::f32,
/* 12325*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12337
/* 12328*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12330*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 224:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMUUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 12337*/        /*SwitchType*/ 9, MVT::i64,// ->12348
/* 12339*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12341*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 224:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMUUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 12348*/        0, // EndSwitchType
/* 12349*/      /*Scope*/ 26, /*->12376*/
/* 12350*/        OPC_CheckChild1Type, MVT::f64,
/* 12352*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12364
/* 12355*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12357*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 224:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMUUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 12364*/        /*SwitchType*/ 9, MVT::i64,// ->12375
/* 12366*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12368*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 224:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTMUUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 12375*/        0, // EndSwitchType
/* 12376*/      /*Scope*/ 13, /*->12390*/
/* 12377*/        OPC_CheckChild1Type, MVT::v4f16,
/* 12379*/        OPC_CheckType, MVT::v4i16,
/* 12381*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12383*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 224:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMUv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 12390*/      /*Scope*/ 13, /*->12404*/
/* 12391*/        OPC_CheckChild1Type, MVT::v8f16,
/* 12393*/        OPC_CheckType, MVT::v8i16,
/* 12395*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12397*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 224:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMUv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 12404*/      /*Scope*/ 13, /*->12418*/
/* 12405*/        OPC_CheckChild1Type, MVT::v2f32,
/* 12407*/        OPC_CheckType, MVT::v2i32,
/* 12409*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12411*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 224:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMUv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 12418*/      /*Scope*/ 13, /*->12432*/
/* 12419*/        OPC_CheckChild1Type, MVT::v4f32,
/* 12421*/        OPC_CheckType, MVT::v4i32,
/* 12423*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12425*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 224:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMUv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 12432*/      /*Scope*/ 13, /*->12446*/
/* 12433*/        OPC_CheckChild1Type, MVT::v2f64,
/* 12435*/        OPC_CheckType, MVT::v2i64,
/* 12437*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12439*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 224:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMUv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 12446*/      /*Scope*/ 11, /*->12458*/
/* 12447*/        OPC_CheckChild1Type, MVT::v1f64,
/* 12449*/        OPC_CheckType, MVT::v1i64,
/* 12451*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 224:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTMUv1i64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 12458*/      0, /*End of Scope*/
/* 12459*/    /*Scope*/ 41|128,1/*169*/, /*->12630*/
/* 12461*/      OPC_CheckChild0Integer, 97|128,1/*225*/, 
/* 12464*/      OPC_RecordChild1, // #0 = $Rn
/* 12465*/      OPC_Scope, 26, /*->12493*/ // 9 children in Scope
/* 12467*/        OPC_CheckChild1Type, MVT::f16,
/* 12469*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12481
/* 12472*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12474*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 225:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNSUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 12481*/        /*SwitchType*/ 9, MVT::i64,// ->12492
/* 12483*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12485*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 225:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNSUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 12492*/        0, // EndSwitchType
/* 12493*/      /*Scope*/ 26, /*->12520*/
/* 12494*/        OPC_CheckChild1Type, MVT::f32,
/* 12496*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12508
/* 12499*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12501*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 225:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNSUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 12508*/        /*SwitchType*/ 9, MVT::i64,// ->12519
/* 12510*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12512*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 225:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNSUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 12519*/        0, // EndSwitchType
/* 12520*/      /*Scope*/ 26, /*->12547*/
/* 12521*/        OPC_CheckChild1Type, MVT::f64,
/* 12523*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12535
/* 12526*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12528*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 225:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNSUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 12535*/        /*SwitchType*/ 9, MVT::i64,// ->12546
/* 12537*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12539*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 225:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNSUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 12546*/        0, // EndSwitchType
/* 12547*/      /*Scope*/ 13, /*->12561*/
/* 12548*/        OPC_CheckChild1Type, MVT::v4f16,
/* 12550*/        OPC_CheckType, MVT::v4i16,
/* 12552*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12554*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 225:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNSv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 12561*/      /*Scope*/ 13, /*->12575*/
/* 12562*/        OPC_CheckChild1Type, MVT::v8f16,
/* 12564*/        OPC_CheckType, MVT::v8i16,
/* 12566*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12568*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 225:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNSv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 12575*/      /*Scope*/ 13, /*->12589*/
/* 12576*/        OPC_CheckChild1Type, MVT::v2f32,
/* 12578*/        OPC_CheckType, MVT::v2i32,
/* 12580*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12582*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 225:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNSv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 12589*/      /*Scope*/ 13, /*->12603*/
/* 12590*/        OPC_CheckChild1Type, MVT::v4f32,
/* 12592*/        OPC_CheckType, MVT::v4i32,
/* 12594*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12596*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 225:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNSv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 12603*/      /*Scope*/ 13, /*->12617*/
/* 12604*/        OPC_CheckChild1Type, MVT::v2f64,
/* 12606*/        OPC_CheckType, MVT::v2i64,
/* 12608*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12610*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 225:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNSv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 12617*/      /*Scope*/ 11, /*->12629*/
/* 12618*/        OPC_CheckChild1Type, MVT::v1f64,
/* 12620*/        OPC_CheckType, MVT::v1i64,
/* 12622*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNSv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 225:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNSv1i64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 12629*/      0, /*End of Scope*/
/* 12630*/    /*Scope*/ 41|128,1/*169*/, /*->12801*/
/* 12632*/      OPC_CheckChild0Integer, 98|128,1/*226*/, 
/* 12635*/      OPC_RecordChild1, // #0 = $Rn
/* 12636*/      OPC_Scope, 26, /*->12664*/ // 9 children in Scope
/* 12638*/        OPC_CheckChild1Type, MVT::f16,
/* 12640*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12652
/* 12643*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12645*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 226:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNUUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 12652*/        /*SwitchType*/ 9, MVT::i64,// ->12663
/* 12654*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12656*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 226:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNUUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 12663*/        0, // EndSwitchType
/* 12664*/      /*Scope*/ 26, /*->12691*/
/* 12665*/        OPC_CheckChild1Type, MVT::f32,
/* 12667*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12679
/* 12670*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12672*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 226:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNUUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 12679*/        /*SwitchType*/ 9, MVT::i64,// ->12690
/* 12681*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12683*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 226:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNUUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 12690*/        0, // EndSwitchType
/* 12691*/      /*Scope*/ 26, /*->12718*/
/* 12692*/        OPC_CheckChild1Type, MVT::f64,
/* 12694*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12706
/* 12697*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12699*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 226:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNUUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 12706*/        /*SwitchType*/ 9, MVT::i64,// ->12717
/* 12708*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12710*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 226:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTNUUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 12717*/        0, // EndSwitchType
/* 12718*/      /*Scope*/ 13, /*->12732*/
/* 12719*/        OPC_CheckChild1Type, MVT::v4f16,
/* 12721*/        OPC_CheckType, MVT::v4i16,
/* 12723*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12725*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 226:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNUv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 12732*/      /*Scope*/ 13, /*->12746*/
/* 12733*/        OPC_CheckChild1Type, MVT::v8f16,
/* 12735*/        OPC_CheckType, MVT::v8i16,
/* 12737*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12739*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 226:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNUv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 12746*/      /*Scope*/ 13, /*->12760*/
/* 12747*/        OPC_CheckChild1Type, MVT::v2f32,
/* 12749*/        OPC_CheckType, MVT::v2i32,
/* 12751*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12753*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 226:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNUv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 12760*/      /*Scope*/ 13, /*->12774*/
/* 12761*/        OPC_CheckChild1Type, MVT::v4f32,
/* 12763*/        OPC_CheckType, MVT::v4i32,
/* 12765*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12767*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 226:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNUv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 12774*/      /*Scope*/ 13, /*->12788*/
/* 12775*/        OPC_CheckChild1Type, MVT::v2f64,
/* 12777*/        OPC_CheckType, MVT::v2i64,
/* 12779*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12781*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 226:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNUv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 12788*/      /*Scope*/ 11, /*->12800*/
/* 12789*/        OPC_CheckChild1Type, MVT::v1f64,
/* 12791*/        OPC_CheckType, MVT::v1i64,
/* 12793*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNUv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 226:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTNUv1i64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 12800*/      0, /*End of Scope*/
/* 12801*/    /*Scope*/ 41|128,1/*169*/, /*->12972*/
/* 12803*/      OPC_CheckChild0Integer, 99|128,1/*227*/, 
/* 12806*/      OPC_RecordChild1, // #0 = $Rn
/* 12807*/      OPC_Scope, 26, /*->12835*/ // 9 children in Scope
/* 12809*/        OPC_CheckChild1Type, MVT::f16,
/* 12811*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12823
/* 12814*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12816*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 227:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPSUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 12823*/        /*SwitchType*/ 9, MVT::i64,// ->12834
/* 12825*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12827*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 227:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPSUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 12834*/        0, // EndSwitchType
/* 12835*/      /*Scope*/ 26, /*->12862*/
/* 12836*/        OPC_CheckChild1Type, MVT::f32,
/* 12838*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12850
/* 12841*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12843*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 227:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPSUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 12850*/        /*SwitchType*/ 9, MVT::i64,// ->12861
/* 12852*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12854*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 227:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPSUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 12861*/        0, // EndSwitchType
/* 12862*/      /*Scope*/ 26, /*->12889*/
/* 12863*/        OPC_CheckChild1Type, MVT::f64,
/* 12865*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12877
/* 12868*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12870*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 227:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPSUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 12877*/        /*SwitchType*/ 9, MVT::i64,// ->12888
/* 12879*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 12881*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 227:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPSUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 12888*/        0, // EndSwitchType
/* 12889*/      /*Scope*/ 13, /*->12903*/
/* 12890*/        OPC_CheckChild1Type, MVT::v4f16,
/* 12892*/        OPC_CheckType, MVT::v4i16,
/* 12894*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12896*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 227:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPSv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 12903*/      /*Scope*/ 13, /*->12917*/
/* 12904*/        OPC_CheckChild1Type, MVT::v8f16,
/* 12906*/        OPC_CheckType, MVT::v8i16,
/* 12908*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 12910*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 227:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPSv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 12917*/      /*Scope*/ 13, /*->12931*/
/* 12918*/        OPC_CheckChild1Type, MVT::v2f32,
/* 12920*/        OPC_CheckType, MVT::v2i32,
/* 12922*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12924*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 227:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPSv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 12931*/      /*Scope*/ 13, /*->12945*/
/* 12932*/        OPC_CheckChild1Type, MVT::v4f32,
/* 12934*/        OPC_CheckType, MVT::v4i32,
/* 12936*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12938*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 227:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPSv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 12945*/      /*Scope*/ 13, /*->12959*/
/* 12946*/        OPC_CheckChild1Type, MVT::v2f64,
/* 12948*/        OPC_CheckType, MVT::v2i64,
/* 12950*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 12952*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 227:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPSv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 12959*/      /*Scope*/ 11, /*->12971*/
/* 12960*/        OPC_CheckChild1Type, MVT::v1f64,
/* 12962*/        OPC_CheckType, MVT::v1i64,
/* 12964*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 227:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPSv1i64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 12971*/      0, /*End of Scope*/
/* 12972*/    /*Scope*/ 41|128,1/*169*/, /*->13143*/
/* 12974*/      OPC_CheckChild0Integer, 100|128,1/*228*/, 
/* 12977*/      OPC_RecordChild1, // #0 = $Rn
/* 12978*/      OPC_Scope, 26, /*->13006*/ // 9 children in Scope
/* 12980*/        OPC_CheckChild1Type, MVT::f16,
/* 12982*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->12994
/* 12985*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12987*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 228:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPUUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 12994*/        /*SwitchType*/ 9, MVT::i64,// ->13005
/* 12996*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 12998*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 228:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPUUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 13005*/        0, // EndSwitchType
/* 13006*/      /*Scope*/ 26, /*->13033*/
/* 13007*/        OPC_CheckChild1Type, MVT::f32,
/* 13009*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->13021
/* 13012*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 13014*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 228:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPUUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 13021*/        /*SwitchType*/ 9, MVT::i64,// ->13032
/* 13023*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 13025*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 228:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPUUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 13032*/        0, // EndSwitchType
/* 13033*/      /*Scope*/ 26, /*->13060*/
/* 13034*/        OPC_CheckChild1Type, MVT::f64,
/* 13036*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->13048
/* 13039*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 13041*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 228:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPUUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 13048*/        /*SwitchType*/ 9, MVT::i64,// ->13059
/* 13050*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 13052*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 228:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                    // Dst: (FCVTPUUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 13059*/        0, // EndSwitchType
/* 13060*/      /*Scope*/ 13, /*->13074*/
/* 13061*/        OPC_CheckChild1Type, MVT::v4f16,
/* 13063*/        OPC_CheckType, MVT::v4i16,
/* 13065*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 13067*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 228:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPUv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 13074*/      /*Scope*/ 13, /*->13088*/
/* 13075*/        OPC_CheckChild1Type, MVT::v8f16,
/* 13077*/        OPC_CheckType, MVT::v8i16,
/* 13079*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 13081*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 228:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPUv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 13088*/      /*Scope*/ 13, /*->13102*/
/* 13089*/        OPC_CheckChild1Type, MVT::v2f32,
/* 13091*/        OPC_CheckType, MVT::v2i32,
/* 13093*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13095*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 228:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPUv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 13102*/      /*Scope*/ 13, /*->13116*/
/* 13103*/        OPC_CheckChild1Type, MVT::v4f32,
/* 13105*/        OPC_CheckType, MVT::v4i32,
/* 13107*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13109*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 228:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPUv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 13116*/      /*Scope*/ 13, /*->13130*/
/* 13117*/        OPC_CheckChild1Type, MVT::v2f64,
/* 13119*/        OPC_CheckType, MVT::v2i64,
/* 13121*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13123*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 228:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPUv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 13130*/      /*Scope*/ 11, /*->13142*/
/* 13131*/        OPC_CheckChild1Type, MVT::v1f64,
/* 13133*/        OPC_CheckType, MVT::v1i64,
/* 13135*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 228:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FCVTPUv1i64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 13142*/      0, /*End of Scope*/
/* 13143*/    /*Scope*/ 14|128,1/*142*/, /*->13287*/
/* 13145*/      OPC_CheckChild0Integer, 90|128,1/*218*/, 
/* 13148*/      OPC_RecordChild1, // #0 = $Rn
/* 13149*/      OPC_SwitchType /*8 cases */, 15, MVT::i64,// ->13167
/* 13152*/        OPC_CheckChild1Type, MVT::f64,
/* 13154*/        OPC_RecordChild2, // #1 = $Rm
/* 13155*/        OPC_CheckChild2Type, MVT::f64,
/* 13157*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13159*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGE64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 218:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 8
                  // Dst: (FACGE64:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 13167*/      /*SwitchType*/ 15, MVT::i32,// ->13184
/* 13169*/        OPC_CheckChild1Type, MVT::f32,
/* 13171*/        OPC_RecordChild2, // #1 = $Rm
/* 13172*/        OPC_CheckChild2Type, MVT::f32,
/* 13174*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13176*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGE32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 218:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 8
                  // Dst: (FACGE32:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 13184*/      /*SwitchType*/ 15, MVT::v4i16,// ->13201
/* 13186*/        OPC_CheckChild1Type, MVT::v4f16,
/* 13188*/        OPC_RecordChild2, // #1 = $Rm
/* 13189*/        OPC_CheckChild2Type, MVT::v4f16,
/* 13191*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 13193*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGEv4f16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 218:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FACGEv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 13201*/      /*SwitchType*/ 15, MVT::v8i16,// ->13218
/* 13203*/        OPC_CheckChild1Type, MVT::v8f16,
/* 13205*/        OPC_RecordChild2, // #1 = $Rm
/* 13206*/        OPC_CheckChild2Type, MVT::v8f16,
/* 13208*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 13210*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGEv8f16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 218:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FACGEv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 13218*/      /*SwitchType*/ 15, MVT::v2i32,// ->13235
/* 13220*/        OPC_CheckChild1Type, MVT::v2f32,
/* 13222*/        OPC_RecordChild2, // #1 = $Rm
/* 13223*/        OPC_CheckChild2Type, MVT::v2f32,
/* 13225*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13227*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGEv2f32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 218:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FACGEv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 13235*/      /*SwitchType*/ 15, MVT::v4i32,// ->13252
/* 13237*/        OPC_CheckChild1Type, MVT::v4f32,
/* 13239*/        OPC_RecordChild2, // #1 = $Rm
/* 13240*/        OPC_CheckChild2Type, MVT::v4f32,
/* 13242*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13244*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGEv4f32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 218:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FACGEv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 13252*/      /*SwitchType*/ 15, MVT::v2i64,// ->13269
/* 13254*/        OPC_CheckChild1Type, MVT::v2f64,
/* 13256*/        OPC_RecordChild2, // #1 = $Rm
/* 13257*/        OPC_CheckChild2Type, MVT::v2f64,
/* 13259*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13261*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGEv2f64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 218:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FACGEv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 13269*/      /*SwitchType*/ 15, MVT::v1i64,// ->13286
/* 13271*/        OPC_CheckChild1Type, MVT::v1f64,
/* 13273*/        OPC_RecordChild2, // #1 = $Rm
/* 13274*/        OPC_CheckChild2Type, MVT::v1f64,
/* 13276*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13278*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGE64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 218:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 8
                  // Dst: (FACGE64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 13286*/      0, // EndSwitchType
/* 13287*/    /*Scope*/ 14|128,1/*142*/, /*->13431*/
/* 13289*/      OPC_CheckChild0Integer, 91|128,1/*219*/, 
/* 13292*/      OPC_RecordChild1, // #0 = $Rn
/* 13293*/      OPC_SwitchType /*8 cases */, 15, MVT::i64,// ->13311
/* 13296*/        OPC_CheckChild1Type, MVT::f64,
/* 13298*/        OPC_RecordChild2, // #1 = $Rm
/* 13299*/        OPC_CheckChild2Type, MVT::f64,
/* 13301*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13303*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGT64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 219:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 8
                  // Dst: (FACGT64:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 13311*/      /*SwitchType*/ 15, MVT::i32,// ->13328
/* 13313*/        OPC_CheckChild1Type, MVT::f32,
/* 13315*/        OPC_RecordChild2, // #1 = $Rm
/* 13316*/        OPC_CheckChild2Type, MVT::f32,
/* 13318*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13320*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGT32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 219:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 8
                  // Dst: (FACGT32:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 13328*/      /*SwitchType*/ 15, MVT::v4i16,// ->13345
/* 13330*/        OPC_CheckChild1Type, MVT::v4f16,
/* 13332*/        OPC_RecordChild2, // #1 = $Rm
/* 13333*/        OPC_CheckChild2Type, MVT::v4f16,
/* 13335*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 13337*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGTv4f16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 219:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FACGTv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 13345*/      /*SwitchType*/ 15, MVT::v8i16,// ->13362
/* 13347*/        OPC_CheckChild1Type, MVT::v8f16,
/* 13349*/        OPC_RecordChild2, // #1 = $Rm
/* 13350*/        OPC_CheckChild2Type, MVT::v8f16,
/* 13352*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 13354*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGTv8f16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 219:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FACGTv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 13362*/      /*SwitchType*/ 15, MVT::v2i32,// ->13379
/* 13364*/        OPC_CheckChild1Type, MVT::v2f32,
/* 13366*/        OPC_RecordChild2, // #1 = $Rm
/* 13367*/        OPC_CheckChild2Type, MVT::v2f32,
/* 13369*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13371*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGTv2f32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 219:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FACGTv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 13379*/      /*SwitchType*/ 15, MVT::v4i32,// ->13396
/* 13381*/        OPC_CheckChild1Type, MVT::v4f32,
/* 13383*/        OPC_RecordChild2, // #1 = $Rm
/* 13384*/        OPC_CheckChild2Type, MVT::v4f32,
/* 13386*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13388*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGTv4f32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 219:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FACGTv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 13396*/      /*SwitchType*/ 15, MVT::v2i64,// ->13413
/* 13398*/        OPC_CheckChild1Type, MVT::v2f64,
/* 13400*/        OPC_RecordChild2, // #1 = $Rm
/* 13401*/        OPC_CheckChild2Type, MVT::v2f64,
/* 13403*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13405*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGTv2f64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 219:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FACGTv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 13413*/      /*SwitchType*/ 15, MVT::v1i64,// ->13430
/* 13415*/        OPC_CheckChild1Type, MVT::v1f64,
/* 13417*/        OPC_RecordChild2, // #1 = $Rm
/* 13418*/        OPC_CheckChild2Type, MVT::v1f64,
/* 13420*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13422*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FACGT64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 219:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 8
                  // Dst: (FACGT64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 13430*/      0, // EndSwitchType
/* 13431*/    /*Scope*/ 48|128,1/*176*/, /*->13609*/
/* 13433*/      OPC_CheckChild0Integer, 39|128,2/*295*/, 
/* 13436*/      OPC_RecordChild1, // #0 = $Rn
/* 13437*/      OPC_SwitchType /*10 cases */, 15, MVT::i64,// ->13455
/* 13440*/        OPC_CheckChild1Type, MVT::i64,
/* 13442*/        OPC_RecordChild2, // #1 = $Rm
/* 13443*/        OPC_CheckChild2Type, MVT::i64,
/* 13445*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13447*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 295:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 13455*/      /*SwitchType*/ 15, MVT::i32,// ->13472
/* 13457*/        OPC_CheckChild1Type, MVT::i32,
/* 13459*/        OPC_RecordChild2, // #1 = $Rm
/* 13460*/        OPC_CheckChild2Type, MVT::i32,
/* 13462*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13464*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv1i32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 295:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/* 13472*/      /*SwitchType*/ 15, MVT::v8i8,// ->13489
/* 13474*/        OPC_CheckChild1Type, MVT::v8i8,
/* 13476*/        OPC_RecordChild2, // #1 = $Rm
/* 13477*/        OPC_CheckChild2Type, MVT::v8i8,
/* 13479*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13481*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 295:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 13489*/      /*SwitchType*/ 15, MVT::v16i8,// ->13506
/* 13491*/        OPC_CheckChild1Type, MVT::v16i8,
/* 13493*/        OPC_RecordChild2, // #1 = $Rm
/* 13494*/        OPC_CheckChild2Type, MVT::v16i8,
/* 13496*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13498*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 295:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 13506*/      /*SwitchType*/ 15, MVT::v4i16,// ->13523
/* 13508*/        OPC_CheckChild1Type, MVT::v4i16,
/* 13510*/        OPC_RecordChild2, // #1 = $Rm
/* 13511*/        OPC_CheckChild2Type, MVT::v4i16,
/* 13513*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13515*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 295:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 13523*/      /*SwitchType*/ 15, MVT::v8i16,// ->13540
/* 13525*/        OPC_CheckChild1Type, MVT::v8i16,
/* 13527*/        OPC_RecordChild2, // #1 = $Rm
/* 13528*/        OPC_CheckChild2Type, MVT::v8i16,
/* 13530*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13532*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 295:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 13540*/      /*SwitchType*/ 15, MVT::v2i32,// ->13557
/* 13542*/        OPC_CheckChild1Type, MVT::v2i32,
/* 13544*/        OPC_RecordChild2, // #1 = $Rm
/* 13545*/        OPC_CheckChild2Type, MVT::v2i32,
/* 13547*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13549*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 295:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 13557*/      /*SwitchType*/ 15, MVT::v4i32,// ->13574
/* 13559*/        OPC_CheckChild1Type, MVT::v4i32,
/* 13561*/        OPC_RecordChild2, // #1 = $Rm
/* 13562*/        OPC_CheckChild2Type, MVT::v4i32,
/* 13564*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13566*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 295:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 13574*/      /*SwitchType*/ 15, MVT::v2i64,// ->13591
/* 13576*/        OPC_CheckChild1Type, MVT::v2i64,
/* 13578*/        OPC_RecordChild2, // #1 = $Rm
/* 13579*/        OPC_CheckChild2Type, MVT::v2i64,
/* 13581*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13583*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 295:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 13591*/      /*SwitchType*/ 15, MVT::v1i64,// ->13608
/* 13593*/        OPC_CheckChild1Type, MVT::v1i64,
/* 13595*/        OPC_RecordChild2, // #1 = $Rm
/* 13596*/        OPC_CheckChild2Type, MVT::v1i64,
/* 13598*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13600*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHLv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 295:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (SQRSHLv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 13608*/      0, // EndSwitchType
/* 13609*/    /*Scope*/ 48|128,1/*176*/, /*->13787*/
/* 13611*/      OPC_CheckChild0Integer, 42|128,2/*298*/, 
/* 13614*/      OPC_RecordChild1, // #0 = $Rn
/* 13615*/      OPC_SwitchType /*10 cases */, 15, MVT::i64,// ->13633
/* 13618*/        OPC_CheckChild1Type, MVT::i64,
/* 13620*/        OPC_RecordChild2, // #1 = $Rm
/* 13621*/        OPC_CheckChild2Type, MVT::i64,
/* 13623*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13625*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 298:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 13633*/      /*SwitchType*/ 15, MVT::i32,// ->13650
/* 13635*/        OPC_CheckChild1Type, MVT::i32,
/* 13637*/        OPC_RecordChild2, // #1 = $Rm
/* 13638*/        OPC_CheckChild2Type, MVT::i32,
/* 13640*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13642*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv1i32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 298:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/* 13650*/      /*SwitchType*/ 15, MVT::v8i8,// ->13667
/* 13652*/        OPC_CheckChild1Type, MVT::v8i8,
/* 13654*/        OPC_RecordChild2, // #1 = $Rm
/* 13655*/        OPC_CheckChild2Type, MVT::v8i8,
/* 13657*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13659*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 298:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 13667*/      /*SwitchType*/ 15, MVT::v16i8,// ->13684
/* 13669*/        OPC_CheckChild1Type, MVT::v16i8,
/* 13671*/        OPC_RecordChild2, // #1 = $Rm
/* 13672*/        OPC_CheckChild2Type, MVT::v16i8,
/* 13674*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13676*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 298:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 13684*/      /*SwitchType*/ 15, MVT::v4i16,// ->13701
/* 13686*/        OPC_CheckChild1Type, MVT::v4i16,
/* 13688*/        OPC_RecordChild2, // #1 = $Rm
/* 13689*/        OPC_CheckChild2Type, MVT::v4i16,
/* 13691*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13693*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 298:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 13701*/      /*SwitchType*/ 15, MVT::v8i16,// ->13718
/* 13703*/        OPC_CheckChild1Type, MVT::v8i16,
/* 13705*/        OPC_RecordChild2, // #1 = $Rm
/* 13706*/        OPC_CheckChild2Type, MVT::v8i16,
/* 13708*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13710*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 298:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 13718*/      /*SwitchType*/ 15, MVT::v2i32,// ->13735
/* 13720*/        OPC_CheckChild1Type, MVT::v2i32,
/* 13722*/        OPC_RecordChild2, // #1 = $Rm
/* 13723*/        OPC_CheckChild2Type, MVT::v2i32,
/* 13725*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13727*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 298:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 13735*/      /*SwitchType*/ 15, MVT::v4i32,// ->13752
/* 13737*/        OPC_CheckChild1Type, MVT::v4i32,
/* 13739*/        OPC_RecordChild2, // #1 = $Rm
/* 13740*/        OPC_CheckChild2Type, MVT::v4i32,
/* 13742*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13744*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 298:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 13752*/      /*SwitchType*/ 15, MVT::v2i64,// ->13769
/* 13754*/        OPC_CheckChild1Type, MVT::v2i64,
/* 13756*/        OPC_RecordChild2, // #1 = $Rm
/* 13757*/        OPC_CheckChild2Type, MVT::v2i64,
/* 13759*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13761*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 298:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 13769*/      /*SwitchType*/ 15, MVT::v1i64,// ->13786
/* 13771*/        OPC_CheckChild1Type, MVT::v1i64,
/* 13773*/        OPC_RecordChild2, // #1 = $Rm
/* 13774*/        OPC_CheckChild2Type, MVT::v1i64,
/* 13776*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13778*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 298:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (SQSHLv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 13786*/      0, // EndSwitchType
/* 13787*/    /*Scope*/ 48|128,1/*176*/, /*->13965*/
/* 13789*/      OPC_CheckChild0Integer, 86|128,2/*342*/, 
/* 13792*/      OPC_RecordChild1, // #0 = $Rn
/* 13793*/      OPC_SwitchType /*10 cases */, 15, MVT::i64,// ->13811
/* 13796*/        OPC_CheckChild1Type, MVT::i64,
/* 13798*/        OPC_RecordChild2, // #1 = $Rm
/* 13799*/        OPC_CheckChild2Type, MVT::i64,
/* 13801*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13803*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 342:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 13811*/      /*SwitchType*/ 15, MVT::i32,// ->13828
/* 13813*/        OPC_CheckChild1Type, MVT::i32,
/* 13815*/        OPC_RecordChild2, // #1 = $Rm
/* 13816*/        OPC_CheckChild2Type, MVT::i32,
/* 13818*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13820*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv1i32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 342:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/* 13828*/      /*SwitchType*/ 15, MVT::v8i8,// ->13845
/* 13830*/        OPC_CheckChild1Type, MVT::v8i8,
/* 13832*/        OPC_RecordChild2, // #1 = $Rm
/* 13833*/        OPC_CheckChild2Type, MVT::v8i8,
/* 13835*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13837*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 342:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 13845*/      /*SwitchType*/ 15, MVT::v16i8,// ->13862
/* 13847*/        OPC_CheckChild1Type, MVT::v16i8,
/* 13849*/        OPC_RecordChild2, // #1 = $Rm
/* 13850*/        OPC_CheckChild2Type, MVT::v16i8,
/* 13852*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13854*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 342:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 13862*/      /*SwitchType*/ 15, MVT::v4i16,// ->13879
/* 13864*/        OPC_CheckChild1Type, MVT::v4i16,
/* 13866*/        OPC_RecordChild2, // #1 = $Rm
/* 13867*/        OPC_CheckChild2Type, MVT::v4i16,
/* 13869*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13871*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 342:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 13879*/      /*SwitchType*/ 15, MVT::v8i16,// ->13896
/* 13881*/        OPC_CheckChild1Type, MVT::v8i16,
/* 13883*/        OPC_RecordChild2, // #1 = $Rm
/* 13884*/        OPC_CheckChild2Type, MVT::v8i16,
/* 13886*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13888*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 342:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 13896*/      /*SwitchType*/ 15, MVT::v2i32,// ->13913
/* 13898*/        OPC_CheckChild1Type, MVT::v2i32,
/* 13900*/        OPC_RecordChild2, // #1 = $Rm
/* 13901*/        OPC_CheckChild2Type, MVT::v2i32,
/* 13903*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13905*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 342:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 13913*/      /*SwitchType*/ 15, MVT::v4i32,// ->13930
/* 13915*/        OPC_CheckChild1Type, MVT::v4i32,
/* 13917*/        OPC_RecordChild2, // #1 = $Rm
/* 13918*/        OPC_CheckChild2Type, MVT::v4i32,
/* 13920*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13922*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 342:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 13930*/      /*SwitchType*/ 15, MVT::v2i64,// ->13947
/* 13932*/        OPC_CheckChild1Type, MVT::v2i64,
/* 13934*/        OPC_RecordChild2, // #1 = $Rm
/* 13935*/        OPC_CheckChild2Type, MVT::v2i64,
/* 13937*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13939*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 342:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 13947*/      /*SwitchType*/ 15, MVT::v1i64,// ->13964
/* 13949*/        OPC_CheckChild1Type, MVT::v1i64,
/* 13951*/        OPC_RecordChild2, // #1 = $Rm
/* 13952*/        OPC_CheckChild2Type, MVT::v1i64,
/* 13954*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13956*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQADDv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 342:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (UQADDv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 13964*/      0, // EndSwitchType
/* 13965*/    /*Scope*/ 48|128,1/*176*/, /*->14143*/
/* 13967*/      OPC_CheckChild0Integer, 87|128,2/*343*/, 
/* 13970*/      OPC_RecordChild1, // #0 = $Rn
/* 13971*/      OPC_SwitchType /*10 cases */, 15, MVT::i64,// ->13989
/* 13974*/        OPC_CheckChild1Type, MVT::i64,
/* 13976*/        OPC_RecordChild2, // #1 = $Rm
/* 13977*/        OPC_CheckChild2Type, MVT::i64,
/* 13979*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13981*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 343:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 13989*/      /*SwitchType*/ 15, MVT::i32,// ->14006
/* 13991*/        OPC_CheckChild1Type, MVT::i32,
/* 13993*/        OPC_RecordChild2, // #1 = $Rm
/* 13994*/        OPC_CheckChild2Type, MVT::i32,
/* 13996*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 13998*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv1i32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 343:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/* 14006*/      /*SwitchType*/ 15, MVT::v8i8,// ->14023
/* 14008*/        OPC_CheckChild1Type, MVT::v8i8,
/* 14010*/        OPC_RecordChild2, // #1 = $Rm
/* 14011*/        OPC_CheckChild2Type, MVT::v8i8,
/* 14013*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14015*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 343:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 14023*/      /*SwitchType*/ 15, MVT::v16i8,// ->14040
/* 14025*/        OPC_CheckChild1Type, MVT::v16i8,
/* 14027*/        OPC_RecordChild2, // #1 = $Rm
/* 14028*/        OPC_CheckChild2Type, MVT::v16i8,
/* 14030*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14032*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 343:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 14040*/      /*SwitchType*/ 15, MVT::v4i16,// ->14057
/* 14042*/        OPC_CheckChild1Type, MVT::v4i16,
/* 14044*/        OPC_RecordChild2, // #1 = $Rm
/* 14045*/        OPC_CheckChild2Type, MVT::v4i16,
/* 14047*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14049*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 343:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 14057*/      /*SwitchType*/ 15, MVT::v8i16,// ->14074
/* 14059*/        OPC_CheckChild1Type, MVT::v8i16,
/* 14061*/        OPC_RecordChild2, // #1 = $Rm
/* 14062*/        OPC_CheckChild2Type, MVT::v8i16,
/* 14064*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14066*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 343:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 14074*/      /*SwitchType*/ 15, MVT::v2i32,// ->14091
/* 14076*/        OPC_CheckChild1Type, MVT::v2i32,
/* 14078*/        OPC_RecordChild2, // #1 = $Rm
/* 14079*/        OPC_CheckChild2Type, MVT::v2i32,
/* 14081*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14083*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 343:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 14091*/      /*SwitchType*/ 15, MVT::v4i32,// ->14108
/* 14093*/        OPC_CheckChild1Type, MVT::v4i32,
/* 14095*/        OPC_RecordChild2, // #1 = $Rm
/* 14096*/        OPC_CheckChild2Type, MVT::v4i32,
/* 14098*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14100*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 343:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 14108*/      /*SwitchType*/ 15, MVT::v2i64,// ->14125
/* 14110*/        OPC_CheckChild1Type, MVT::v2i64,
/* 14112*/        OPC_RecordChild2, // #1 = $Rm
/* 14113*/        OPC_CheckChild2Type, MVT::v2i64,
/* 14115*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14117*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 343:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 14125*/      /*SwitchType*/ 15, MVT::v1i64,// ->14142
/* 14127*/        OPC_CheckChild1Type, MVT::v1i64,
/* 14129*/        OPC_RecordChild2, // #1 = $Rm
/* 14130*/        OPC_CheckChild2Type, MVT::v1i64,
/* 14132*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14134*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHLv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 343:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (UQRSHLv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 14142*/      0, // EndSwitchType
/* 14143*/    /*Scope*/ 48|128,1/*176*/, /*->14321*/
/* 14145*/      OPC_CheckChild0Integer, 89|128,2/*345*/, 
/* 14148*/      OPC_RecordChild1, // #0 = $Rn
/* 14149*/      OPC_SwitchType /*10 cases */, 15, MVT::i64,// ->14167
/* 14152*/        OPC_CheckChild1Type, MVT::i64,
/* 14154*/        OPC_RecordChild2, // #1 = $Rm
/* 14155*/        OPC_CheckChild2Type, MVT::i64,
/* 14157*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14159*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 345:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 14167*/      /*SwitchType*/ 15, MVT::i32,// ->14184
/* 14169*/        OPC_CheckChild1Type, MVT::i32,
/* 14171*/        OPC_RecordChild2, // #1 = $Rm
/* 14172*/        OPC_CheckChild2Type, MVT::i32,
/* 14174*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14176*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv1i32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 345:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/* 14184*/      /*SwitchType*/ 15, MVT::v8i8,// ->14201
/* 14186*/        OPC_CheckChild1Type, MVT::v8i8,
/* 14188*/        OPC_RecordChild2, // #1 = $Rm
/* 14189*/        OPC_CheckChild2Type, MVT::v8i8,
/* 14191*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14193*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 345:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 14201*/      /*SwitchType*/ 15, MVT::v16i8,// ->14218
/* 14203*/        OPC_CheckChild1Type, MVT::v16i8,
/* 14205*/        OPC_RecordChild2, // #1 = $Rm
/* 14206*/        OPC_CheckChild2Type, MVT::v16i8,
/* 14208*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14210*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 345:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 14218*/      /*SwitchType*/ 15, MVT::v4i16,// ->14235
/* 14220*/        OPC_CheckChild1Type, MVT::v4i16,
/* 14222*/        OPC_RecordChild2, // #1 = $Rm
/* 14223*/        OPC_CheckChild2Type, MVT::v4i16,
/* 14225*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14227*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 345:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 14235*/      /*SwitchType*/ 15, MVT::v8i16,// ->14252
/* 14237*/        OPC_CheckChild1Type, MVT::v8i16,
/* 14239*/        OPC_RecordChild2, // #1 = $Rm
/* 14240*/        OPC_CheckChild2Type, MVT::v8i16,
/* 14242*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14244*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 345:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 14252*/      /*SwitchType*/ 15, MVT::v2i32,// ->14269
/* 14254*/        OPC_CheckChild1Type, MVT::v2i32,
/* 14256*/        OPC_RecordChild2, // #1 = $Rm
/* 14257*/        OPC_CheckChild2Type, MVT::v2i32,
/* 14259*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14261*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 345:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 14269*/      /*SwitchType*/ 15, MVT::v4i32,// ->14286
/* 14271*/        OPC_CheckChild1Type, MVT::v4i32,
/* 14273*/        OPC_RecordChild2, // #1 = $Rm
/* 14274*/        OPC_CheckChild2Type, MVT::v4i32,
/* 14276*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14278*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 345:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 14286*/      /*SwitchType*/ 15, MVT::v2i64,// ->14303
/* 14288*/        OPC_CheckChild1Type, MVT::v2i64,
/* 14290*/        OPC_RecordChild2, // #1 = $Rm
/* 14291*/        OPC_CheckChild2Type, MVT::v2i64,
/* 14293*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14295*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 345:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 14303*/      /*SwitchType*/ 15, MVT::v1i64,// ->14320
/* 14305*/        OPC_CheckChild1Type, MVT::v1i64,
/* 14307*/        OPC_RecordChild2, // #1 = $Rm
/* 14308*/        OPC_CheckChild2Type, MVT::v1i64,
/* 14310*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14312*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 345:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (UQSHLv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 14320*/      0, // EndSwitchType
/* 14321*/    /*Scope*/ 48|128,1/*176*/, /*->14499*/
/* 14323*/      OPC_CheckChild0Integer, 91|128,2/*347*/, 
/* 14326*/      OPC_RecordChild1, // #0 = $Rn
/* 14327*/      OPC_SwitchType /*10 cases */, 15, MVT::i64,// ->14345
/* 14330*/        OPC_CheckChild1Type, MVT::i64,
/* 14332*/        OPC_RecordChild2, // #1 = $Rm
/* 14333*/        OPC_CheckChild2Type, MVT::i64,
/* 14335*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14337*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 347:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 14345*/      /*SwitchType*/ 15, MVT::i32,// ->14362
/* 14347*/        OPC_CheckChild1Type, MVT::i32,
/* 14349*/        OPC_RecordChild2, // #1 = $Rm
/* 14350*/        OPC_CheckChild2Type, MVT::i32,
/* 14352*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14354*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv1i32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 347:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }:$Rm)
/* 14362*/      /*SwitchType*/ 15, MVT::v8i8,// ->14379
/* 14364*/        OPC_CheckChild1Type, MVT::v8i8,
/* 14366*/        OPC_RecordChild2, // #1 = $Rm
/* 14367*/        OPC_CheckChild2Type, MVT::v8i8,
/* 14369*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14371*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 347:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 14379*/      /*SwitchType*/ 15, MVT::v16i8,// ->14396
/* 14381*/        OPC_CheckChild1Type, MVT::v16i8,
/* 14383*/        OPC_RecordChild2, // #1 = $Rm
/* 14384*/        OPC_CheckChild2Type, MVT::v16i8,
/* 14386*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14388*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 347:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 14396*/      /*SwitchType*/ 15, MVT::v4i16,// ->14413
/* 14398*/        OPC_CheckChild1Type, MVT::v4i16,
/* 14400*/        OPC_RecordChild2, // #1 = $Rm
/* 14401*/        OPC_CheckChild2Type, MVT::v4i16,
/* 14403*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14405*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 347:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 14413*/      /*SwitchType*/ 15, MVT::v8i16,// ->14430
/* 14415*/        OPC_CheckChild1Type, MVT::v8i16,
/* 14417*/        OPC_RecordChild2, // #1 = $Rm
/* 14418*/        OPC_CheckChild2Type, MVT::v8i16,
/* 14420*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14422*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 347:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 14430*/      /*SwitchType*/ 15, MVT::v2i32,// ->14447
/* 14432*/        OPC_CheckChild1Type, MVT::v2i32,
/* 14434*/        OPC_RecordChild2, // #1 = $Rm
/* 14435*/        OPC_CheckChild2Type, MVT::v2i32,
/* 14437*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14439*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 347:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 14447*/      /*SwitchType*/ 15, MVT::v4i32,// ->14464
/* 14449*/        OPC_CheckChild1Type, MVT::v4i32,
/* 14451*/        OPC_RecordChild2, // #1 = $Rm
/* 14452*/        OPC_CheckChild2Type, MVT::v4i32,
/* 14454*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14456*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 347:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 14464*/      /*SwitchType*/ 15, MVT::v2i64,// ->14481
/* 14466*/        OPC_CheckChild1Type, MVT::v2i64,
/* 14468*/        OPC_RecordChild2, // #1 = $Rm
/* 14469*/        OPC_CheckChild2Type, MVT::v2i64,
/* 14471*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14473*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 347:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 14481*/      /*SwitchType*/ 15, MVT::v1i64,// ->14498
/* 14483*/        OPC_CheckChild1Type, MVT::v1i64,
/* 14485*/        OPC_RecordChild2, // #1 = $Rm
/* 14486*/        OPC_CheckChild2Type, MVT::v1i64,
/* 14488*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14490*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSUBv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 347:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (UQSUBv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 14498*/      0, // EndSwitchType
/* 14499*/    /*Scope*/ 8|128,1/*136*/, /*->14637*/
/* 14501*/      OPC_CheckChild0Integer, 32|128,2/*288*/, 
/* 14504*/      OPC_RecordChild1, // #0 = $Rn
/* 14505*/      OPC_SwitchType /*10 cases */, 11, MVT::i64,// ->14519
/* 14508*/        OPC_CheckChild1Type, MVT::i64,
/* 14510*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14512*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv1i64), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 288:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn)
/* 14519*/      /*SwitchType*/ 11, MVT::i32,// ->14532
/* 14521*/        OPC_CheckChild1Type, MVT::i32,
/* 14523*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14525*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv1i32), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 288:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn)
/* 14532*/      /*SwitchType*/ 11, MVT::v8i8,// ->14545
/* 14534*/        OPC_CheckChild1Type, MVT::v8i8,
/* 14536*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14538*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 288:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 14545*/      /*SwitchType*/ 11, MVT::v16i8,// ->14558
/* 14547*/        OPC_CheckChild1Type, MVT::v16i8,
/* 14549*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14551*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 288:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 14558*/      /*SwitchType*/ 11, MVT::v4i16,// ->14571
/* 14560*/        OPC_CheckChild1Type, MVT::v4i16,
/* 14562*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14564*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 288:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 14571*/      /*SwitchType*/ 11, MVT::v8i16,// ->14584
/* 14573*/        OPC_CheckChild1Type, MVT::v8i16,
/* 14575*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14577*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv8i16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 288:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 14584*/      /*SwitchType*/ 11, MVT::v2i32,// ->14597
/* 14586*/        OPC_CheckChild1Type, MVT::v2i32,
/* 14588*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14590*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 288:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 14597*/      /*SwitchType*/ 11, MVT::v4i32,// ->14610
/* 14599*/        OPC_CheckChild1Type, MVT::v4i32,
/* 14601*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14603*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 288:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 14610*/      /*SwitchType*/ 11, MVT::v2i64,// ->14623
/* 14612*/        OPC_CheckChild1Type, MVT::v2i64,
/* 14614*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14616*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv2i64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 288:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 14623*/      /*SwitchType*/ 11, MVT::v1i64,// ->14636
/* 14625*/        OPC_CheckChild1Type, MVT::v1i64,
/* 14627*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14629*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQABSv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 288:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn) - Complexity = 8
                  // Dst: (SQABSv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 14636*/      0, // EndSwitchType
/* 14637*/    /*Scope*/ 8|128,1/*136*/, /*->14775*/
/* 14639*/      OPC_CheckChild0Integer, 37|128,2/*293*/, 
/* 14642*/      OPC_RecordChild1, // #0 = $Rn
/* 14643*/      OPC_SwitchType /*10 cases */, 11, MVT::i64,// ->14657
/* 14646*/        OPC_CheckChild1Type, MVT::i64,
/* 14648*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14650*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv1i64), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 293:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn)
/* 14657*/      /*SwitchType*/ 11, MVT::i32,// ->14670
/* 14659*/        OPC_CheckChild1Type, MVT::i32,
/* 14661*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14663*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv1i32), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 293:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rn)
/* 14670*/      /*SwitchType*/ 11, MVT::v8i8,// ->14683
/* 14672*/        OPC_CheckChild1Type, MVT::v8i8,
/* 14674*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14676*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 293:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 14683*/      /*SwitchType*/ 11, MVT::v16i8,// ->14696
/* 14685*/        OPC_CheckChild1Type, MVT::v16i8,
/* 14687*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14689*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 293:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 14696*/      /*SwitchType*/ 11, MVT::v4i16,// ->14709
/* 14698*/        OPC_CheckChild1Type, MVT::v4i16,
/* 14700*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14702*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 293:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 14709*/      /*SwitchType*/ 11, MVT::v8i16,// ->14722
/* 14711*/        OPC_CheckChild1Type, MVT::v8i16,
/* 14713*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14715*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv8i16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 293:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 14722*/      /*SwitchType*/ 11, MVT::v2i32,// ->14735
/* 14724*/        OPC_CheckChild1Type, MVT::v2i32,
/* 14726*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14728*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 293:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 14735*/      /*SwitchType*/ 11, MVT::v4i32,// ->14748
/* 14737*/        OPC_CheckChild1Type, MVT::v4i32,
/* 14739*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14741*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 293:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 14748*/      /*SwitchType*/ 11, MVT::v2i64,// ->14761
/* 14750*/        OPC_CheckChild1Type, MVT::v2i64,
/* 14752*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14754*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv2i64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 293:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 14761*/      /*SwitchType*/ 11, MVT::v1i64,// ->14774
/* 14763*/        OPC_CheckChild1Type, MVT::v1i64,
/* 14765*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14767*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQNEGv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 293:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn) - Complexity = 8
                  // Dst: (SQNEGv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 14774*/      0, // EndSwitchType
/* 14775*/    /*Scope*/ 17, /*->14793*/
/* 14776*/      OPC_CheckChild0Integer, 18|128,2/*274*/, 
/* 14779*/      OPC_RecordChild1, // #0 = $Rn
/* 14780*/      OPC_CheckChild1Type, MVT::i64,
/* 14782*/      OPC_CheckType, MVT::i32,
/* 14784*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14786*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTNv1i32), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 274:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn) - Complexity = 8
                // Dst: (SQXTNv1i32:{ *:[i32] } FPR64:{ *:[i64] }:$Rn)
/* 14793*/    /*Scope*/ 17, /*->14811*/
/* 14794*/      OPC_CheckChild0Integer, 19|128,2/*275*/, 
/* 14797*/      OPC_RecordChild1, // #0 = $Rn
/* 14798*/      OPC_CheckChild1Type, MVT::i64,
/* 14800*/      OPC_CheckType, MVT::i32,
/* 14802*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14804*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTUNv1i32), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 275:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn) - Complexity = 8
                // Dst: (SQXTUNv1i32:{ *:[i32] } FPR64:{ *:[i64] }:$Rn)
/* 14811*/    /*Scope*/ 48|128,1/*176*/, /*->14989*/
/* 14813*/      OPC_CheckChild0Integer, 63|128,2/*319*/, 
/* 14816*/      OPC_RecordChild1, // #0 = $Rd
/* 14817*/      OPC_SwitchType /*10 cases */, 15, MVT::i64,// ->14835
/* 14820*/        OPC_CheckChild1Type, MVT::i64,
/* 14822*/        OPC_RecordChild2, // #1 = $Rn
/* 14823*/        OPC_CheckChild2Type, MVT::i64,
/* 14825*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14827*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 319:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn)
/* 14835*/      /*SwitchType*/ 15, MVT::i32,// ->14852
/* 14837*/        OPC_CheckChild1Type, MVT::i32,
/* 14839*/        OPC_RecordChild2, // #1 = $Rn
/* 14840*/        OPC_CheckChild2Type, MVT::i32,
/* 14842*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14844*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv1i32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 319:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rd, FPR32:{ *:[i32] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rd, FPR32:{ *:[i32] }:$Rn)
/* 14852*/      /*SwitchType*/ 15, MVT::v8i8,// ->14869
/* 14854*/        OPC_CheckChild1Type, MVT::v8i8,
/* 14856*/        OPC_RecordChild2, // #1 = $Rn
/* 14857*/        OPC_CheckChild2Type, MVT::v8i8,
/* 14859*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14861*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 319:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn)
/* 14869*/      /*SwitchType*/ 15, MVT::v16i8,// ->14886
/* 14871*/        OPC_CheckChild1Type, MVT::v16i8,
/* 14873*/        OPC_RecordChild2, // #1 = $Rn
/* 14874*/        OPC_CheckChild2Type, MVT::v16i8,
/* 14876*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14878*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 319:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn)
/* 14886*/      /*SwitchType*/ 15, MVT::v4i16,// ->14903
/* 14888*/        OPC_CheckChild1Type, MVT::v4i16,
/* 14890*/        OPC_RecordChild2, // #1 = $Rn
/* 14891*/        OPC_CheckChild2Type, MVT::v4i16,
/* 14893*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14895*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 319:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn)
/* 14903*/      /*SwitchType*/ 15, MVT::v8i16,// ->14920
/* 14905*/        OPC_CheckChild1Type, MVT::v8i16,
/* 14907*/        OPC_RecordChild2, // #1 = $Rn
/* 14908*/        OPC_CheckChild2Type, MVT::v8i16,
/* 14910*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14912*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 319:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn)
/* 14920*/      /*SwitchType*/ 15, MVT::v2i32,// ->14937
/* 14922*/        OPC_CheckChild1Type, MVT::v2i32,
/* 14924*/        OPC_RecordChild2, // #1 = $Rn
/* 14925*/        OPC_CheckChild2Type, MVT::v2i32,
/* 14927*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14929*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 319:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn)
/* 14937*/      /*SwitchType*/ 15, MVT::v4i32,// ->14954
/* 14939*/        OPC_CheckChild1Type, MVT::v4i32,
/* 14941*/        OPC_RecordChild2, // #1 = $Rn
/* 14942*/        OPC_CheckChild2Type, MVT::v4i32,
/* 14944*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14946*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 319:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn)
/* 14954*/      /*SwitchType*/ 15, MVT::v2i64,// ->14971
/* 14956*/        OPC_CheckChild1Type, MVT::v2i64,
/* 14958*/        OPC_RecordChild2, // #1 = $Rn
/* 14959*/        OPC_CheckChild2Type, MVT::v2i64,
/* 14961*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14963*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 319:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn)
/* 14971*/      /*SwitchType*/ 15, MVT::v1i64,// ->14988
/* 14973*/        OPC_CheckChild1Type, MVT::v1i64,
/* 14975*/        OPC_RecordChild2, // #1 = $Rn
/* 14976*/        OPC_CheckChild2Type, MVT::v1i64,
/* 14978*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 14980*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUQADDv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 319:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn) - Complexity = 8
                  // Dst: (SUQADDv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn)
/* 14988*/      0, // EndSwitchType
/* 14989*/    /*Scope*/ 17, /*->15007*/
/* 14990*/      OPC_CheckChild0Integer, 20|128,2/*276*/, 
/* 14993*/      OPC_RecordChild1, // #0 = $Rn
/* 14994*/      OPC_CheckChild1Type, MVT::i64,
/* 14996*/      OPC_CheckType, MVT::i32,
/* 14998*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15000*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQXTNv1i32), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 276:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn) - Complexity = 8
                // Dst: (UQXTNv1i32:{ *:[i32] } FPR64:{ *:[i64] }:$Rn)
/* 15007*/    /*Scope*/ 48|128,1/*176*/, /*->15185*/
/* 15009*/      OPC_CheckChild0Integer, 99|128,2/*355*/, 
/* 15012*/      OPC_RecordChild1, // #0 = $Rd
/* 15013*/      OPC_SwitchType /*10 cases */, 15, MVT::i64,// ->15031
/* 15016*/        OPC_CheckChild1Type, MVT::i64,
/* 15018*/        OPC_RecordChild2, // #1 = $Rn
/* 15019*/        OPC_CheckChild2Type, MVT::i64,
/* 15021*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15023*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 355:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn)
/* 15031*/      /*SwitchType*/ 15, MVT::i32,// ->15048
/* 15033*/        OPC_CheckChild1Type, MVT::i32,
/* 15035*/        OPC_RecordChild2, // #1 = $Rn
/* 15036*/        OPC_CheckChild2Type, MVT::i32,
/* 15038*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15040*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv1i32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 355:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rd, FPR32:{ *:[i32] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv1i32:{ *:[i32] } FPR32:{ *:[i32] }:$Rd, FPR32:{ *:[i32] }:$Rn)
/* 15048*/      /*SwitchType*/ 15, MVT::v8i8,// ->15065
/* 15050*/        OPC_CheckChild1Type, MVT::v8i8,
/* 15052*/        OPC_RecordChild2, // #1 = $Rn
/* 15053*/        OPC_CheckChild2Type, MVT::v8i8,
/* 15055*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15057*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 355:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn)
/* 15065*/      /*SwitchType*/ 15, MVT::v16i8,// ->15082
/* 15067*/        OPC_CheckChild1Type, MVT::v16i8,
/* 15069*/        OPC_RecordChild2, // #1 = $Rn
/* 15070*/        OPC_CheckChild2Type, MVT::v16i8,
/* 15072*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15074*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 355:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn)
/* 15082*/      /*SwitchType*/ 15, MVT::v4i16,// ->15099
/* 15084*/        OPC_CheckChild1Type, MVT::v4i16,
/* 15086*/        OPC_RecordChild2, // #1 = $Rn
/* 15087*/        OPC_CheckChild2Type, MVT::v4i16,
/* 15089*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15091*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 355:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn)
/* 15099*/      /*SwitchType*/ 15, MVT::v8i16,// ->15116
/* 15101*/        OPC_CheckChild1Type, MVT::v8i16,
/* 15103*/        OPC_RecordChild2, // #1 = $Rn
/* 15104*/        OPC_CheckChild2Type, MVT::v8i16,
/* 15106*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15108*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 355:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn)
/* 15116*/      /*SwitchType*/ 15, MVT::v2i32,// ->15133
/* 15118*/        OPC_CheckChild1Type, MVT::v2i32,
/* 15120*/        OPC_RecordChild2, // #1 = $Rn
/* 15121*/        OPC_CheckChild2Type, MVT::v2i32,
/* 15123*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15125*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 355:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn)
/* 15133*/      /*SwitchType*/ 15, MVT::v4i32,// ->15150
/* 15135*/        OPC_CheckChild1Type, MVT::v4i32,
/* 15137*/        OPC_RecordChild2, // #1 = $Rn
/* 15138*/        OPC_CheckChild2Type, MVT::v4i32,
/* 15140*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15142*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 355:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn)
/* 15150*/      /*SwitchType*/ 15, MVT::v2i64,// ->15167
/* 15152*/        OPC_CheckChild1Type, MVT::v2i64,
/* 15154*/        OPC_RecordChild2, // #1 = $Rn
/* 15155*/        OPC_CheckChild2Type, MVT::v2i64,
/* 15157*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15159*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 355:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn)
/* 15167*/      /*SwitchType*/ 15, MVT::v1i64,// ->15184
/* 15169*/        OPC_CheckChild1Type, MVT::v1i64,
/* 15171*/        OPC_RecordChild2, // #1 = $Rn
/* 15172*/        OPC_CheckChild2Type, MVT::v1i64,
/* 15174*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15176*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USQADDv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 355:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn) - Complexity = 8
                  // Dst: (USQADDv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn)
/* 15184*/      0, // EndSwitchType
/* 15185*/    /*Scope*/ 13, /*->15199*/
/* 15186*/      OPC_CheckChild0Integer, 67|128,1/*195*/, 
/* 15189*/      OPC_RecordChild1, // #0 = $Rn
/* 15190*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 15192*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA1Hrr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 195:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (SHA1Hrr:{ *:[i32] } FPR32:{ *:[i32] }:$Rn)
/* 15199*/    /*Scope*/ 29|128,1/*157*/, /*->15358*/
/* 15201*/      OPC_CheckChild0Integer, 51|128,2/*307*/, 
/* 15204*/      OPC_RecordChild1, // #0 = $Rn
/* 15205*/      OPC_SwitchType /*9 cases */, 13, MVT::i64,// ->15221
/* 15208*/        OPC_CheckChild1Type, MVT::i64,
/* 15210*/        OPC_RecordChild2, // #1 = $Rm
/* 15211*/        OPC_CheckChild2Type, MVT::i64,
/* 15213*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 307:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 15221*/      /*SwitchType*/ 15, MVT::v8i8,// ->15238
/* 15223*/        OPC_CheckChild1Type, MVT::v8i8,
/* 15225*/        OPC_RecordChild2, // #1 = $Rm
/* 15226*/        OPC_CheckChild2Type, MVT::v8i8,
/* 15228*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15230*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 307:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 15238*/      /*SwitchType*/ 15, MVT::v16i8,// ->15255
/* 15240*/        OPC_CheckChild1Type, MVT::v16i8,
/* 15242*/        OPC_RecordChild2, // #1 = $Rm
/* 15243*/        OPC_CheckChild2Type, MVT::v16i8,
/* 15245*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15247*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 307:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 15255*/      /*SwitchType*/ 15, MVT::v4i16,// ->15272
/* 15257*/        OPC_CheckChild1Type, MVT::v4i16,
/* 15259*/        OPC_RecordChild2, // #1 = $Rm
/* 15260*/        OPC_CheckChild2Type, MVT::v4i16,
/* 15262*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15264*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 307:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 15272*/      /*SwitchType*/ 15, MVT::v8i16,// ->15289
/* 15274*/        OPC_CheckChild1Type, MVT::v8i16,
/* 15276*/        OPC_RecordChild2, // #1 = $Rm
/* 15277*/        OPC_CheckChild2Type, MVT::v8i16,
/* 15279*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15281*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 307:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 15289*/      /*SwitchType*/ 15, MVT::v2i32,// ->15306
/* 15291*/        OPC_CheckChild1Type, MVT::v2i32,
/* 15293*/        OPC_RecordChild2, // #1 = $Rm
/* 15294*/        OPC_CheckChild2Type, MVT::v2i32,
/* 15296*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15298*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 307:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 15306*/      /*SwitchType*/ 15, MVT::v4i32,// ->15323
/* 15308*/        OPC_CheckChild1Type, MVT::v4i32,
/* 15310*/        OPC_RecordChild2, // #1 = $Rm
/* 15311*/        OPC_CheckChild2Type, MVT::v4i32,
/* 15313*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15315*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 307:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 15323*/      /*SwitchType*/ 15, MVT::v2i64,// ->15340
/* 15325*/        OPC_CheckChild1Type, MVT::v2i64,
/* 15327*/        OPC_RecordChild2, // #1 = $Rm
/* 15328*/        OPC_CheckChild2Type, MVT::v2i64,
/* 15330*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15332*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 307:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 15340*/      /*SwitchType*/ 15, MVT::v1i64,// ->15357
/* 15342*/        OPC_CheckChild1Type, MVT::v1i64,
/* 15344*/        OPC_RecordChild2, // #1 = $Rm
/* 15345*/        OPC_CheckChild2Type, MVT::v1i64,
/* 15347*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15349*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 307:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (SSHLv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 15357*/      0, // EndSwitchType
/* 15358*/    /*Scope*/ 29|128,1/*157*/, /*->15517*/
/* 15360*/      OPC_CheckChild0Integer, 97|128,2/*353*/, 
/* 15363*/      OPC_RecordChild1, // #0 = $Rn
/* 15364*/      OPC_SwitchType /*9 cases */, 13, MVT::i64,// ->15380
/* 15367*/        OPC_CheckChild1Type, MVT::i64,
/* 15369*/        OPC_RecordChild2, // #1 = $Rm
/* 15370*/        OPC_CheckChild2Type, MVT::i64,
/* 15372*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 353:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (USHLv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 15380*/      /*SwitchType*/ 15, MVT::v8i8,// ->15397
/* 15382*/        OPC_CheckChild1Type, MVT::v8i8,
/* 15384*/        OPC_RecordChild2, // #1 = $Rm
/* 15385*/        OPC_CheckChild2Type, MVT::v8i8,
/* 15387*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15389*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 353:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (USHLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 15397*/      /*SwitchType*/ 15, MVT::v16i8,// ->15414
/* 15399*/        OPC_CheckChild1Type, MVT::v16i8,
/* 15401*/        OPC_RecordChild2, // #1 = $Rm
/* 15402*/        OPC_CheckChild2Type, MVT::v16i8,
/* 15404*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15406*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 353:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (USHLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 15414*/      /*SwitchType*/ 15, MVT::v4i16,// ->15431
/* 15416*/        OPC_CheckChild1Type, MVT::v4i16,
/* 15418*/        OPC_RecordChild2, // #1 = $Rm
/* 15419*/        OPC_CheckChild2Type, MVT::v4i16,
/* 15421*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15423*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 353:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (USHLv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 15431*/      /*SwitchType*/ 15, MVT::v8i16,// ->15448
/* 15433*/        OPC_CheckChild1Type, MVT::v8i16,
/* 15435*/        OPC_RecordChild2, // #1 = $Rm
/* 15436*/        OPC_CheckChild2Type, MVT::v8i16,
/* 15438*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15440*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 353:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (USHLv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 15448*/      /*SwitchType*/ 15, MVT::v2i32,// ->15465
/* 15450*/        OPC_CheckChild1Type, MVT::v2i32,
/* 15452*/        OPC_RecordChild2, // #1 = $Rm
/* 15453*/        OPC_CheckChild2Type, MVT::v2i32,
/* 15455*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15457*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 353:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (USHLv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 15465*/      /*SwitchType*/ 15, MVT::v4i32,// ->15482
/* 15467*/        OPC_CheckChild1Type, MVT::v4i32,
/* 15469*/        OPC_RecordChild2, // #1 = $Rm
/* 15470*/        OPC_CheckChild2Type, MVT::v4i32,
/* 15472*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15474*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 353:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (USHLv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 15482*/      /*SwitchType*/ 15, MVT::v2i64,// ->15499
/* 15484*/        OPC_CheckChild1Type, MVT::v2i64,
/* 15486*/        OPC_RecordChild2, // #1 = $Rm
/* 15487*/        OPC_CheckChild2Type, MVT::v2i64,
/* 15489*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15491*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 353:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (USHLv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 15499*/      /*SwitchType*/ 15, MVT::v1i64,// ->15516
/* 15501*/        OPC_CheckChild1Type, MVT::v1i64,
/* 15503*/        OPC_RecordChild2, // #1 = $Rm
/* 15504*/        OPC_CheckChild2Type, MVT::v1i64,
/* 15506*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15508*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 353:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (USHLv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 15516*/      0, // EndSwitchType
/* 15517*/    /*Scope*/ 29|128,1/*157*/, /*->15676*/
/* 15519*/      OPC_CheckChild0Integer, 50|128,2/*306*/, 
/* 15522*/      OPC_RecordChild1, // #0 = $Rn
/* 15523*/      OPC_SwitchType /*9 cases */, 13, MVT::i64,// ->15539
/* 15526*/        OPC_CheckChild1Type, MVT::i64,
/* 15528*/        OPC_RecordChild2, // #1 = $Rm
/* 15529*/        OPC_CheckChild2Type, MVT::i64,
/* 15531*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 306:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 15539*/      /*SwitchType*/ 15, MVT::v8i8,// ->15556
/* 15541*/        OPC_CheckChild1Type, MVT::v8i8,
/* 15543*/        OPC_RecordChild2, // #1 = $Rm
/* 15544*/        OPC_CheckChild2Type, MVT::v8i8,
/* 15546*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15548*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 306:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 15556*/      /*SwitchType*/ 15, MVT::v16i8,// ->15573
/* 15558*/        OPC_CheckChild1Type, MVT::v16i8,
/* 15560*/        OPC_RecordChild2, // #1 = $Rm
/* 15561*/        OPC_CheckChild2Type, MVT::v16i8,
/* 15563*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15565*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 306:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 15573*/      /*SwitchType*/ 15, MVT::v4i16,// ->15590
/* 15575*/        OPC_CheckChild1Type, MVT::v4i16,
/* 15577*/        OPC_RecordChild2, // #1 = $Rm
/* 15578*/        OPC_CheckChild2Type, MVT::v4i16,
/* 15580*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15582*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 306:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 15590*/      /*SwitchType*/ 15, MVT::v8i16,// ->15607
/* 15592*/        OPC_CheckChild1Type, MVT::v8i16,
/* 15594*/        OPC_RecordChild2, // #1 = $Rm
/* 15595*/        OPC_CheckChild2Type, MVT::v8i16,
/* 15597*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15599*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 306:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 15607*/      /*SwitchType*/ 15, MVT::v2i32,// ->15624
/* 15609*/        OPC_CheckChild1Type, MVT::v2i32,
/* 15611*/        OPC_RecordChild2, // #1 = $Rm
/* 15612*/        OPC_CheckChild2Type, MVT::v2i32,
/* 15614*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15616*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 306:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 15624*/      /*SwitchType*/ 15, MVT::v4i32,// ->15641
/* 15626*/        OPC_CheckChild1Type, MVT::v4i32,
/* 15628*/        OPC_RecordChild2, // #1 = $Rm
/* 15629*/        OPC_CheckChild2Type, MVT::v4i32,
/* 15631*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15633*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 306:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 15641*/      /*SwitchType*/ 15, MVT::v2i64,// ->15658
/* 15643*/        OPC_CheckChild1Type, MVT::v2i64,
/* 15645*/        OPC_RecordChild2, // #1 = $Rm
/* 15646*/        OPC_CheckChild2Type, MVT::v2i64,
/* 15648*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15650*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 306:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 15658*/      /*SwitchType*/ 15, MVT::v1i64,// ->15675
/* 15660*/        OPC_CheckChild1Type, MVT::v1i64,
/* 15662*/        OPC_RecordChild2, // #1 = $Rm
/* 15663*/        OPC_CheckChild2Type, MVT::v1i64,
/* 15665*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15667*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHLv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 306:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (SRSHLv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 15675*/      0, // EndSwitchType
/* 15676*/    /*Scope*/ 29|128,1/*157*/, /*->15835*/
/* 15678*/      OPC_CheckChild0Integer, 95|128,2/*351*/, 
/* 15681*/      OPC_RecordChild1, // #0 = $Rn
/* 15682*/      OPC_SwitchType /*9 cases */, 13, MVT::i64,// ->15698
/* 15685*/        OPC_CheckChild1Type, MVT::i64,
/* 15687*/        OPC_RecordChild2, // #1 = $Rm
/* 15688*/        OPC_CheckChild2Type, MVT::i64,
/* 15690*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv1i64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 351:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, FPR64:{ *:[i64] }:$Rm)
/* 15698*/      /*SwitchType*/ 15, MVT::v8i8,// ->15715
/* 15700*/        OPC_CheckChild1Type, MVT::v8i8,
/* 15702*/        OPC_RecordChild2, // #1 = $Rm
/* 15703*/        OPC_CheckChild2Type, MVT::v8i8,
/* 15705*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15707*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 351:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 15715*/      /*SwitchType*/ 15, MVT::v16i8,// ->15732
/* 15717*/        OPC_CheckChild1Type, MVT::v16i8,
/* 15719*/        OPC_RecordChild2, // #1 = $Rm
/* 15720*/        OPC_CheckChild2Type, MVT::v16i8,
/* 15722*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15724*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 351:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 15732*/      /*SwitchType*/ 15, MVT::v4i16,// ->15749
/* 15734*/        OPC_CheckChild1Type, MVT::v4i16,
/* 15736*/        OPC_RecordChild2, // #1 = $Rm
/* 15737*/        OPC_CheckChild2Type, MVT::v4i16,
/* 15739*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15741*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 351:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 15749*/      /*SwitchType*/ 15, MVT::v8i16,// ->15766
/* 15751*/        OPC_CheckChild1Type, MVT::v8i16,
/* 15753*/        OPC_RecordChild2, // #1 = $Rm
/* 15754*/        OPC_CheckChild2Type, MVT::v8i16,
/* 15756*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15758*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 351:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 15766*/      /*SwitchType*/ 15, MVT::v2i32,// ->15783
/* 15768*/        OPC_CheckChild1Type, MVT::v2i32,
/* 15770*/        OPC_RecordChild2, // #1 = $Rm
/* 15771*/        OPC_CheckChild2Type, MVT::v2i32,
/* 15773*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15775*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 351:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 15783*/      /*SwitchType*/ 15, MVT::v4i32,// ->15800
/* 15785*/        OPC_CheckChild1Type, MVT::v4i32,
/* 15787*/        OPC_RecordChild2, // #1 = $Rm
/* 15788*/        OPC_CheckChild2Type, MVT::v4i32,
/* 15790*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15792*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 351:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 15800*/      /*SwitchType*/ 15, MVT::v2i64,// ->15817
/* 15802*/        OPC_CheckChild1Type, MVT::v2i64,
/* 15804*/        OPC_RecordChild2, // #1 = $Rm
/* 15805*/        OPC_CheckChild2Type, MVT::v2i64,
/* 15807*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15809*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 351:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 15817*/      /*SwitchType*/ 15, MVT::v1i64,// ->15834
/* 15819*/        OPC_CheckChild1Type, MVT::v1i64,
/* 15821*/        OPC_RecordChild2, // #1 = $Rm
/* 15822*/        OPC_CheckChild2Type, MVT::v1i64,
/* 15824*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 15826*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHLv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 351:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 8
                  // Dst: (URSHLv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 15834*/      0, // EndSwitchType
/* 15835*/    /*Scope*/ 121|128,1/*249*/, /*->16086*/
/* 15837*/      OPC_CheckChild0Integer, 16|128,2/*272*/, 
/* 15840*/      OPC_RecordChild1, // #0 = $Rn
/* 15841*/      OPC_SwitchType /*2 cases */, 30|128,1/*158*/, MVT::i32,// ->16003
/* 15845*/        OPC_Scope, 38, /*->15885*/ // 4 children in Scope
/* 15847*/          OPC_CheckChild1Type, MVT::v8i8,
/* 15849*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 15855*/          OPC_EmitNode1, TARGET_VAL(AArch64::SADDLVv8i8v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 15862*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 15865*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 15874*/          OPC_EmitInteger, MVT::i64, 0, 
/* 15877*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 272:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                    // Dst: (SMOVvi16to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SADDLVv8i8v:{ *:[f16] } V64:{ *:[v8i8] }:$Rn), hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 15885*/        /*Scope*/ 38, /*->15924*/
/* 15886*/          OPC_CheckChild1Type, MVT::v16i8,
/* 15888*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 15894*/          OPC_EmitNode1, TARGET_VAL(AArch64::SADDLVv16i8v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 15901*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 15904*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 15913*/          OPC_EmitInteger, MVT::i64, 0, 
/* 15916*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 272:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                    // Dst: (SMOVvi16to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SADDLVv16i8v:{ *:[f16] } V128:{ *:[v16i8] }:$Rn), hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 15924*/        /*Scope*/ 38, /*->15963*/
/* 15925*/          OPC_CheckChild1Type, MVT::v4i16,
/* 15927*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 15933*/          OPC_EmitNode1, TARGET_VAL(AArch64::SADDLVv4i16v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 15940*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 15943*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 15952*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 15955*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 272:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SADDLVv4i16v:{ *:[i32] } V64:{ *:[v4i16] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 15963*/        /*Scope*/ 38, /*->16002*/
/* 15964*/          OPC_CheckChild1Type, MVT::v8i16,
/* 15966*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 15972*/          OPC_EmitNode1, TARGET_VAL(AArch64::SADDLVv8i16v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 15979*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 15982*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 15991*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 15994*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 272:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SADDLVv8i16v:{ *:[i32] } V128:{ *:[v8i16] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 16002*/        0, /*End of Scope*/
/* 16003*/      /*SwitchType*/ 80, MVT::i64,// ->16085
/* 16005*/        OPC_Scope, 38, /*->16045*/ // 2 children in Scope
/* 16007*/          OPC_CheckChild1Type, MVT::v4i32,
/* 16009*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 16015*/          OPC_EmitNode1, TARGET_VAL(AArch64::SADDLVv4i32v), 0,
                        MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 16022*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 16025*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 16034*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 16037*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 272:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i64] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SADDLVv4i32v:{ *:[i64] } V128:{ *:[v4i32] }:$Rn), dsub:{ *:[i32] }), dsub:{ *:[i32] })
/* 16045*/        /*Scope*/ 38, /*->16084*/
/* 16046*/          OPC_CheckChild1Type, MVT::v2i32,
/* 16048*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 16054*/          OPC_EmitNode1, TARGET_VAL(AArch64::SADDLPv2i32_v1i64), 0,
                        MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 16061*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 16064*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 16073*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 16076*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 272:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i64] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SADDLPv2i32_v1i64:{ *:[i64] } V64:{ *:[v2i32] }:$Rn), dsub:{ *:[i32] }), dsub:{ *:[i32] })
/* 16084*/        0, /*End of Scope*/
/* 16085*/      0, // EndSwitchType
/* 16086*/    /*Scope*/ 121|128,1/*249*/, /*->16337*/
/* 16088*/      OPC_CheckChild0Integer, 74|128,2/*330*/, 
/* 16091*/      OPC_RecordChild1, // #0 = $Rn
/* 16092*/      OPC_SwitchType /*2 cases */, 30|128,1/*158*/, MVT::i32,// ->16254
/* 16096*/        OPC_Scope, 38, /*->16136*/ // 4 children in Scope
/* 16098*/          OPC_CheckChild1Type, MVT::v8i8,
/* 16100*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 16106*/          OPC_EmitNode1, TARGET_VAL(AArch64::UADDLVv8i8v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 16113*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 16116*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 16125*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 16128*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 330:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UADDLVv8i8v:{ *:[f16] } V64:{ *:[v8i8] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 16136*/        /*Scope*/ 38, /*->16175*/
/* 16137*/          OPC_CheckChild1Type, MVT::v16i8,
/* 16139*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 16145*/          OPC_EmitNode1, TARGET_VAL(AArch64::UADDLVv16i8v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 16152*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 16155*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 16164*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 16167*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 330:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UADDLVv16i8v:{ *:[f16] } V128:{ *:[v16i8] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 16175*/        /*Scope*/ 38, /*->16214*/
/* 16176*/          OPC_CheckChild1Type, MVT::v4i16,
/* 16178*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 16184*/          OPC_EmitNode1, TARGET_VAL(AArch64::UADDLVv4i16v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 16191*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 16194*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 16203*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 16206*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 330:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UADDLVv4i16v:{ *:[i32] } V64:{ *:[v4i16] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 16214*/        /*Scope*/ 38, /*->16253*/
/* 16215*/          OPC_CheckChild1Type, MVT::v8i16,
/* 16217*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 16223*/          OPC_EmitNode1, TARGET_VAL(AArch64::UADDLVv8i16v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 16230*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 16233*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 16242*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 16245*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 330:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UADDLVv8i16v:{ *:[i32] } V128:{ *:[v8i16] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 16253*/        0, /*End of Scope*/
/* 16254*/      /*SwitchType*/ 80, MVT::i64,// ->16336
/* 16256*/        OPC_Scope, 38, /*->16296*/ // 2 children in Scope
/* 16258*/          OPC_CheckChild1Type, MVT::v4i32,
/* 16260*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 16266*/          OPC_EmitNode1, TARGET_VAL(AArch64::UADDLVv4i32v), 0,
                        MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 16273*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 16276*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 16285*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 16288*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 330:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i64] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UADDLVv4i32v:{ *:[i64] } V128:{ *:[v4i32] }:$Rn), dsub:{ *:[i32] }), dsub:{ *:[i32] })
/* 16296*/        /*Scope*/ 38, /*->16335*/
/* 16297*/          OPC_CheckChild1Type, MVT::v2i32,
/* 16299*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 16305*/          OPC_EmitNode1, TARGET_VAL(AArch64::UADDLPv2i32_v1i64), 0,
                        MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 16312*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 16315*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 16324*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 16327*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i64] } 330:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[i64] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UADDLPv2i32_v1i64:{ *:[i64] } V64:{ *:[v2i32] }:$Rn), dsub:{ *:[i32] }), dsub:{ *:[i32] })
/* 16335*/        0, /*End of Scope*/
/* 16336*/      0, // EndSwitchType
/* 16337*/    /*Scope*/ 39|128,2/*295*/, /*->16634*/
/* 16339*/      OPC_CheckChild0Integer, 105|128,2/*361*/, 
/* 16342*/      OPC_Scope, 40, /*->16384*/ // 2 children in Scope
/* 16344*/        OPC_MoveChild1,
/* 16345*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 16349*/        OPC_RecordChild0, // #0 = $Rn
/* 16350*/        OPC_CheckType, MVT::i32,
/* 16352*/        OPC_MoveParent,
/* 16353*/        OPC_RecordChild2, // #1 = $imm
/* 16354*/        OPC_MoveChild2,
/* 16355*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16358*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 16360*/        OPC_MoveParent,
/* 16361*/        OPC_CheckType, MVT::f16,
/* 16363*/        OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 16366*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f16, 2/*#Ops*/, 0, 2,  // Results = #3
/* 16374*/        OPC_EmitConvertToTarget, 1,
/* 16376*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFh), 0,
                      MVT::f16, 2/*#Ops*/, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 361:{ *:[iPTR] }, (and:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 20
                  // Dst: (UCVTFh:{ *:[f16] } (EXTRACT_SUBREG:{ *:[f16] } FPR32:{ *:[i32] }:$Rn, hsub:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)
/* 16384*/      /*Scope*/ 119|128,1/*247*/, /*->16633*/
/* 16386*/        OPC_RecordChild1, // #0 = $Rn
/* 16387*/        OPC_Scope, 52, /*->16441*/ // 8 children in Scope
/* 16389*/          OPC_CheckChild1Type, MVT::i32,
/* 16391*/          OPC_RecordChild2, // #1 = $imm
/* 16392*/          OPC_MoveChild2,
/* 16393*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16396*/          OPC_Scope, 15, /*->16413*/ // 2 children in Scope
/* 16398*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 16400*/            OPC_MoveParent,
/* 16401*/            OPC_CheckType, MVT::f32,
/* 16403*/            OPC_EmitConvertToTarget, 1,
/* 16405*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFs), 0,
                          MVT::f32, 2/*#Ops*/, 0, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[f32] } 361:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                      // Dst: (UCVTFs:{ *:[f32] } FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)
/* 16413*/          /*Scope*/ 26, /*->16440*/
/* 16414*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 16416*/            OPC_MoveParent,
/* 16417*/            OPC_CheckType, MVT::f16,
/* 16419*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 16422*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 0, 2,  // Results = #3
/* 16430*/            OPC_EmitConvertToTarget, 1,
/* 16432*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFh), 0,
                          MVT::f16, 2/*#Ops*/, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[f16] } 361:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 12
                      // Dst: (UCVTFh:{ *:[f16] } (EXTRACT_SUBREG:{ *:[f16] } FPR32:{ *:[i32] }:$Rn, hsub:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)
/* 16440*/          0, /*End of Scope*/
/* 16441*/        /*Scope*/ 52, /*->16494*/
/* 16442*/          OPC_CheckChild1Type, MVT::i64,
/* 16444*/          OPC_RecordChild2, // #1 = $imm
/* 16445*/          OPC_MoveChild2,
/* 16446*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16449*/          OPC_Scope, 15, /*->16466*/ // 2 children in Scope
/* 16451*/            OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 16453*/            OPC_MoveParent,
/* 16454*/            OPC_CheckType, MVT::f64,
/* 16456*/            OPC_EmitConvertToTarget, 1,
/* 16458*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFd), 0,
                          MVT::f64, 2/*#Ops*/, 0, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[f64] } 361:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                      // Dst: (UCVTFd:{ *:[f64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 16466*/          /*Scope*/ 26, /*->16493*/
/* 16467*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 16469*/            OPC_MoveParent,
/* 16470*/            OPC_CheckType, MVT::f16,
/* 16472*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 16475*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 0, 2,  // Results = #3
/* 16483*/            OPC_EmitConvertToTarget, 1,
/* 16485*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFh), 0,
                          MVT::f16, 2/*#Ops*/, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[f16] } 361:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 12
                      // Dst: (UCVTFh:{ *:[f16] } (EXTRACT_SUBREG:{ *:[f16] } FPR64:{ *:[i64] }:$Rn, hsub:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)
/* 16493*/          0, /*End of Scope*/
/* 16494*/        /*Scope*/ 22, /*->16517*/
/* 16495*/          OPC_CheckChild1Type, MVT::v1i64,
/* 16497*/          OPC_RecordChild2, // #1 = $imm
/* 16498*/          OPC_MoveChild2,
/* 16499*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16502*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 16504*/          OPC_MoveParent,
/* 16505*/          OPC_CheckType, MVT::v1f64,
/* 16507*/          OPC_EmitConvertToTarget, 1,
/* 16509*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFd), 0,
                        MVT::v1f64, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v1f64] } 361:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                    // Dst: (UCVTFd:{ *:[v1f64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 16517*/        /*Scope*/ 22, /*->16540*/
/* 16518*/          OPC_CheckChild1Type, MVT::v4i16,
/* 16520*/          OPC_RecordChild2, // #1 = $imm
/* 16521*/          OPC_MoveChild2,
/* 16522*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16525*/          OPC_MoveParent,
/* 16526*/          OPC_CheckType, MVT::v4f16,
/* 16528*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 16530*/          OPC_EmitConvertToTarget, 1,
/* 16532*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv4i16_shift), 0,
                        MVT::v4f16, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f16] } 361:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (UCVTFv4i16_shift:{ *:[v4f16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 16540*/        /*Scope*/ 22, /*->16563*/
/* 16541*/          OPC_CheckChild1Type, MVT::v8i16,
/* 16543*/          OPC_RecordChild2, // #1 = $imm
/* 16544*/          OPC_MoveChild2,
/* 16545*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16548*/          OPC_MoveParent,
/* 16549*/          OPC_CheckType, MVT::v8f16,
/* 16551*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 16553*/          OPC_EmitConvertToTarget, 1,
/* 16555*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv8i16_shift), 0,
                        MVT::v8f16, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v8f16] } 361:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (UCVTFv8i16_shift:{ *:[v8f16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 16563*/        /*Scope*/ 22, /*->16586*/
/* 16564*/          OPC_CheckChild1Type, MVT::v2i32,
/* 16566*/          OPC_RecordChild2, // #1 = $imm
/* 16567*/          OPC_MoveChild2,
/* 16568*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16571*/          OPC_MoveParent,
/* 16572*/          OPC_CheckType, MVT::v2f32,
/* 16574*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16576*/          OPC_EmitConvertToTarget, 1,
/* 16578*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv2i32_shift), 0,
                        MVT::v2f32, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f32] } 361:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (UCVTFv2i32_shift:{ *:[v2f32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 16586*/        /*Scope*/ 22, /*->16609*/
/* 16587*/          OPC_CheckChild1Type, MVT::v4i32,
/* 16589*/          OPC_RecordChild2, // #1 = $imm
/* 16590*/          OPC_MoveChild2,
/* 16591*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16594*/          OPC_MoveParent,
/* 16595*/          OPC_CheckType, MVT::v4f32,
/* 16597*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16599*/          OPC_EmitConvertToTarget, 1,
/* 16601*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv4i32_shift), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 361:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (UCVTFv4i32_shift:{ *:[v4f32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 16609*/        /*Scope*/ 22, /*->16632*/
/* 16610*/          OPC_CheckChild1Type, MVT::v2i64,
/* 16612*/          OPC_RecordChild2, // #1 = $imm
/* 16613*/          OPC_MoveChild2,
/* 16614*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16617*/          OPC_MoveParent,
/* 16618*/          OPC_CheckType, MVT::v2f64,
/* 16620*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16622*/          OPC_EmitConvertToTarget, 1,
/* 16624*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv2i64_shift), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 361:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (UCVTFv2i64_shift:{ *:[v2f64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 16632*/        0, /*End of Scope*/
/* 16633*/      0, /*End of Scope*/
/* 16634*/    /*Scope*/ 110|128,5/*750*/, /*->17386*/
/* 16636*/      OPC_CheckChild0Integer, 116|128,1/*244*/, 
/* 16639*/      OPC_Scope, 117, /*->16758*/ // 5 children in Scope
/* 16641*/        OPC_RecordChild1, // #0 = $Rn
/* 16642*/        OPC_Scope, 37, /*->16681*/ // 3 children in Scope
/* 16644*/          OPC_CheckChild1Type, MVT::f16,
/* 16646*/          OPC_MoveChild2,
/* 16647*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 16650*/          OPC_RecordChild0, // #1 = $Rm
/* 16651*/          OPC_CheckChild0Type, MVT::v8f16,
/* 16653*/          OPC_RecordChild1, // #2 = $idx
/* 16654*/          OPC_MoveChild1,
/* 16655*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16658*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 16660*/          OPC_CheckType, MVT::i64,
/* 16662*/          OPC_MoveParent,
/* 16663*/          OPC_CheckType, MVT::f16,
/* 16665*/          OPC_MoveParent,
/* 16666*/          OPC_CheckType, MVT::f16,
/* 16668*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 16670*/          OPC_EmitConvertToTarget, 2,
/* 16672*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv1i16_indexed), 0,
                        MVT::f16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 244:{ *:[iPTR] }, FPR16Op:{ *:[f16] }:$Rn, (vector_extract:{ *:[f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                    // Dst: (FMULXv1i16_indexed:{ *:[f16] } FPR16Op:{ *:[f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 16681*/        /*Scope*/ 37, /*->16719*/
/* 16682*/          OPC_CheckChild1Type, MVT::f32,
/* 16684*/          OPC_MoveChild2,
/* 16685*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 16688*/          OPC_RecordChild0, // #1 = $Rm
/* 16689*/          OPC_CheckChild0Type, MVT::v4f32,
/* 16691*/          OPC_RecordChild1, // #2 = $idx
/* 16692*/          OPC_MoveChild1,
/* 16693*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16696*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 16698*/          OPC_CheckType, MVT::i64,
/* 16700*/          OPC_MoveParent,
/* 16701*/          OPC_CheckType, MVT::f32,
/* 16703*/          OPC_MoveParent,
/* 16704*/          OPC_CheckType, MVT::f32,
/* 16706*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16708*/          OPC_EmitConvertToTarget, 2,
/* 16710*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv1i32_indexed), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 244:{ *:[iPTR] }, FPR32Op:{ *:[f32] }:$Rn, (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (FMULXv1i32_indexed:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 16719*/        /*Scope*/ 37, /*->16757*/
/* 16720*/          OPC_CheckChild1Type, MVT::f64,
/* 16722*/          OPC_MoveChild2,
/* 16723*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 16726*/          OPC_RecordChild0, // #1 = $Rm
/* 16727*/          OPC_CheckChild0Type, MVT::v2f64,
/* 16729*/          OPC_RecordChild1, // #2 = $idx
/* 16730*/          OPC_MoveChild1,
/* 16731*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16734*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 16736*/          OPC_CheckType, MVT::i64,
/* 16738*/          OPC_MoveParent,
/* 16739*/          OPC_CheckType, MVT::f64,
/* 16741*/          OPC_MoveParent,
/* 16742*/          OPC_CheckType, MVT::f64,
/* 16744*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16746*/          OPC_EmitConvertToTarget, 2,
/* 16748*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv1i64_indexed), 0,
                        MVT::f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[f64] } 244:{ *:[iPTR] }, FPR64Op:{ *:[f64] }:$Rn, (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)) - Complexity = 15
                    // Dst: (FMULXv1i64_indexed:{ *:[f64] } FPR64Op:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 16757*/        0, /*End of Scope*/
/* 16758*/      /*Scope*/ 109, /*->16868*/
/* 16759*/        OPC_MoveChild1,
/* 16760*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 16763*/        OPC_RecordChild0, // #0 = $Rm
/* 16764*/        OPC_Scope, 33, /*->16799*/ // 3 children in Scope
/* 16766*/          OPC_CheckChild0Type, MVT::v8f16,
/* 16768*/          OPC_RecordChild1, // #1 = $idx
/* 16769*/          OPC_MoveChild1,
/* 16770*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16773*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 16775*/          OPC_CheckType, MVT::i64,
/* 16777*/          OPC_MoveParent,
/* 16778*/          OPC_CheckType, MVT::f16,
/* 16780*/          OPC_MoveParent,
/* 16781*/          OPC_RecordChild2, // #2 = $Rn
/* 16782*/          OPC_CheckChild2Type, MVT::f16,
/* 16784*/          OPC_CheckType, MVT::f16,
/* 16786*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 16788*/          OPC_EmitConvertToTarget, 1,
/* 16790*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv1i16_indexed), 0,
                        MVT::f16, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 244:{ *:[iPTR] }, (vector_extract:{ *:[f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), FPR16Op:{ *:[f16] }:$Rn) - Complexity = 15
                    // Dst: (FMULXv1i16_indexed:{ *:[f16] } FPR16Op:{ *:[f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 16799*/        /*Scope*/ 33, /*->16833*/
/* 16800*/          OPC_CheckChild0Type, MVT::v4f32,
/* 16802*/          OPC_RecordChild1, // #1 = $idx
/* 16803*/          OPC_MoveChild1,
/* 16804*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16807*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 16809*/          OPC_CheckType, MVT::i64,
/* 16811*/          OPC_MoveParent,
/* 16812*/          OPC_CheckType, MVT::f32,
/* 16814*/          OPC_MoveParent,
/* 16815*/          OPC_RecordChild2, // #2 = $Rn
/* 16816*/          OPC_CheckChild2Type, MVT::f32,
/* 16818*/          OPC_CheckType, MVT::f32,
/* 16820*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16822*/          OPC_EmitConvertToTarget, 1,
/* 16824*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv1i32_indexed), 0,
                        MVT::f32, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 244:{ *:[iPTR] }, (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32Op:{ *:[f32] }:$Rn) - Complexity = 15
                    // Dst: (FMULXv1i32_indexed:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 16833*/        /*Scope*/ 33, /*->16867*/
/* 16834*/          OPC_CheckChild0Type, MVT::v2f64,
/* 16836*/          OPC_RecordChild1, // #1 = $idx
/* 16837*/          OPC_MoveChild1,
/* 16838*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16841*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 16843*/          OPC_CheckType, MVT::i64,
/* 16845*/          OPC_MoveParent,
/* 16846*/          OPC_CheckType, MVT::f64,
/* 16848*/          OPC_MoveParent,
/* 16849*/          OPC_RecordChild2, // #2 = $Rn
/* 16850*/          OPC_CheckChild2Type, MVT::f64,
/* 16852*/          OPC_CheckType, MVT::f64,
/* 16854*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16856*/          OPC_EmitConvertToTarget, 1,
/* 16858*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv1i64_indexed), 0,
                        MVT::f64, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[f64] } 244:{ *:[iPTR] }, (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), FPR64Op:{ *:[f64] }:$Rn) - Complexity = 15
                    // Dst: (FMULXv1i64_indexed:{ *:[f64] } FPR64Op:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 16867*/        0, /*End of Scope*/
/* 16868*/      /*Scope*/ 119|128,1/*247*/, /*->17117*/
/* 16870*/        OPC_RecordChild1, // #0 = $Rn
/* 16871*/        OPC_Scope, 17, /*->16890*/ // 8 children in Scope
/* 16873*/          OPC_CheckChild1Type, MVT::f64,
/* 16875*/          OPC_RecordChild2, // #1 = $Rm
/* 16876*/          OPC_CheckChild2Type, MVT::f64,
/* 16878*/          OPC_CheckType, MVT::f64,
/* 16880*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16882*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULX64), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[f64] } 244:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 8
                    // Dst: (FMULX64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 16890*/        /*Scope*/ 17, /*->16908*/
/* 16891*/          OPC_CheckChild1Type, MVT::f32,
/* 16893*/          OPC_RecordChild2, // #1 = $Rm
/* 16894*/          OPC_CheckChild2Type, MVT::f32,
/* 16896*/          OPC_CheckType, MVT::f32,
/* 16898*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 16900*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULX32), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 244:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 8
                    // Dst: (FMULX32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 16908*/        /*Scope*/ 17, /*->16926*/
/* 16909*/          OPC_CheckChild1Type, MVT::f16,
/* 16911*/          OPC_RecordChild2, // #1 = $Rm
/* 16912*/          OPC_CheckChild2Type, MVT::f16,
/* 16914*/          OPC_CheckType, MVT::f16,
/* 16916*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 16918*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULX16), 0,
                        MVT::f16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 244:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 8
                    // Dst: (FMULX16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 16926*/        /*Scope*/ 37, /*->16964*/
/* 16927*/          OPC_CheckChild1Type, MVT::v4f16,
/* 16929*/          OPC_MoveChild2,
/* 16930*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 16933*/          OPC_RecordChild0, // #1 = $Rm
/* 16934*/          OPC_CheckChild0Type, MVT::v8f16,
/* 16936*/          OPC_RecordChild1, // #2 = $idx
/* 16937*/          OPC_MoveChild1,
/* 16938*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16941*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 16943*/          OPC_CheckType, MVT::i64,
/* 16945*/          OPC_MoveParent,
/* 16946*/          OPC_CheckType, MVT::v4f16,
/* 16948*/          OPC_MoveParent,
/* 16949*/          OPC_CheckType, MVT::v4f16,
/* 16951*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 16953*/          OPC_EmitConvertToTarget, 2,
/* 16955*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv4i16_indexed), 0,
                        MVT::v4f16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f16] } 244:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, (AArch64duplane16:{ *:[v4f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                    // Dst: (FMULXv4i16_indexed:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 16964*/        /*Scope*/ 37, /*->17002*/
/* 16965*/          OPC_CheckChild1Type, MVT::v8f16,
/* 16967*/          OPC_MoveChild2,
/* 16968*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 16971*/          OPC_RecordChild0, // #1 = $Rm
/* 16972*/          OPC_CheckChild0Type, MVT::v8f16,
/* 16974*/          OPC_RecordChild1, // #2 = $idx
/* 16975*/          OPC_MoveChild1,
/* 16976*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16979*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 16981*/          OPC_CheckType, MVT::i64,
/* 16983*/          OPC_MoveParent,
/* 16984*/          OPC_CheckType, MVT::v8f16,
/* 16986*/          OPC_MoveParent,
/* 16987*/          OPC_CheckType, MVT::v8f16,
/* 16989*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 16991*/          OPC_EmitConvertToTarget, 2,
/* 16993*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv8i16_indexed), 0,
                        MVT::v8f16, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8f16] } 244:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, (AArch64duplane16:{ *:[v8f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                    // Dst: (FMULXv8i16_indexed:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17002*/        /*Scope*/ 37, /*->17040*/
/* 17003*/          OPC_CheckChild1Type, MVT::v2f32,
/* 17005*/          OPC_MoveChild2,
/* 17006*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 17009*/          OPC_RecordChild0, // #1 = $Rm
/* 17010*/          OPC_CheckChild0Type, MVT::v4f32,
/* 17012*/          OPC_RecordChild1, // #2 = $idx
/* 17013*/          OPC_MoveChild1,
/* 17014*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17017*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 17019*/          OPC_CheckType, MVT::i64,
/* 17021*/          OPC_MoveParent,
/* 17022*/          OPC_CheckType, MVT::v2f32,
/* 17024*/          OPC_MoveParent,
/* 17025*/          OPC_CheckType, MVT::v2f32,
/* 17027*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17029*/          OPC_EmitConvertToTarget, 2,
/* 17031*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv2i32_indexed), 0,
                        MVT::v2f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f32] } 244:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (FMULXv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17040*/        /*Scope*/ 37, /*->17078*/
/* 17041*/          OPC_CheckChild1Type, MVT::v4f32,
/* 17043*/          OPC_MoveChild2,
/* 17044*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 17047*/          OPC_RecordChild0, // #1 = $Rm
/* 17048*/          OPC_CheckChild0Type, MVT::v4f32,
/* 17050*/          OPC_RecordChild1, // #2 = $idx
/* 17051*/          OPC_MoveChild1,
/* 17052*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17055*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 17057*/          OPC_CheckType, MVT::i64,
/* 17059*/          OPC_MoveParent,
/* 17060*/          OPC_CheckType, MVT::v4f32,
/* 17062*/          OPC_MoveParent,
/* 17063*/          OPC_CheckType, MVT::v4f32,
/* 17065*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17067*/          OPC_EmitConvertToTarget, 2,
/* 17069*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv4i32_indexed), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 244:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                    // Dst: (FMULXv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17078*/        /*Scope*/ 37, /*->17116*/
/* 17079*/          OPC_CheckChild1Type, MVT::v2f64,
/* 17081*/          OPC_MoveChild2,
/* 17082*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE64),
/* 17085*/          OPC_RecordChild0, // #1 = $Rm
/* 17086*/          OPC_CheckChild0Type, MVT::v2f64,
/* 17088*/          OPC_RecordChild1, // #2 = $idx
/* 17089*/          OPC_MoveChild1,
/* 17090*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17093*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 17095*/          OPC_CheckType, MVT::i64,
/* 17097*/          OPC_MoveParent,
/* 17098*/          OPC_CheckType, MVT::v2f64,
/* 17100*/          OPC_MoveParent,
/* 17101*/          OPC_CheckType, MVT::v2f64,
/* 17103*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17105*/          OPC_EmitConvertToTarget, 2,
/* 17107*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv2i64_indexed), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 244:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)) - Complexity = 15
                    // Dst: (FMULXv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17116*/        0, /*End of Scope*/
/* 17117*/      /*Scope*/ 32|128,1/*160*/, /*->17279*/
/* 17119*/        OPC_MoveChild1,
/* 17120*/        OPC_SwitchOpcode /*3 cases */, 57, TARGET_VAL(AArch64ISD::DUPLANE16),// ->17181
/* 17124*/          OPC_RecordChild0, // #0 = $Rm
/* 17125*/          OPC_CheckChild0Type, MVT::v8f16,
/* 17127*/          OPC_RecordChild1, // #1 = $idx
/* 17128*/          OPC_MoveChild1,
/* 17129*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17132*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 17134*/          OPC_CheckType, MVT::i64,
/* 17136*/          OPC_MoveParent,
/* 17137*/          OPC_SwitchType /*2 cases */, 19, MVT::v4f16,// ->17159
/* 17140*/            OPC_MoveParent,
/* 17141*/            OPC_RecordChild2, // #2 = $Rn
/* 17142*/            OPC_CheckChild2Type, MVT::v4f16,
/* 17144*/            OPC_CheckType, MVT::v4f16,
/* 17146*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17148*/            OPC_EmitConvertToTarget, 1,
/* 17150*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv4i16_indexed), 0,
                          MVT::v4f16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4f16] } 244:{ *:[iPTR] }, (AArch64duplane16:{ *:[v4f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V64:{ *:[v4f16] }:$Rn) - Complexity = 15
                      // Dst: (FMULXv4i16_indexed:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17159*/          /*SwitchType*/ 19, MVT::v8f16,// ->17180
/* 17161*/            OPC_MoveParent,
/* 17162*/            OPC_RecordChild2, // #2 = $Rn
/* 17163*/            OPC_CheckChild2Type, MVT::v8f16,
/* 17165*/            OPC_CheckType, MVT::v8f16,
/* 17167*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17169*/            OPC_EmitConvertToTarget, 1,
/* 17171*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv8i16_indexed), 0,
                          MVT::v8f16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v8f16] } 244:{ *:[iPTR] }, (AArch64duplane16:{ *:[v8f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V128:{ *:[v8f16] }:$Rn) - Complexity = 15
                      // Dst: (FMULXv8i16_indexed:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17180*/          0, // EndSwitchType
/* 17181*/        /*SwitchOpcode*/ 57, TARGET_VAL(AArch64ISD::DUPLANE32),// ->17241
/* 17184*/          OPC_RecordChild0, // #0 = $Rm
/* 17185*/          OPC_CheckChild0Type, MVT::v4f32,
/* 17187*/          OPC_RecordChild1, // #1 = $idx
/* 17188*/          OPC_MoveChild1,
/* 17189*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17192*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 17194*/          OPC_CheckType, MVT::i64,
/* 17196*/          OPC_MoveParent,
/* 17197*/          OPC_SwitchType /*2 cases */, 19, MVT::v2f32,// ->17219
/* 17200*/            OPC_MoveParent,
/* 17201*/            OPC_RecordChild2, // #2 = $Rn
/* 17202*/            OPC_CheckChild2Type, MVT::v2f32,
/* 17204*/            OPC_CheckType, MVT::v2f32,
/* 17206*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17208*/            OPC_EmitConvertToTarget, 1,
/* 17210*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv2i32_indexed), 0,
                          MVT::v2f32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2f32] } 244:{ *:[iPTR] }, (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rn) - Complexity = 15
                      // Dst: (FMULXv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17219*/          /*SwitchType*/ 19, MVT::v4f32,// ->17240
/* 17221*/            OPC_MoveParent,
/* 17222*/            OPC_RecordChild2, // #2 = $Rn
/* 17223*/            OPC_CheckChild2Type, MVT::v4f32,
/* 17225*/            OPC_CheckType, MVT::v4f32,
/* 17227*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17229*/            OPC_EmitConvertToTarget, 1,
/* 17231*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv4i32_indexed), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4f32] } 244:{ *:[iPTR] }, (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rn) - Complexity = 15
                      // Dst: (FMULXv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17240*/          0, // EndSwitchType
/* 17241*/        /*SwitchOpcode*/ 34, TARGET_VAL(AArch64ISD::DUPLANE64),// ->17278
/* 17244*/          OPC_RecordChild0, // #0 = $Rm
/* 17245*/          OPC_CheckChild0Type, MVT::v2f64,
/* 17247*/          OPC_RecordChild1, // #1 = $idx
/* 17248*/          OPC_MoveChild1,
/* 17249*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17252*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 17254*/          OPC_CheckType, MVT::i64,
/* 17256*/          OPC_MoveParent,
/* 17257*/          OPC_CheckType, MVT::v2f64,
/* 17259*/          OPC_MoveParent,
/* 17260*/          OPC_RecordChild2, // #2 = $Rn
/* 17261*/          OPC_CheckChild2Type, MVT::v2f64,
/* 17263*/          OPC_CheckType, MVT::v2f64,
/* 17265*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17267*/          OPC_EmitConvertToTarget, 1,
/* 17269*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv2i64_indexed), 0,
                        MVT::v2f64, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 244:{ *:[iPTR] }, (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), V128:{ *:[v2f64] }:$Rn) - Complexity = 15
                    // Dst: (FMULXv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 17278*/        0, // EndSwitchOpcode
/* 17279*/      /*Scope*/ 105, /*->17385*/
/* 17280*/        OPC_RecordChild1, // #0 = $Rn
/* 17281*/        OPC_SwitchType /*6 cases */, 15, MVT::v4f16,// ->17299
/* 17284*/          OPC_CheckChild1Type, MVT::v4f16,
/* 17286*/          OPC_RecordChild2, // #1 = $Rm
/* 17287*/          OPC_CheckChild2Type, MVT::v4f16,
/* 17289*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17291*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv4f16), 0,
                        MVT::v4f16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f16] } 244:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                    // Dst: (FMULXv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 17299*/        /*SwitchType*/ 15, MVT::v8f16,// ->17316
/* 17301*/          OPC_CheckChild1Type, MVT::v8f16,
/* 17303*/          OPC_RecordChild2, // #1 = $Rm
/* 17304*/          OPC_CheckChild2Type, MVT::v8f16,
/* 17306*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17308*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv8f16), 0,
                        MVT::v8f16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8f16] } 244:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                    // Dst: (FMULXv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 17316*/        /*SwitchType*/ 15, MVT::v2f32,// ->17333
/* 17318*/          OPC_CheckChild1Type, MVT::v2f32,
/* 17320*/          OPC_RecordChild2, // #1 = $Rm
/* 17321*/          OPC_CheckChild2Type, MVT::v2f32,
/* 17323*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17325*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv2f32), 0,
                        MVT::v2f32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f32] } 244:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                    // Dst: (FMULXv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 17333*/        /*SwitchType*/ 15, MVT::v4f32,// ->17350
/* 17335*/          OPC_CheckChild1Type, MVT::v4f32,
/* 17337*/          OPC_RecordChild2, // #1 = $Rm
/* 17338*/          OPC_CheckChild2Type, MVT::v4f32,
/* 17340*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17342*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv4f32), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 244:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                    // Dst: (FMULXv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 17350*/        /*SwitchType*/ 15, MVT::v2f64,// ->17367
/* 17352*/          OPC_CheckChild1Type, MVT::v2f64,
/* 17354*/          OPC_RecordChild2, // #1 = $Rm
/* 17355*/          OPC_CheckChild2Type, MVT::v2f64,
/* 17357*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17359*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULXv2f64), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 244:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                    // Dst: (FMULXv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 17367*/        /*SwitchType*/ 15, MVT::v1f64,// ->17384
/* 17369*/          OPC_CheckChild1Type, MVT::v1f64,
/* 17371*/          OPC_RecordChild2, // #1 = $Rm
/* 17372*/          OPC_CheckChild2Type, MVT::v1f64,
/* 17374*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17376*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULX64), 0,
                        MVT::v1f64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v1f64] } 244:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 8
                    // Dst: (FMULX64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 17384*/        0, // EndSwitchType
/* 17385*/      0, /*End of Scope*/
/* 17386*/    /*Scope*/ 12|128,2/*268*/, /*->17656*/
/* 17388*/      OPC_CheckChild0Integer, 104|128,2/*360*/, 
/* 17391*/      OPC_Scope, 43, /*->17436*/ // 2 children in Scope
/* 17393*/        OPC_MoveChild1,
/* 17394*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 17397*/        OPC_RecordChild0, // #0 = $Rn
/* 17398*/        OPC_MoveChild1,
/* 17399*/        OPC_CheckValueType, MVT::i16,
/* 17401*/        OPC_MoveParent,
/* 17402*/        OPC_CheckType, MVT::i32,
/* 17404*/        OPC_MoveParent,
/* 17405*/        OPC_RecordChild2, // #1 = $imm
/* 17406*/        OPC_MoveChild2,
/* 17407*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17410*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 17412*/        OPC_MoveParent,
/* 17413*/        OPC_CheckType, MVT::f16,
/* 17415*/        OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 17418*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f16, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17426*/        OPC_EmitConvertToTarget, 1,
/* 17428*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFh), 0,
                      MVT::f16, 2/*#Ops*/, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 360:{ *:[iPTR] }, (sext_inreg:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 15
                  // Dst: (SCVTFh:{ *:[f16] } (EXTRACT_SUBREG:{ *:[f16] } FPR32:{ *:[i32] }:$Rn, hsub:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)
/* 17436*/      /*Scope*/ 89|128,1/*217*/, /*->17655*/
/* 17438*/        OPC_RecordChild1, // #0 = $Rn
/* 17439*/        OPC_Scope, 22, /*->17463*/ // 8 children in Scope
/* 17441*/          OPC_CheckChild1Type, MVT::i64,
/* 17443*/          OPC_RecordChild2, // #1 = $imm
/* 17444*/          OPC_MoveChild2,
/* 17445*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17448*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 17450*/          OPC_MoveParent,
/* 17451*/          OPC_CheckType, MVT::f64,
/* 17453*/          OPC_EmitConvertToTarget, 1,
/* 17455*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFd), 0,
                        MVT::f64, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[f64] } 360:{ *:[iPTR] }, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                    // Dst: (SCVTFd:{ *:[f64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 17463*/        /*Scope*/ 52, /*->17516*/
/* 17464*/          OPC_CheckChild1Type, MVT::i32,
/* 17466*/          OPC_RecordChild2, // #1 = $imm
/* 17467*/          OPC_MoveChild2,
/* 17468*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17471*/          OPC_Scope, 15, /*->17488*/ // 2 children in Scope
/* 17473*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 17475*/            OPC_MoveParent,
/* 17476*/            OPC_CheckType, MVT::f32,
/* 17478*/            OPC_EmitConvertToTarget, 1,
/* 17480*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFs), 0,
                          MVT::f32, 2/*#Ops*/, 0, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[f32] } 360:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                      // Dst: (SCVTFs:{ *:[f32] } FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)
/* 17488*/          /*Scope*/ 26, /*->17515*/
/* 17489*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 17491*/            OPC_MoveParent,
/* 17492*/            OPC_CheckType, MVT::f16,
/* 17494*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 17497*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f16, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17505*/            OPC_EmitConvertToTarget, 1,
/* 17507*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFh), 0,
                          MVT::f16, 2/*#Ops*/, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[f16] } 360:{ *:[iPTR] }, FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 12
                      // Dst: (SCVTFh:{ *:[f16] } (EXTRACT_SUBREG:{ *:[f16] } FPR32:{ *:[i32] }:$Rn, hsub:{ *:[i32] }), (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)
/* 17515*/          0, /*End of Scope*/
/* 17516*/        /*Scope*/ 22, /*->17539*/
/* 17517*/          OPC_CheckChild1Type, MVT::v1i64,
/* 17519*/          OPC_RecordChild2, // #1 = $imm
/* 17520*/          OPC_MoveChild2,
/* 17521*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17524*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 17526*/          OPC_MoveParent,
/* 17527*/          OPC_CheckType, MVT::v1f64,
/* 17529*/          OPC_EmitConvertToTarget, 1,
/* 17531*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFd), 0,
                        MVT::v1f64, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v1f64] } 360:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                    // Dst: (SCVTFd:{ *:[v1f64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 17539*/        /*Scope*/ 22, /*->17562*/
/* 17540*/          OPC_CheckChild1Type, MVT::v4i16,
/* 17542*/          OPC_RecordChild2, // #1 = $imm
/* 17543*/          OPC_MoveChild2,
/* 17544*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17547*/          OPC_MoveParent,
/* 17548*/          OPC_CheckType, MVT::v4f16,
/* 17550*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17552*/          OPC_EmitConvertToTarget, 1,
/* 17554*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv4i16_shift), 0,
                        MVT::v4f16, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f16] } 360:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (SCVTFv4i16_shift:{ *:[v4f16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17562*/        /*Scope*/ 22, /*->17585*/
/* 17563*/          OPC_CheckChild1Type, MVT::v8i16,
/* 17565*/          OPC_RecordChild2, // #1 = $imm
/* 17566*/          OPC_MoveChild2,
/* 17567*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17570*/          OPC_MoveParent,
/* 17571*/          OPC_CheckType, MVT::v8f16,
/* 17573*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17575*/          OPC_EmitConvertToTarget, 1,
/* 17577*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv8i16_shift), 0,
                        MVT::v8f16, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v8f16] } 360:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (SCVTFv8i16_shift:{ *:[v8f16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17585*/        /*Scope*/ 22, /*->17608*/
/* 17586*/          OPC_CheckChild1Type, MVT::v2i32,
/* 17588*/          OPC_RecordChild2, // #1 = $imm
/* 17589*/          OPC_MoveChild2,
/* 17590*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17593*/          OPC_MoveParent,
/* 17594*/          OPC_CheckType, MVT::v2f32,
/* 17596*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17598*/          OPC_EmitConvertToTarget, 1,
/* 17600*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv2i32_shift), 0,
                        MVT::v2f32, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f32] } 360:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (SCVTFv2i32_shift:{ *:[v2f32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17608*/        /*Scope*/ 22, /*->17631*/
/* 17609*/          OPC_CheckChild1Type, MVT::v4i32,
/* 17611*/          OPC_RecordChild2, // #1 = $imm
/* 17612*/          OPC_MoveChild2,
/* 17613*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17616*/          OPC_MoveParent,
/* 17617*/          OPC_CheckType, MVT::v4f32,
/* 17619*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17621*/          OPC_EmitConvertToTarget, 1,
/* 17623*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv4i32_shift), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 360:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (SCVTFv4i32_shift:{ *:[v4f32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17631*/        /*Scope*/ 22, /*->17654*/
/* 17632*/          OPC_CheckChild1Type, MVT::v2i64,
/* 17634*/          OPC_RecordChild2, // #1 = $imm
/* 17635*/          OPC_MoveChild2,
/* 17636*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17639*/          OPC_MoveParent,
/* 17640*/          OPC_CheckType, MVT::v2f64,
/* 17642*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17644*/          OPC_EmitConvertToTarget, 1,
/* 17646*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv2i64_shift), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 360:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm) - Complexity = 11
                    // Dst: (SCVTFv2i64_shift:{ *:[v2f64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 17654*/        0, /*End of Scope*/
/* 17655*/      0, /*End of Scope*/
/* 17656*/    /*Scope*/ 121, /*->17778*/
/* 17657*/      OPC_CheckChild0Integer, 120|128,1/*248*/, 
/* 17660*/      OPC_RecordChild1, // #0 = $Rn
/* 17661*/      OPC_SwitchType /*9 cases */, 11, MVT::f16,// ->17675
/* 17664*/        OPC_CheckChild1Type, MVT::f16,
/* 17666*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 17668*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNHr), 0,
                      MVT::f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 248:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 17675*/      /*SwitchType*/ 11, MVT::f32,// ->17688
/* 17677*/        OPC_CheckChild1Type, MVT::f32,
/* 17679*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 17681*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNSr), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 248:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNSr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 17688*/      /*SwitchType*/ 11, MVT::f64,// ->17701
/* 17690*/        OPC_CheckChild1Type, MVT::f64,
/* 17692*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 17694*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNDr), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 248:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 17701*/      /*SwitchType*/ 9, MVT::v1f64,// ->17712
/* 17703*/        OPC_CheckChild1Type, MVT::v1f64,
/* 17705*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNDr), 0,
                      MVT::v1f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1f64] } 248:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNDr:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn)
/* 17712*/      /*SwitchType*/ 11, MVT::v4f16,// ->17725
/* 17714*/        OPC_CheckChild1Type, MVT::v4f16,
/* 17716*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17718*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNv4f16), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 248:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 17725*/      /*SwitchType*/ 11, MVT::v8f16,// ->17738
/* 17727*/        OPC_CheckChild1Type, MVT::v8f16,
/* 17729*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17731*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNv8f16), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 248:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 17738*/      /*SwitchType*/ 11, MVT::v2f32,// ->17751
/* 17740*/        OPC_CheckChild1Type, MVT::v2f32,
/* 17742*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17744*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNv2f32), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 248:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 17751*/      /*SwitchType*/ 11, MVT::v4f32,// ->17764
/* 17753*/        OPC_CheckChild1Type, MVT::v4f32,
/* 17755*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17757*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNv4f32), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 248:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 17764*/      /*SwitchType*/ 11, MVT::v2f64,// ->17777
/* 17766*/        OPC_CheckChild1Type, MVT::v2f64,
/* 17768*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17770*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTNv2f64), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 248:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FRINTNv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 17777*/      0, // EndSwitchType
/* 17778*/    /*Scope*/ 74, /*->17853*/
/* 17779*/      OPC_CheckChild0Integer, 110|128,2/*366*/, 
/* 17782*/      OPC_RecordChild1, // #0 = $Rn
/* 17783*/      OPC_SwitchType /*4 cases */, 15, MVT::f64,// ->17801
/* 17786*/        OPC_CheckChild1Type, MVT::f64,
/* 17788*/        OPC_RecordChild2, // #1 = $Rm
/* 17789*/        OPC_CheckChild2Type, MVT::f64,
/* 17791*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17793*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABD64), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 366:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 8
                  // Dst: (FABD64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 17801*/      /*SwitchType*/ 15, MVT::f32,// ->17818
/* 17803*/        OPC_CheckChild1Type, MVT::f32,
/* 17805*/        OPC_RecordChild2, // #1 = $Rm
/* 17806*/        OPC_CheckChild2Type, MVT::f32,
/* 17808*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17810*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABD32), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 366:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 8
                  // Dst: (FABD32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 17818*/      /*SwitchType*/ 15, MVT::f16,// ->17835
/* 17820*/        OPC_CheckChild1Type, MVT::f16,
/* 17822*/        OPC_RecordChild2, // #1 = $Rm
/* 17823*/        OPC_CheckChild2Type, MVT::f16,
/* 17825*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17827*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABD16), 0,
                      MVT::f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 366:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 8
                  // Dst: (FABD16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 17835*/      /*SwitchType*/ 15, MVT::v1f64,// ->17852
/* 17837*/        OPC_CheckChild1Type, MVT::v1f64,
/* 17839*/        OPC_RecordChild2, // #1 = $Rm
/* 17840*/        OPC_CheckChild2Type, MVT::v1f64,
/* 17842*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17844*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABD64), 0,
                      MVT::v1f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1f64] } 366:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 8
                  // Dst: (FABD64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 17852*/      0, // EndSwitchType
/* 17853*/    /*Scope*/ 31|128,1/*159*/, /*->18014*/
/* 17855*/      OPC_CheckChild0Integer, 118|128,1/*246*/, 
/* 17858*/      OPC_RecordChild1, // #0 = $Rn
/* 17859*/      OPC_SwitchType /*9 cases */, 15, MVT::f64,// ->17877
/* 17862*/        OPC_CheckChild1Type, MVT::f64,
/* 17864*/        OPC_RecordChild2, // #1 = $Rm
/* 17865*/        OPC_CheckChild2Type, MVT::f64,
/* 17867*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17869*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPS64), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 246:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 8
                  // Dst: (FRECPS64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 17877*/      /*SwitchType*/ 15, MVT::f32,// ->17894
/* 17879*/        OPC_CheckChild1Type, MVT::f32,
/* 17881*/        OPC_RecordChild2, // #1 = $Rm
/* 17882*/        OPC_CheckChild2Type, MVT::f32,
/* 17884*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17886*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPS32), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 246:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 8
                  // Dst: (FRECPS32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 17894*/      /*SwitchType*/ 15, MVT::f16,// ->17911
/* 17896*/        OPC_CheckChild1Type, MVT::f16,
/* 17898*/        OPC_RecordChild2, // #1 = $Rm
/* 17899*/        OPC_CheckChild2Type, MVT::f16,
/* 17901*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17903*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPS16), 0,
                      MVT::f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 246:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 8
                  // Dst: (FRECPS16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 17911*/      /*SwitchType*/ 15, MVT::v4f16,// ->17928
/* 17913*/        OPC_CheckChild1Type, MVT::v4f16,
/* 17915*/        OPC_RecordChild2, // #1 = $Rm
/* 17916*/        OPC_CheckChild2Type, MVT::v4f16,
/* 17918*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17920*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPSv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 246:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FRECPSv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 17928*/      /*SwitchType*/ 15, MVT::v8f16,// ->17945
/* 17930*/        OPC_CheckChild1Type, MVT::v8f16,
/* 17932*/        OPC_RecordChild2, // #1 = $Rm
/* 17933*/        OPC_CheckChild2Type, MVT::v8f16,
/* 17935*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 17937*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPSv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 246:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FRECPSv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 17945*/      /*SwitchType*/ 15, MVT::v2f32,// ->17962
/* 17947*/        OPC_CheckChild1Type, MVT::v2f32,
/* 17949*/        OPC_RecordChild2, // #1 = $Rm
/* 17950*/        OPC_CheckChild2Type, MVT::v2f32,
/* 17952*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17954*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPSv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 246:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FRECPSv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 17962*/      /*SwitchType*/ 15, MVT::v4f32,// ->17979
/* 17964*/        OPC_CheckChild1Type, MVT::v4f32,
/* 17966*/        OPC_RecordChild2, // #1 = $Rm
/* 17967*/        OPC_CheckChild2Type, MVT::v4f32,
/* 17969*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17971*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPSv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 246:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FRECPSv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 17979*/      /*SwitchType*/ 15, MVT::v2f64,// ->17996
/* 17981*/        OPC_CheckChild1Type, MVT::v2f64,
/* 17983*/        OPC_RecordChild2, // #1 = $Rm
/* 17984*/        OPC_CheckChild2Type, MVT::v2f64,
/* 17986*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 17988*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPSv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 246:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FRECPSv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 17996*/      /*SwitchType*/ 15, MVT::v1f64,// ->18013
/* 17998*/        OPC_CheckChild1Type, MVT::v1f64,
/* 18000*/        OPC_RecordChild2, // #1 = $Rm
/* 18001*/        OPC_CheckChild2Type, MVT::v1f64,
/* 18003*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18005*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPS64), 0,
                      MVT::v1f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1f64] } 246:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 8
                  // Dst: (FRECPS64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 18013*/      0, // EndSwitchType
/* 18014*/    /*Scope*/ 31|128,1/*159*/, /*->18175*/
/* 18016*/      OPC_CheckChild0Integer, 122|128,1/*250*/, 
/* 18019*/      OPC_RecordChild1, // #0 = $Rn
/* 18020*/      OPC_SwitchType /*9 cases */, 15, MVT::f64,// ->18038
/* 18023*/        OPC_CheckChild1Type, MVT::f64,
/* 18025*/        OPC_RecordChild2, // #1 = $Rm
/* 18026*/        OPC_CheckChild2Type, MVT::f64,
/* 18028*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18030*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTS64), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 250:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTS64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 18038*/      /*SwitchType*/ 15, MVT::f32,// ->18055
/* 18040*/        OPC_CheckChild1Type, MVT::f32,
/* 18042*/        OPC_RecordChild2, // #1 = $Rm
/* 18043*/        OPC_CheckChild2Type, MVT::f32,
/* 18045*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18047*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTS32), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 250:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTS32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 18055*/      /*SwitchType*/ 15, MVT::f16,// ->18072
/* 18057*/        OPC_CheckChild1Type, MVT::f16,
/* 18059*/        OPC_RecordChild2, // #1 = $Rm
/* 18060*/        OPC_CheckChild2Type, MVT::f16,
/* 18062*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18064*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTS16), 0,
                      MVT::f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 250:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTS16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 18072*/      /*SwitchType*/ 15, MVT::v4f16,// ->18089
/* 18074*/        OPC_CheckChild1Type, MVT::v4f16,
/* 18076*/        OPC_RecordChild2, // #1 = $Rm
/* 18077*/        OPC_CheckChild2Type, MVT::v4f16,
/* 18079*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18081*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTSv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 250:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTSv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 18089*/      /*SwitchType*/ 15, MVT::v8f16,// ->18106
/* 18091*/        OPC_CheckChild1Type, MVT::v8f16,
/* 18093*/        OPC_RecordChild2, // #1 = $Rm
/* 18094*/        OPC_CheckChild2Type, MVT::v8f16,
/* 18096*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18098*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTSv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 250:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTSv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 18106*/      /*SwitchType*/ 15, MVT::v2f32,// ->18123
/* 18108*/        OPC_CheckChild1Type, MVT::v2f32,
/* 18110*/        OPC_RecordChild2, // #1 = $Rm
/* 18111*/        OPC_CheckChild2Type, MVT::v2f32,
/* 18113*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18115*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTSv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 250:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTSv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 18123*/      /*SwitchType*/ 15, MVT::v4f32,// ->18140
/* 18125*/        OPC_CheckChild1Type, MVT::v4f32,
/* 18127*/        OPC_RecordChild2, // #1 = $Rm
/* 18128*/        OPC_CheckChild2Type, MVT::v4f32,
/* 18130*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18132*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTSv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 250:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTSv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 18140*/      /*SwitchType*/ 15, MVT::v2f64,// ->18157
/* 18142*/        OPC_CheckChild1Type, MVT::v2f64,
/* 18144*/        OPC_RecordChild2, // #1 = $Rm
/* 18145*/        OPC_CheckChild2Type, MVT::v2f64,
/* 18147*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18149*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTSv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 250:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTSv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 18157*/      /*SwitchType*/ 15, MVT::v1f64,// ->18174
/* 18159*/        OPC_CheckChild1Type, MVT::v1f64,
/* 18161*/        OPC_RecordChild2, // #1 = $Rm
/* 18162*/        OPC_CheckChild2Type, MVT::v1f64,
/* 18164*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18166*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTS64), 0,
                      MVT::v1f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1f64] } 250:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 8
                  // Dst: (FRSQRTS64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 18174*/      0, // EndSwitchType
/* 18175*/    /*Scope*/ 13, /*->18189*/
/* 18176*/      OPC_CheckChild0Integer, 111|128,2/*367*/, 
/* 18179*/      OPC_RecordChild1, // #0 = $Rn
/* 18180*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18182*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTXNv1i64), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[f32] } 367:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                // Dst: (FCVTXNv1i64:{ *:[f32] } FPR64:{ *:[f64] }:$Rn)
/* 18189*/    /*Scope*/ 115, /*->18305*/
/* 18190*/      OPC_CheckChild0Integer, 117|128,1/*245*/, 
/* 18193*/      OPC_RecordChild1, // #0 = $Rn
/* 18194*/      OPC_SwitchType /*9 cases */, 9, MVT::f16,// ->18206
/* 18197*/        OPC_CheckChild1Type, MVT::f16,
/* 18199*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv1f16), 0,
                      MVT::f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 245:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv1f16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 18206*/      /*SwitchType*/ 9, MVT::f32,// ->18217
/* 18208*/        OPC_CheckChild1Type, MVT::f32,
/* 18210*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv1i32), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 245:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv1i32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 18217*/      /*SwitchType*/ 9, MVT::f64,// ->18228
/* 18219*/        OPC_CheckChild1Type, MVT::f64,
/* 18221*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv1i64), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 245:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv1i64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 18228*/      /*SwitchType*/ 11, MVT::v4f16,// ->18241
/* 18230*/        OPC_CheckChild1Type, MVT::v4f16,
/* 18232*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18234*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv4f16), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 245:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 18241*/      /*SwitchType*/ 11, MVT::v8f16,// ->18254
/* 18243*/        OPC_CheckChild1Type, MVT::v8f16,
/* 18245*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18247*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv8f16), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 245:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 18254*/      /*SwitchType*/ 11, MVT::v2f32,// ->18267
/* 18256*/        OPC_CheckChild1Type, MVT::v2f32,
/* 18258*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18260*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv2f32), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 245:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 18267*/      /*SwitchType*/ 11, MVT::v4f32,// ->18280
/* 18269*/        OPC_CheckChild1Type, MVT::v4f32,
/* 18271*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18273*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv4f32), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 245:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 18280*/      /*SwitchType*/ 11, MVT::v2f64,// ->18293
/* 18282*/        OPC_CheckChild1Type, MVT::v2f64,
/* 18284*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18286*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv2f64), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 245:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 18293*/      /*SwitchType*/ 9, MVT::v1f64,// ->18304
/* 18295*/        OPC_CheckChild1Type, MVT::v1f64,
/* 18297*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv1i64), 0,
                      MVT::v1f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1f64] } 245:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FRECPEv1i64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn)
/* 18304*/      0, // EndSwitchType
/* 18305*/    /*Scope*/ 39, /*->18345*/
/* 18306*/      OPC_CheckChild0Integer, 119|128,1/*247*/, 
/* 18309*/      OPC_RecordChild1, // #0 = $Rn
/* 18310*/      OPC_SwitchType /*3 cases */, 9, MVT::f16,// ->18322
/* 18313*/        OPC_CheckChild1Type, MVT::f16,
/* 18315*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPXv1f16), 0,
                      MVT::f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 247:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                  // Dst: (FRECPXv1f16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 18322*/      /*SwitchType*/ 9, MVT::f32,// ->18333
/* 18324*/        OPC_CheckChild1Type, MVT::f32,
/* 18326*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPXv1i32), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 247:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                  // Dst: (FRECPXv1i32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 18333*/      /*SwitchType*/ 9, MVT::f64,// ->18344
/* 18335*/        OPC_CheckChild1Type, MVT::f64,
/* 18337*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPXv1i64), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 247:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                  // Dst: (FRECPXv1i64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 18344*/      0, // EndSwitchType
/* 18345*/    /*Scope*/ 115, /*->18461*/
/* 18346*/      OPC_CheckChild0Integer, 121|128,1/*249*/, 
/* 18349*/      OPC_RecordChild1, // #0 = $Rn
/* 18350*/      OPC_SwitchType /*9 cases */, 9, MVT::f16,// ->18362
/* 18353*/        OPC_CheckChild1Type, MVT::f16,
/* 18355*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv1f16), 0,
                      MVT::f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 249:{ *:[iPTR] }, FPR16:{ *:[f16] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv1f16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 18362*/      /*SwitchType*/ 9, MVT::f32,// ->18373
/* 18364*/        OPC_CheckChild1Type, MVT::f32,
/* 18366*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv1i32), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 249:{ *:[iPTR] }, FPR32:{ *:[f32] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv1i32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 18373*/      /*SwitchType*/ 9, MVT::f64,// ->18384
/* 18375*/        OPC_CheckChild1Type, MVT::f64,
/* 18377*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv1i64), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 249:{ *:[iPTR] }, FPR64:{ *:[f64] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv1i64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 18384*/      /*SwitchType*/ 11, MVT::v4f16,// ->18397
/* 18386*/        OPC_CheckChild1Type, MVT::v4f16,
/* 18388*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18390*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv4f16), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 249:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 18397*/      /*SwitchType*/ 11, MVT::v8f16,// ->18410
/* 18399*/        OPC_CheckChild1Type, MVT::v8f16,
/* 18401*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18403*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv8f16), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 249:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 18410*/      /*SwitchType*/ 11, MVT::v2f32,// ->18423
/* 18412*/        OPC_CheckChild1Type, MVT::v2f32,
/* 18414*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18416*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv2f32), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 249:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 18423*/      /*SwitchType*/ 11, MVT::v4f32,// ->18436
/* 18425*/        OPC_CheckChild1Type, MVT::v4f32,
/* 18427*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18429*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv4f32), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 249:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 18436*/      /*SwitchType*/ 11, MVT::v2f64,// ->18449
/* 18438*/        OPC_CheckChild1Type, MVT::v2f64,
/* 18440*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18442*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv2f64), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 249:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 18449*/      /*SwitchType*/ 9, MVT::v1f64,// ->18460
/* 18451*/        OPC_CheckChild1Type, MVT::v1f64,
/* 18453*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv1i64), 0,
                      MVT::v1f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1f64] } 249:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn) - Complexity = 8
                  // Dst: (FRSQRTEv1i64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn)
/* 18460*/      0, // EndSwitchType
/* 18461*/    /*Scope*/ 60, /*->18522*/
/* 18462*/      OPC_CheckChild0Integer, 92|128,1/*220*/, 
/* 18465*/      OPC_RecordChild1, // #0 = $Rn
/* 18466*/      OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->18510
/* 18469*/        OPC_Scope, 9, /*->18480*/ // 2 children in Scope
/* 18471*/          OPC_CheckChild1Type, MVT::v2f32,
/* 18473*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2i32p), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 220:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                    // Dst: (FADDPv2i32p:{ *:[f32] } V64:{ *:[v2f32] }:$Rn)
/* 18480*/        /*Scope*/ 28, /*->18509*/
/* 18481*/          OPC_CheckChild1Type, MVT::v4f32,
/* 18483*/          OPC_EmitNode1, TARGET_VAL(AArch64::FADDPv4f32), 0,
                        MVT::f128, 2/*#Ops*/, 0, 0,  // Results = #1
/* 18491*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 18494*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 18502*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2i32p), 0,
                        MVT::f32, 1/*#Ops*/, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 220:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                    // Dst: (FADDPv2i32p:{ *:[f32] } (EXTRACT_SUBREG:{ *:[i64] } (FADDPv4f32:{ *:[f128] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rn), dsub:{ *:[i32] }))
/* 18509*/        0, /*End of Scope*/
/* 18510*/      /*SwitchType*/ 9, MVT::f64,// ->18521
/* 18512*/        OPC_CheckChild1Type, MVT::v2f64,
/* 18514*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2i64p), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 220:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FADDPv2i64p:{ *:[f64] } V128:{ *:[v2f64] }:$Rn)
/* 18521*/      0, // EndSwitchType
/* 18522*/    /*Scope*/ 71, /*->18594*/
/* 18523*/      OPC_CheckChild0Integer, 107|128,1/*235*/, 
/* 18526*/      OPC_RecordChild1, // #0 = $Rn
/* 18527*/      OPC_SwitchType /*3 cases */, 24, MVT::f32,// ->18554
/* 18530*/        OPC_Scope, 9, /*->18541*/ // 2 children in Scope
/* 18532*/          OPC_CheckChild1Type, MVT::v2f32,
/* 18534*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMPv2i32p), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 235:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                    // Dst: (FMAXNMPv2i32p:{ *:[f32] } V64:{ *:[v2f32] }:$Rn)
/* 18541*/        /*Scope*/ 11, /*->18553*/
/* 18542*/          OPC_CheckChild1Type, MVT::v4f32,
/* 18544*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18546*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMVv4i32v), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 235:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                    // Dst: (FMAXNMVv4i32v:{ *:[f32] } V128:{ *:[v4f32] }:$Rn)
/* 18553*/        0, /*End of Scope*/
/* 18554*/      /*SwitchType*/ 9, MVT::f64,// ->18565
/* 18556*/        OPC_CheckChild1Type, MVT::v2f64,
/* 18558*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMPv2i64p), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 235:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FMAXNMPv2i64p:{ *:[f64] } V128:{ *:[v2f64] }:$Rn)
/* 18565*/      /*SwitchType*/ 26, MVT::f16,// ->18593
/* 18567*/        OPC_Scope, 11, /*->18580*/ // 2 children in Scope
/* 18569*/          OPC_CheckChild1Type, MVT::v4f16,
/* 18571*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18573*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMVv4i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 235:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                    // Dst: (FMAXNMVv4i16v:{ *:[f16] } V64:{ *:[v4f16] }:$Rn)
/* 18580*/        /*Scope*/ 11, /*->18592*/
/* 18581*/          OPC_CheckChild1Type, MVT::v8f16,
/* 18583*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18585*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 235:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                    // Dst: (FMAXNMVv8i16v:{ *:[f16] } V128:{ *:[v8f16] }:$Rn)
/* 18592*/        0, /*End of Scope*/
/* 18593*/      0, // EndSwitchType
/* 18594*/    /*Scope*/ 71, /*->18666*/
/* 18595*/      OPC_CheckChild0Integer, 109|128,1/*237*/, 
/* 18598*/      OPC_RecordChild1, // #0 = $Rn
/* 18599*/      OPC_SwitchType /*3 cases */, 24, MVT::f32,// ->18626
/* 18602*/        OPC_Scope, 9, /*->18613*/ // 2 children in Scope
/* 18604*/          OPC_CheckChild1Type, MVT::v2f32,
/* 18606*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXPv2i32p), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 237:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                    // Dst: (FMAXPv2i32p:{ *:[f32] } V64:{ *:[v2f32] }:$Rn)
/* 18613*/        /*Scope*/ 11, /*->18625*/
/* 18614*/          OPC_CheckChild1Type, MVT::v4f32,
/* 18616*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18618*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXVv4i32v), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 237:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                    // Dst: (FMAXVv4i32v:{ *:[f32] } V128:{ *:[v4f32] }:$Rn)
/* 18625*/        0, /*End of Scope*/
/* 18626*/      /*SwitchType*/ 9, MVT::f64,// ->18637
/* 18628*/        OPC_CheckChild1Type, MVT::v2f64,
/* 18630*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXPv2i64p), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 237:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FMAXPv2i64p:{ *:[f64] } V128:{ *:[v2f64] }:$Rn)
/* 18637*/      /*SwitchType*/ 26, MVT::f16,// ->18665
/* 18639*/        OPC_Scope, 11, /*->18652*/ // 2 children in Scope
/* 18641*/          OPC_CheckChild1Type, MVT::v4f16,
/* 18643*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18645*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXVv4i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 237:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                    // Dst: (FMAXVv4i16v:{ *:[f16] } V64:{ *:[v4f16] }:$Rn)
/* 18652*/        /*Scope*/ 11, /*->18664*/
/* 18653*/          OPC_CheckChild1Type, MVT::v8f16,
/* 18655*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18657*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 237:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                    // Dst: (FMAXVv8i16v:{ *:[f16] } V128:{ *:[v8f16] }:$Rn)
/* 18664*/        0, /*End of Scope*/
/* 18665*/      0, // EndSwitchType
/* 18666*/    /*Scope*/ 71, /*->18738*/
/* 18667*/      OPC_CheckChild0Integer, 113|128,1/*241*/, 
/* 18670*/      OPC_RecordChild1, // #0 = $Rn
/* 18671*/      OPC_SwitchType /*3 cases */, 24, MVT::f32,// ->18698
/* 18674*/        OPC_Scope, 9, /*->18685*/ // 2 children in Scope
/* 18676*/          OPC_CheckChild1Type, MVT::v2f32,
/* 18678*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMPv2i32p), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 241:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                    // Dst: (FMINNMPv2i32p:{ *:[f32] } V64:{ *:[v2f32] }:$Rn)
/* 18685*/        /*Scope*/ 11, /*->18697*/
/* 18686*/          OPC_CheckChild1Type, MVT::v4f32,
/* 18688*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18690*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMVv4i32v), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 241:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                    // Dst: (FMINNMVv4i32v:{ *:[f32] } V128:{ *:[v4f32] }:$Rn)
/* 18697*/        0, /*End of Scope*/
/* 18698*/      /*SwitchType*/ 9, MVT::f64,// ->18709
/* 18700*/        OPC_CheckChild1Type, MVT::v2f64,
/* 18702*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMPv2i64p), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 241:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FMINNMPv2i64p:{ *:[f64] } V128:{ *:[v2f64] }:$Rn)
/* 18709*/      /*SwitchType*/ 26, MVT::f16,// ->18737
/* 18711*/        OPC_Scope, 11, /*->18724*/ // 2 children in Scope
/* 18713*/          OPC_CheckChild1Type, MVT::v4f16,
/* 18715*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18717*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMVv4i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 241:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                    // Dst: (FMINNMVv4i16v:{ *:[f16] } V64:{ *:[v4f16] }:$Rn)
/* 18724*/        /*Scope*/ 11, /*->18736*/
/* 18725*/          OPC_CheckChild1Type, MVT::v8f16,
/* 18727*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18729*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 241:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                    // Dst: (FMINNMVv8i16v:{ *:[f16] } V128:{ *:[v8f16] }:$Rn)
/* 18736*/        0, /*End of Scope*/
/* 18737*/      0, // EndSwitchType
/* 18738*/    /*Scope*/ 71, /*->18810*/
/* 18739*/      OPC_CheckChild0Integer, 115|128,1/*243*/, 
/* 18742*/      OPC_RecordChild1, // #0 = $Rn
/* 18743*/      OPC_SwitchType /*3 cases */, 24, MVT::f32,// ->18770
/* 18746*/        OPC_Scope, 9, /*->18757*/ // 2 children in Scope
/* 18748*/          OPC_CheckChild1Type, MVT::v2f32,
/* 18750*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINPv2i32p), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 243:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn) - Complexity = 8
                    // Dst: (FMINPv2i32p:{ *:[f32] } V64:{ *:[v2f32] }:$Rn)
/* 18757*/        /*Scope*/ 11, /*->18769*/
/* 18758*/          OPC_CheckChild1Type, MVT::v4f32,
/* 18760*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18762*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINVv4i32v), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f32] } 243:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                    // Dst: (FMINVv4i32v:{ *:[f32] } V128:{ *:[v4f32] }:$Rn)
/* 18769*/        0, /*End of Scope*/
/* 18770*/      /*SwitchType*/ 9, MVT::f64,// ->18781
/* 18772*/        OPC_CheckChild1Type, MVT::v2f64,
/* 18774*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINPv2i64p), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 243:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                  // Dst: (FMINPv2i64p:{ *:[f64] } V128:{ *:[v2f64] }:$Rn)
/* 18781*/      /*SwitchType*/ 26, MVT::f16,// ->18809
/* 18783*/        OPC_Scope, 11, /*->18796*/ // 2 children in Scope
/* 18785*/          OPC_CheckChild1Type, MVT::v4f16,
/* 18787*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18789*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINVv4i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 243:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn) - Complexity = 8
                    // Dst: (FMINVv4i16v:{ *:[f16] } V64:{ *:[v4f16] }:$Rn)
/* 18796*/        /*Scope*/ 11, /*->18808*/
/* 18797*/          OPC_CheckChild1Type, MVT::v8f16,
/* 18799*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 18801*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[f16] } 243:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn) - Complexity = 8
                    // Dst: (FMINVv8i16v:{ *:[f16] } V128:{ *:[v8f16] }:$Rn)
/* 18808*/        0, /*End of Scope*/
/* 18809*/      0, // EndSwitchType
/* 18810*/    /*Scope*/ 76|128,2/*332*/, /*->19144*/
/* 18812*/      OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 18815*/      OPC_Scope, 60|128,1/*188*/, /*->19006*/ // 2 children in Scope
/* 18818*/        OPC_MoveChild1,
/* 18819*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 18822*/        OPC_RecordChild0, // #0 = $Rn
/* 18823*/        OPC_SwitchType /*3 cases */, 73, MVT::v4i16,// ->18899
/* 18826*/          OPC_CheckChild1Integer, 4, 
/* 18828*/          OPC_CheckChild1Type, MVT::i64,
/* 18830*/          OPC_MoveParent,
/* 18831*/          OPC_MoveChild2,
/* 18832*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 18835*/          OPC_Scope, 40, /*->18877*/ // 2 children in Scope
/* 18837*/            OPC_MoveChild0,
/* 18838*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 18841*/            OPC_RecordChild0, // #1 = $Rm
/* 18842*/            OPC_CheckChild0Type, MVT::v8i16,
/* 18844*/            OPC_RecordChild1, // #2 = $idx
/* 18845*/            OPC_MoveChild1,
/* 18846*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18849*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 18851*/            OPC_CheckType, MVT::i64,
/* 18853*/            OPC_MoveParent,
/* 18854*/            OPC_MoveParent,
/* 18855*/            OPC_CheckChild1Integer, 4, 
/* 18857*/            OPC_CheckChild1Type, MVT::i64,
/* 18859*/            OPC_CheckType, MVT::v4i16,
/* 18861*/            OPC_MoveParent,
/* 18862*/            OPC_CheckType, MVT::v4i32,
/* 18864*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18866*/            OPC_EmitConvertToTarget, 2,
/* 18868*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv8i16_indexed), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] })) - Complexity = 31
                      // Dst: (SMULLv8i16_indexed:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 18877*/          /*Scope*/ 20, /*->18898*/
/* 18878*/            OPC_RecordChild0, // #1 = $Rm
/* 18879*/            OPC_CheckChild1Integer, 4, 
/* 18881*/            OPC_CheckChild1Type, MVT::i64,
/* 18883*/            OPC_CheckType, MVT::v4i16,
/* 18885*/            OPC_MoveParent,
/* 18886*/            OPC_CheckType, MVT::v4i32,
/* 18888*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18890*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv8i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })) - Complexity = 24
                      // Dst: (SMULLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 18898*/          0, /*End of Scope*/
/* 18899*/        /*SwitchType*/ 73, MVT::v2i32,// ->18974
/* 18901*/          OPC_CheckChild1Integer, 2, 
/* 18903*/          OPC_CheckChild1Type, MVT::i64,
/* 18905*/          OPC_MoveParent,
/* 18906*/          OPC_MoveChild2,
/* 18907*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 18910*/          OPC_Scope, 40, /*->18952*/ // 2 children in Scope
/* 18912*/            OPC_MoveChild0,
/* 18913*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 18916*/            OPC_RecordChild0, // #1 = $Rm
/* 18917*/            OPC_CheckChild0Type, MVT::v4i32,
/* 18919*/            OPC_RecordChild1, // #2 = $idx
/* 18920*/            OPC_MoveChild1,
/* 18921*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18924*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 18926*/            OPC_CheckType, MVT::i64,
/* 18928*/            OPC_MoveParent,
/* 18929*/            OPC_MoveParent,
/* 18930*/            OPC_CheckChild1Integer, 2, 
/* 18932*/            OPC_CheckChild1Type, MVT::i64,
/* 18934*/            OPC_CheckType, MVT::v2i32,
/* 18936*/            OPC_MoveParent,
/* 18937*/            OPC_CheckType, MVT::v2i64,
/* 18939*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18941*/            OPC_EmitConvertToTarget, 2,
/* 18943*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv4i32_indexed), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] })) - Complexity = 31
                      // Dst: (SMULLv4i32_indexed:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 18952*/          /*Scope*/ 20, /*->18973*/
/* 18953*/            OPC_RecordChild0, // #1 = $Rm
/* 18954*/            OPC_CheckChild1Integer, 2, 
/* 18956*/            OPC_CheckChild1Type, MVT::i64,
/* 18958*/            OPC_CheckType, MVT::v2i32,
/* 18960*/            OPC_MoveParent,
/* 18961*/            OPC_CheckType, MVT::v2i64,
/* 18963*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18965*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv4i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })) - Complexity = 24
                      // Dst: (SMULLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 18973*/          0, /*End of Scope*/
/* 18974*/        /*SwitchType*/ 29, MVT::v8i8,// ->19005
/* 18976*/          OPC_CheckChild1Integer, 8, 
/* 18978*/          OPC_CheckChild1Type, MVT::i64,
/* 18980*/          OPC_MoveParent,
/* 18981*/          OPC_MoveChild2,
/* 18982*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 18985*/          OPC_RecordChild0, // #1 = $Rm
/* 18986*/          OPC_CheckChild1Integer, 8, 
/* 18988*/          OPC_CheckChild1Type, MVT::i64,
/* 18990*/          OPC_CheckType, MVT::v8i8,
/* 18992*/          OPC_MoveParent,
/* 18993*/          OPC_CheckType, MVT::v8i16,
/* 18995*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 18997*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })) - Complexity = 24
                    // Dst: (SMULLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 19005*/        0, // EndSwitchType
/* 19006*/      /*Scope*/ 7|128,1/*135*/, /*->19143*/
/* 19008*/        OPC_RecordChild1, // #0 = $Rn
/* 19009*/        OPC_Scope, 56, /*->19067*/ // 3 children in Scope
/* 19011*/          OPC_CheckChild1Type, MVT::v4i16,
/* 19013*/          OPC_Scope, 35, /*->19050*/ // 2 children in Scope
/* 19015*/            OPC_MoveChild2,
/* 19016*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 19019*/            OPC_RecordChild0, // #1 = $Rm
/* 19020*/            OPC_CheckChild0Type, MVT::v8i16,
/* 19022*/            OPC_RecordChild1, // #2 = $idx
/* 19023*/            OPC_MoveChild1,
/* 19024*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19027*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 19029*/            OPC_CheckType, MVT::i64,
/* 19031*/            OPC_MoveParent,
/* 19032*/            OPC_CheckType, MVT::v4i16,
/* 19034*/            OPC_MoveParent,
/* 19035*/            OPC_CheckType, MVT::v4i32,
/* 19037*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19039*/            OPC_EmitConvertToTarget, 2,
/* 19041*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv4i16_indexed), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                      // Dst: (SMULLv4i16_indexed:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19050*/          /*Scope*/ 15, /*->19066*/
/* 19051*/            OPC_RecordChild2, // #1 = $Rm
/* 19052*/            OPC_CheckChild2Type, MVT::v4i16,
/* 19054*/            OPC_CheckType, MVT::v4i32,
/* 19056*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19058*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv4i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                      // Dst: (SMULLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 19066*/          0, /*End of Scope*/
/* 19067*/        /*Scope*/ 56, /*->19124*/
/* 19068*/          OPC_CheckChild1Type, MVT::v2i32,
/* 19070*/          OPC_Scope, 35, /*->19107*/ // 2 children in Scope
/* 19072*/            OPC_MoveChild2,
/* 19073*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 19076*/            OPC_RecordChild0, // #1 = $Rm
/* 19077*/            OPC_CheckChild0Type, MVT::v4i32,
/* 19079*/            OPC_RecordChild1, // #2 = $idx
/* 19080*/            OPC_MoveChild1,
/* 19081*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19084*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 19086*/            OPC_CheckType, MVT::i64,
/* 19088*/            OPC_MoveParent,
/* 19089*/            OPC_CheckType, MVT::v2i32,
/* 19091*/            OPC_MoveParent,
/* 19092*/            OPC_CheckType, MVT::v2i64,
/* 19094*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19096*/            OPC_EmitConvertToTarget, 2,
/* 19098*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv2i32_indexed), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                      // Dst: (SMULLv2i32_indexed:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19107*/          /*Scope*/ 15, /*->19123*/
/* 19108*/            OPC_RecordChild2, // #1 = $Rm
/* 19109*/            OPC_CheckChild2Type, MVT::v2i32,
/* 19111*/            OPC_CheckType, MVT::v2i64,
/* 19113*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19115*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv2i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                      // Dst: (SMULLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 19123*/          0, /*End of Scope*/
/* 19124*/        /*Scope*/ 17, /*->19142*/
/* 19125*/          OPC_CheckChild1Type, MVT::v8i8,
/* 19127*/          OPC_RecordChild2, // #1 = $Rm
/* 19128*/          OPC_CheckChild2Type, MVT::v8i8,
/* 19130*/          OPC_CheckType, MVT::v8i16,
/* 19132*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19134*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 287:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                    // Dst: (SMULLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 19142*/        0, /*End of Scope*/
/* 19143*/      0, /*End of Scope*/
/* 19144*/    /*Scope*/ 26|128,2/*282*/, /*->19428*/
/* 19146*/      OPC_CheckChild0Integer, 35|128,2/*291*/, 
/* 19149*/      OPC_Scope, 29|128,1/*157*/, /*->19309*/ // 2 children in Scope
/* 19152*/        OPC_MoveChild1,
/* 19153*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19156*/        OPC_RecordChild0, // #0 = $Rn
/* 19157*/        OPC_SwitchType /*2 cases */, 73, MVT::v4i16,// ->19233
/* 19160*/          OPC_CheckChild1Integer, 4, 
/* 19162*/          OPC_CheckChild1Type, MVT::i64,
/* 19164*/          OPC_MoveParent,
/* 19165*/          OPC_MoveChild2,
/* 19166*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19169*/          OPC_Scope, 40, /*->19211*/ // 2 children in Scope
/* 19171*/            OPC_MoveChild0,
/* 19172*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 19175*/            OPC_RecordChild0, // #1 = $Rm
/* 19176*/            OPC_CheckChild0Type, MVT::v8i16,
/* 19178*/            OPC_RecordChild1, // #2 = $idx
/* 19179*/            OPC_MoveChild1,
/* 19180*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19183*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 19185*/            OPC_CheckType, MVT::i64,
/* 19187*/            OPC_MoveParent,
/* 19188*/            OPC_MoveParent,
/* 19189*/            OPC_CheckChild1Integer, 4, 
/* 19191*/            OPC_CheckChild1Type, MVT::i64,
/* 19193*/            OPC_CheckType, MVT::v4i16,
/* 19195*/            OPC_MoveParent,
/* 19196*/            OPC_CheckType, MVT::v4i32,
/* 19198*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19200*/            OPC_EmitConvertToTarget, 2,
/* 19202*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv8i16_indexed), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] })) - Complexity = 31
                      // Dst: (SQDMULLv8i16_indexed:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19211*/          /*Scope*/ 20, /*->19232*/
/* 19212*/            OPC_RecordChild0, // #1 = $Rm
/* 19213*/            OPC_CheckChild1Integer, 4, 
/* 19215*/            OPC_CheckChild1Type, MVT::i64,
/* 19217*/            OPC_CheckType, MVT::v4i16,
/* 19219*/            OPC_MoveParent,
/* 19220*/            OPC_CheckType, MVT::v4i32,
/* 19222*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19224*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv8i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })) - Complexity = 24
                      // Dst: (SQDMULLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 19232*/          0, /*End of Scope*/
/* 19233*/        /*SwitchType*/ 73, MVT::v2i32,// ->19308
/* 19235*/          OPC_CheckChild1Integer, 2, 
/* 19237*/          OPC_CheckChild1Type, MVT::i64,
/* 19239*/          OPC_MoveParent,
/* 19240*/          OPC_MoveChild2,
/* 19241*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19244*/          OPC_Scope, 40, /*->19286*/ // 2 children in Scope
/* 19246*/            OPC_MoveChild0,
/* 19247*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 19250*/            OPC_RecordChild0, // #1 = $Rm
/* 19251*/            OPC_CheckChild0Type, MVT::v4i32,
/* 19253*/            OPC_RecordChild1, // #2 = $idx
/* 19254*/            OPC_MoveChild1,
/* 19255*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19258*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 19260*/            OPC_CheckType, MVT::i64,
/* 19262*/            OPC_MoveParent,
/* 19263*/            OPC_MoveParent,
/* 19264*/            OPC_CheckChild1Integer, 2, 
/* 19266*/            OPC_CheckChild1Type, MVT::i64,
/* 19268*/            OPC_CheckType, MVT::v2i32,
/* 19270*/            OPC_MoveParent,
/* 19271*/            OPC_CheckType, MVT::v2i64,
/* 19273*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19275*/            OPC_EmitConvertToTarget, 2,
/* 19277*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv4i32_indexed), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] })) - Complexity = 31
                      // Dst: (SQDMULLv4i32_indexed:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19286*/          /*Scope*/ 20, /*->19307*/
/* 19287*/            OPC_RecordChild0, // #1 = $Rm
/* 19288*/            OPC_CheckChild1Integer, 2, 
/* 19290*/            OPC_CheckChild1Type, MVT::i64,
/* 19292*/            OPC_CheckType, MVT::v2i32,
/* 19294*/            OPC_MoveParent,
/* 19295*/            OPC_CheckType, MVT::v2i64,
/* 19297*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19299*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv4i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })) - Complexity = 24
                      // Dst: (SQDMULLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 19307*/          0, /*End of Scope*/
/* 19308*/        0, // EndSwitchType
/* 19309*/      /*Scope*/ 117, /*->19427*/
/* 19310*/        OPC_RecordChild1, // #0 = $Rn
/* 19311*/        OPC_Scope, 56, /*->19369*/ // 2 children in Scope
/* 19313*/          OPC_CheckChild1Type, MVT::v4i16,
/* 19315*/          OPC_Scope, 35, /*->19352*/ // 2 children in Scope
/* 19317*/            OPC_MoveChild2,
/* 19318*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 19321*/            OPC_RecordChild0, // #1 = $Rm
/* 19322*/            OPC_CheckChild0Type, MVT::v8i16,
/* 19324*/            OPC_RecordChild1, // #2 = $idx
/* 19325*/            OPC_MoveChild1,
/* 19326*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19329*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 19331*/            OPC_CheckType, MVT::i64,
/* 19333*/            OPC_MoveParent,
/* 19334*/            OPC_CheckType, MVT::v4i16,
/* 19336*/            OPC_MoveParent,
/* 19337*/            OPC_CheckType, MVT::v4i32,
/* 19339*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19341*/            OPC_EmitConvertToTarget, 2,
/* 19343*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv4i16_indexed), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                      // Dst: (SQDMULLv4i16_indexed:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19352*/          /*Scope*/ 15, /*->19368*/
/* 19353*/            OPC_RecordChild2, // #1 = $Rm
/* 19354*/            OPC_CheckChild2Type, MVT::v4i16,
/* 19356*/            OPC_CheckType, MVT::v4i32,
/* 19358*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19360*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv4i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 291:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                      // Dst: (SQDMULLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 19368*/          0, /*End of Scope*/
/* 19369*/        /*Scope*/ 56, /*->19426*/
/* 19370*/          OPC_CheckChild1Type, MVT::v2i32,
/* 19372*/          OPC_Scope, 35, /*->19409*/ // 2 children in Scope
/* 19374*/            OPC_MoveChild2,
/* 19375*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 19378*/            OPC_RecordChild0, // #1 = $Rm
/* 19379*/            OPC_CheckChild0Type, MVT::v4i32,
/* 19381*/            OPC_RecordChild1, // #2 = $idx
/* 19382*/            OPC_MoveChild1,
/* 19383*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19386*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 19388*/            OPC_CheckType, MVT::i64,
/* 19390*/            OPC_MoveParent,
/* 19391*/            OPC_CheckType, MVT::v2i32,
/* 19393*/            OPC_MoveParent,
/* 19394*/            OPC_CheckType, MVT::v2i64,
/* 19396*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19398*/            OPC_EmitConvertToTarget, 2,
/* 19400*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv2i32_indexed), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                      // Dst: (SQDMULLv2i32_indexed:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19409*/          /*Scope*/ 15, /*->19425*/
/* 19410*/            OPC_RecordChild2, // #1 = $Rm
/* 19411*/            OPC_CheckChild2Type, MVT::v2i32,
/* 19413*/            OPC_CheckType, MVT::v2i64,
/* 19415*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19417*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQDMULLv2i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 291:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                      // Dst: (SQDMULLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 19425*/          0, /*End of Scope*/
/* 19426*/        0, /*End of Scope*/
/* 19427*/      0, /*End of Scope*/
/* 19428*/    /*Scope*/ 76|128,2/*332*/, /*->19762*/
/* 19430*/      OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 19433*/      OPC_Scope, 60|128,1/*188*/, /*->19624*/ // 2 children in Scope
/* 19436*/        OPC_MoveChild1,
/* 19437*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19440*/        OPC_RecordChild0, // #0 = $Rn
/* 19441*/        OPC_SwitchType /*3 cases */, 73, MVT::v4i16,// ->19517
/* 19444*/          OPC_CheckChild1Integer, 4, 
/* 19446*/          OPC_CheckChild1Type, MVT::i64,
/* 19448*/          OPC_MoveParent,
/* 19449*/          OPC_MoveChild2,
/* 19450*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19453*/          OPC_Scope, 40, /*->19495*/ // 2 children in Scope
/* 19455*/            OPC_MoveChild0,
/* 19456*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 19459*/            OPC_RecordChild0, // #1 = $Rm
/* 19460*/            OPC_CheckChild0Type, MVT::v8i16,
/* 19462*/            OPC_RecordChild1, // #2 = $idx
/* 19463*/            OPC_MoveChild1,
/* 19464*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19467*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 19469*/            OPC_CheckType, MVT::i64,
/* 19471*/            OPC_MoveParent,
/* 19472*/            OPC_MoveParent,
/* 19473*/            OPC_CheckChild1Integer, 4, 
/* 19475*/            OPC_CheckChild1Type, MVT::i64,
/* 19477*/            OPC_CheckType, MVT::v4i16,
/* 19479*/            OPC_MoveParent,
/* 19480*/            OPC_CheckType, MVT::v4i32,
/* 19482*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19484*/            OPC_EmitConvertToTarget, 2,
/* 19486*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv8i16_indexed), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] })) - Complexity = 31
                      // Dst: (UMULLv8i16_indexed:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19495*/          /*Scope*/ 20, /*->19516*/
/* 19496*/            OPC_RecordChild0, // #1 = $Rm
/* 19497*/            OPC_CheckChild1Integer, 4, 
/* 19499*/            OPC_CheckChild1Type, MVT::i64,
/* 19501*/            OPC_CheckType, MVT::v4i16,
/* 19503*/            OPC_MoveParent,
/* 19504*/            OPC_CheckType, MVT::v4i32,
/* 19506*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19508*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv8i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })) - Complexity = 24
                      // Dst: (UMULLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 19516*/          0, /*End of Scope*/
/* 19517*/        /*SwitchType*/ 73, MVT::v2i32,// ->19592
/* 19519*/          OPC_CheckChild1Integer, 2, 
/* 19521*/          OPC_CheckChild1Type, MVT::i64,
/* 19523*/          OPC_MoveParent,
/* 19524*/          OPC_MoveChild2,
/* 19525*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19528*/          OPC_Scope, 40, /*->19570*/ // 2 children in Scope
/* 19530*/            OPC_MoveChild0,
/* 19531*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 19534*/            OPC_RecordChild0, // #1 = $Rm
/* 19535*/            OPC_CheckChild0Type, MVT::v4i32,
/* 19537*/            OPC_RecordChild1, // #2 = $idx
/* 19538*/            OPC_MoveChild1,
/* 19539*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19542*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 19544*/            OPC_CheckType, MVT::i64,
/* 19546*/            OPC_MoveParent,
/* 19547*/            OPC_MoveParent,
/* 19548*/            OPC_CheckChild1Integer, 2, 
/* 19550*/            OPC_CheckChild1Type, MVT::i64,
/* 19552*/            OPC_CheckType, MVT::v2i32,
/* 19554*/            OPC_MoveParent,
/* 19555*/            OPC_CheckType, MVT::v2i64,
/* 19557*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19559*/            OPC_EmitConvertToTarget, 2,
/* 19561*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv4i32_indexed), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] })) - Complexity = 31
                      // Dst: (UMULLv4i32_indexed:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19570*/          /*Scope*/ 20, /*->19591*/
/* 19571*/            OPC_RecordChild0, // #1 = $Rm
/* 19572*/            OPC_CheckChild1Integer, 2, 
/* 19574*/            OPC_CheckChild1Type, MVT::i64,
/* 19576*/            OPC_CheckType, MVT::v2i32,
/* 19578*/            OPC_MoveParent,
/* 19579*/            OPC_CheckType, MVT::v2i64,
/* 19581*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19583*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv4i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })) - Complexity = 24
                      // Dst: (UMULLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 19591*/          0, /*End of Scope*/
/* 19592*/        /*SwitchType*/ 29, MVT::v8i8,// ->19623
/* 19594*/          OPC_CheckChild1Integer, 8, 
/* 19596*/          OPC_CheckChild1Type, MVT::i64,
/* 19598*/          OPC_MoveParent,
/* 19599*/          OPC_MoveChild2,
/* 19600*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19603*/          OPC_RecordChild0, // #1 = $Rm
/* 19604*/          OPC_CheckChild1Integer, 8, 
/* 19606*/          OPC_CheckChild1Type, MVT::i64,
/* 19608*/          OPC_CheckType, MVT::v8i8,
/* 19610*/          OPC_MoveParent,
/* 19611*/          OPC_CheckType, MVT::v8i16,
/* 19613*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19615*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })) - Complexity = 24
                    // Dst: (UMULLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 19623*/        0, // EndSwitchType
/* 19624*/      /*Scope*/ 7|128,1/*135*/, /*->19761*/
/* 19626*/        OPC_RecordChild1, // #0 = $Rn
/* 19627*/        OPC_Scope, 56, /*->19685*/ // 3 children in Scope
/* 19629*/          OPC_CheckChild1Type, MVT::v4i16,
/* 19631*/          OPC_Scope, 35, /*->19668*/ // 2 children in Scope
/* 19633*/            OPC_MoveChild2,
/* 19634*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 19637*/            OPC_RecordChild0, // #1 = $Rm
/* 19638*/            OPC_CheckChild0Type, MVT::v8i16,
/* 19640*/            OPC_RecordChild1, // #2 = $idx
/* 19641*/            OPC_MoveChild1,
/* 19642*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19645*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 19647*/            OPC_CheckType, MVT::i64,
/* 19649*/            OPC_MoveParent,
/* 19650*/            OPC_CheckType, MVT::v4i16,
/* 19652*/            OPC_MoveParent,
/* 19653*/            OPC_CheckType, MVT::v4i32,
/* 19655*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19657*/            OPC_EmitConvertToTarget, 2,
/* 19659*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv4i16_indexed), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 15
                      // Dst: (UMULLv4i16_indexed:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19668*/          /*Scope*/ 15, /*->19684*/
/* 19669*/            OPC_RecordChild2, // #1 = $Rm
/* 19670*/            OPC_CheckChild2Type, MVT::v4i16,
/* 19672*/            OPC_CheckType, MVT::v4i32,
/* 19674*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19676*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv4i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                      // Dst: (UMULLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 19684*/          0, /*End of Scope*/
/* 19685*/        /*Scope*/ 56, /*->19742*/
/* 19686*/          OPC_CheckChild1Type, MVT::v2i32,
/* 19688*/          OPC_Scope, 35, /*->19725*/ // 2 children in Scope
/* 19690*/            OPC_MoveChild2,
/* 19691*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 19694*/            OPC_RecordChild0, // #1 = $Rm
/* 19695*/            OPC_CheckChild0Type, MVT::v4i32,
/* 19697*/            OPC_RecordChild1, // #2 = $idx
/* 19698*/            OPC_MoveChild1,
/* 19699*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19702*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 19704*/            OPC_CheckType, MVT::i64,
/* 19706*/            OPC_MoveParent,
/* 19707*/            OPC_CheckType, MVT::v2i32,
/* 19709*/            OPC_MoveParent,
/* 19710*/            OPC_CheckType, MVT::v2i64,
/* 19712*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19714*/            OPC_EmitConvertToTarget, 2,
/* 19716*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv2i32_indexed), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 15
                      // Dst: (UMULLv2i32_indexed:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19725*/          /*Scope*/ 15, /*->19741*/
/* 19726*/            OPC_RecordChild2, // #1 = $Rm
/* 19727*/            OPC_CheckChild2Type, MVT::v2i32,
/* 19729*/            OPC_CheckType, MVT::v2i64,
/* 19731*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19733*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv2i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                      // Dst: (UMULLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 19741*/          0, /*End of Scope*/
/* 19742*/        /*Scope*/ 17, /*->19760*/
/* 19743*/          OPC_CheckChild1Type, MVT::v8i8,
/* 19745*/          OPC_RecordChild2, // #1 = $Rm
/* 19746*/          OPC_CheckChild2Type, MVT::v8i8,
/* 19748*/          OPC_CheckType, MVT::v8i16,
/* 19750*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19752*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 341:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                    // Dst: (UMULLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 19760*/        0, /*End of Scope*/
/* 19761*/      0, /*End of Scope*/
/* 19762*/    /*Scope*/ 61, /*->19824*/
/* 19763*/      OPC_CheckChild0Integer, 8|128,2/*264*/, 
/* 19766*/      OPC_Scope, 36, /*->19804*/ // 2 children in Scope
/* 19768*/        OPC_MoveChild1,
/* 19769*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19772*/        OPC_RecordChild0, // #0 = $Rn
/* 19773*/        OPC_CheckChild1Integer, 8, 
/* 19775*/        OPC_CheckChild1Type, MVT::i64,
/* 19777*/        OPC_CheckType, MVT::v8i8,
/* 19779*/        OPC_MoveParent,
/* 19780*/        OPC_MoveChild2,
/* 19781*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 19784*/        OPC_RecordChild0, // #1 = $Rm
/* 19785*/        OPC_CheckChild1Integer, 8, 
/* 19787*/        OPC_CheckChild1Type, MVT::i64,
/* 19789*/        OPC_CheckType, MVT::v8i8,
/* 19791*/        OPC_MoveParent,
/* 19792*/        OPC_CheckType, MVT::v8i16,
/* 19794*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19796*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::PMULLv16i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 264:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })) - Complexity = 24
                  // Dst: (PMULLv16i8:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 19804*/      /*Scope*/ 18, /*->19823*/
/* 19805*/        OPC_RecordChild1, // #0 = $Rn
/* 19806*/        OPC_CheckChild1Type, MVT::v8i8,
/* 19808*/        OPC_RecordChild2, // #1 = $Rm
/* 19809*/        OPC_CheckChild2Type, MVT::v8i8,
/* 19811*/        OPC_CheckType, MVT::v8i16,
/* 19813*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 19815*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::PMULLv8i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 264:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (PMULLv8i8:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 19823*/      0, /*End of Scope*/
/* 19824*/    /*Scope*/ 49, /*->19874*/
/* 19825*/      OPC_CheckChild0Integer, 9|128,2/*265*/, 
/* 19828*/      OPC_Scope, 32, /*->19862*/ // 2 children in Scope
/* 19830*/        OPC_MoveChild1,
/* 19831*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 19834*/        OPC_RecordChild0, // #0 = $Rn
/* 19835*/        OPC_CheckChild0Type, MVT::v2i64,
/* 19837*/        OPC_CheckChild1Integer, 1, 
/* 19839*/        OPC_CheckChild1Type, MVT::i64,
/* 19841*/        OPC_MoveParent,
/* 19842*/        OPC_MoveChild2,
/* 19843*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 19846*/        OPC_RecordChild0, // #1 = $Rm
/* 19847*/        OPC_CheckChild0Type, MVT::v2i64,
/* 19849*/        OPC_CheckChild1Integer, 1, 
/* 19851*/        OPC_CheckChild1Type, MVT::i64,
/* 19853*/        OPC_MoveParent,
/* 19854*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::PMULLv2i64), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 265:{ *:[iPTR] }, (extractelt:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, 1:{ *:[i64] }), (extractelt:{ *:[i64] } V128:{ *:[v2i64] }:$Rm, 1:{ *:[i64] })) - Complexity = 24
                  // Dst: (PMULLv2i64:{ *:[v16i8] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 19862*/      /*Scope*/ 10, /*->19873*/
/* 19863*/        OPC_RecordChild1, // #0 = $Rn
/* 19864*/        OPC_RecordChild2, // #1 = $Rm
/* 19865*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::PMULLv1i64), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 265:{ *:[iPTR] }, V64:{ *:[i64] }:$Rn, V64:{ *:[i64] }:$Rm) - Complexity = 8
                  // Dst: (PMULLv1i64:{ *:[v16i8] } V64:{ *:[i64] }:$Rn, V64:{ *:[i64] }:$Rm)
/* 19873*/      0, /*End of Scope*/
/* 19874*/    /*Scope*/ 16|128,1/*144*/, /*->20020*/
/* 19876*/      OPC_CheckChild0Integer, 21|128,2/*277*/, 
/* 19879*/      OPC_RecordChild1, // #0 = $Rd
/* 19880*/      OPC_Scope, 68, /*->19950*/ // 2 children in Scope
/* 19882*/        OPC_CheckChild1Type, MVT::v2i32,
/* 19884*/        OPC_RecordChild2, // #1 = $Rn
/* 19885*/        OPC_CheckChild2Type, MVT::v8i8,
/* 19887*/        OPC_Scope, 43, /*->19932*/ // 2 children in Scope
/* 19889*/          OPC_MoveChild3,
/* 19890*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 19893*/          OPC_MoveChild0,
/* 19894*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 19897*/          OPC_RecordChild0, // #2 = $Rm
/* 19898*/          OPC_CheckChild0Type, MVT::v4i32,
/* 19900*/          OPC_RecordChild1, // #3 = $idx
/* 19901*/          OPC_MoveChild1,
/* 19902*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19905*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 19907*/          OPC_CheckType, MVT::i64,
/* 19909*/          OPC_MoveParent,
/* 19910*/          OPC_CheckType, MVT::v2i32,
/* 19912*/          OPC_MoveParent,
/* 19913*/          OPC_CheckType, MVT::v8i8,
/* 19915*/          OPC_MoveParent,
/* 19916*/          OPC_CheckType, MVT::v2i32,
/* 19918*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasDotProd())
/* 19920*/          OPC_EmitConvertToTarget, 3,
/* 19922*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SDOTlanev8i8), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 277:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, V64:{ *:[v8i8] }:$Rn, (bitconvert:{ *:[v8i8] } (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 18
                    // Dst: (SDOTlanev8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v8i8] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 19932*/        /*Scope*/ 16, /*->19949*/
/* 19933*/          OPC_RecordChild3, // #2 = $Rm
/* 19934*/          OPC_CheckChild3Type, MVT::v8i8,
/* 19936*/          OPC_CheckType, MVT::v2i32,
/* 19938*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasDotProd())
/* 19940*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SDOTv8i8), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 277:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                    // Dst: (SDOTv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 19949*/        0, /*End of Scope*/
/* 19950*/      /*Scope*/ 68, /*->20019*/
/* 19951*/        OPC_CheckChild1Type, MVT::v4i32,
/* 19953*/        OPC_RecordChild2, // #1 = $Rn
/* 19954*/        OPC_CheckChild2Type, MVT::v16i8,
/* 19956*/        OPC_Scope, 43, /*->20001*/ // 2 children in Scope
/* 19958*/          OPC_MoveChild3,
/* 19959*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 19962*/          OPC_MoveChild0,
/* 19963*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 19966*/          OPC_RecordChild0, // #2 = $Rm
/* 19967*/          OPC_CheckChild0Type, MVT::v4i32,
/* 19969*/          OPC_RecordChild1, // #3 = $idx
/* 19970*/          OPC_MoveChild1,
/* 19971*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19974*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 19976*/          OPC_CheckType, MVT::i64,
/* 19978*/          OPC_MoveParent,
/* 19979*/          OPC_CheckType, MVT::v4i32,
/* 19981*/          OPC_MoveParent,
/* 19982*/          OPC_CheckType, MVT::v16i8,
/* 19984*/          OPC_MoveParent,
/* 19985*/          OPC_CheckType, MVT::v4i32,
/* 19987*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasDotProd())
/* 19989*/          OPC_EmitConvertToTarget, 3,
/* 19991*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SDOTlanev16i8), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 277:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v16i8] }:$Rn, (bitconvert:{ *:[v16i8] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 18
                    // Dst: (SDOTlanev16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 20001*/        /*Scope*/ 16, /*->20018*/
/* 20002*/          OPC_RecordChild3, // #2 = $Rm
/* 20003*/          OPC_CheckChild3Type, MVT::v16i8,
/* 20005*/          OPC_CheckType, MVT::v4i32,
/* 20007*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasDotProd())
/* 20009*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SDOTv16i8), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 277:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                    // Dst: (SDOTv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 20018*/        0, /*End of Scope*/
/* 20019*/      0, /*End of Scope*/
/* 20020*/    /*Scope*/ 16|128,1/*144*/, /*->20166*/
/* 20022*/      OPC_CheckChild0Integer, 76|128,2/*332*/, 
/* 20025*/      OPC_RecordChild1, // #0 = $Rd
/* 20026*/      OPC_Scope, 68, /*->20096*/ // 2 children in Scope
/* 20028*/        OPC_CheckChild1Type, MVT::v2i32,
/* 20030*/        OPC_RecordChild2, // #1 = $Rn
/* 20031*/        OPC_CheckChild2Type, MVT::v8i8,
/* 20033*/        OPC_Scope, 43, /*->20078*/ // 2 children in Scope
/* 20035*/          OPC_MoveChild3,
/* 20036*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20039*/          OPC_MoveChild0,
/* 20040*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 20043*/          OPC_RecordChild0, // #2 = $Rm
/* 20044*/          OPC_CheckChild0Type, MVT::v4i32,
/* 20046*/          OPC_RecordChild1, // #3 = $idx
/* 20047*/          OPC_MoveChild1,
/* 20048*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20051*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 20053*/          OPC_CheckType, MVT::i64,
/* 20055*/          OPC_MoveParent,
/* 20056*/          OPC_CheckType, MVT::v2i32,
/* 20058*/          OPC_MoveParent,
/* 20059*/          OPC_CheckType, MVT::v8i8,
/* 20061*/          OPC_MoveParent,
/* 20062*/          OPC_CheckType, MVT::v2i32,
/* 20064*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasDotProd())
/* 20066*/          OPC_EmitConvertToTarget, 3,
/* 20068*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UDOTlanev8i8), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 332:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, V64:{ *:[v8i8] }:$Rn, (bitconvert:{ *:[v8i8] } (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 18
                    // Dst: (UDOTlanev8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v8i8] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 20078*/        /*Scope*/ 16, /*->20095*/
/* 20079*/          OPC_RecordChild3, // #2 = $Rm
/* 20080*/          OPC_CheckChild3Type, MVT::v8i8,
/* 20082*/          OPC_CheckType, MVT::v2i32,
/* 20084*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasDotProd())
/* 20086*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UDOTv8i8), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 332:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                    // Dst: (UDOTv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 20095*/        0, /*End of Scope*/
/* 20096*/      /*Scope*/ 68, /*->20165*/
/* 20097*/        OPC_CheckChild1Type, MVT::v4i32,
/* 20099*/        OPC_RecordChild2, // #1 = $Rn
/* 20100*/        OPC_CheckChild2Type, MVT::v16i8,
/* 20102*/        OPC_Scope, 43, /*->20147*/ // 2 children in Scope
/* 20104*/          OPC_MoveChild3,
/* 20105*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20108*/          OPC_MoveChild0,
/* 20109*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 20112*/          OPC_RecordChild0, // #2 = $Rm
/* 20113*/          OPC_CheckChild0Type, MVT::v4i32,
/* 20115*/          OPC_RecordChild1, // #3 = $idx
/* 20116*/          OPC_MoveChild1,
/* 20117*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20120*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 20122*/          OPC_CheckType, MVT::i64,
/* 20124*/          OPC_MoveParent,
/* 20125*/          OPC_CheckType, MVT::v4i32,
/* 20127*/          OPC_MoveParent,
/* 20128*/          OPC_CheckType, MVT::v16i8,
/* 20130*/          OPC_MoveParent,
/* 20131*/          OPC_CheckType, MVT::v4i32,
/* 20133*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasDotProd())
/* 20135*/          OPC_EmitConvertToTarget, 3,
/* 20137*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UDOTlanev16i8), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 332:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v16i8] }:$Rn, (bitconvert:{ *:[v16i8] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 18
                    // Dst: (UDOTlanev16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 20147*/        /*Scope*/ 16, /*->20164*/
/* 20148*/          OPC_RecordChild3, // #2 = $Rm
/* 20149*/          OPC_CheckChild3Type, MVT::v16i8,
/* 20151*/          OPC_CheckType, MVT::v4i32,
/* 20153*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasDotProd())
/* 20155*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UDOTv16i8), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 332:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                    // Dst: (UDOTv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 20164*/        0, /*End of Scope*/
/* 20165*/      0, /*End of Scope*/
/* 20166*/    /*Scope*/ 30|128,1/*158*/, /*->20326*/
/* 20168*/      OPC_CheckChild0Integer, 100|128,2/*356*/, 
/* 20171*/      OPC_RecordChild1, // #0 = $Vd
/* 20172*/      OPC_Scope, 37, /*->20211*/ // 4 children in Scope
/* 20174*/        OPC_CheckChild1Type, MVT::v16i8,
/* 20176*/        OPC_RecordChild2, // #1 = $idx
/* 20177*/        OPC_MoveChild2,
/* 20178*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20181*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 20183*/        OPC_MoveParent,
/* 20184*/        OPC_RecordChild3, // #2 = $Vs
/* 20185*/        OPC_CheckChild3Type, MVT::v16i8,
/* 20187*/        OPC_RecordChild4, // #3 = $idx2
/* 20188*/        OPC_MoveChild4,
/* 20189*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20192*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 20194*/        OPC_MoveParent,
/* 20195*/        OPC_CheckType, MVT::v16i8,
/* 20197*/        OPC_EmitConvertToTarget, 1,
/* 20199*/        OPC_EmitConvertToTarget, 3,
/* 20201*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi8lane), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 4, 2, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 356:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Vd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, V128:{ *:[v16i8] }:$Vs, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx2) - Complexity = 16
                  // Dst: (INSvi8lane:{ *:[v16i8] } V128:{ *:[v16i8] }:$Vd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, V128:{ *:[v16i8] }:$Vs, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx2)
/* 20211*/      /*Scope*/ 37, /*->20249*/
/* 20212*/        OPC_CheckChild1Type, MVT::v8i16,
/* 20214*/        OPC_RecordChild2, // #1 = $idx
/* 20215*/        OPC_MoveChild2,
/* 20216*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20219*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 20221*/        OPC_MoveParent,
/* 20222*/        OPC_RecordChild3, // #2 = $Vs
/* 20223*/        OPC_CheckChild3Type, MVT::v8i16,
/* 20225*/        OPC_RecordChild4, // #3 = $idx2
/* 20226*/        OPC_MoveChild4,
/* 20227*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20230*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 20232*/        OPC_MoveParent,
/* 20233*/        OPC_CheckType, MVT::v8i16,
/* 20235*/        OPC_EmitConvertToTarget, 1,
/* 20237*/        OPC_EmitConvertToTarget, 3,
/* 20239*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi16lane), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 4, 2, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 356:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Vd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, V128:{ *:[v8i16] }:$Vs, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx2) - Complexity = 16
                  // Dst: (INSvi16lane:{ *:[v8i16] } V128:{ *:[v8i16] }:$Vd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, V128:{ *:[v8i16] }:$Vs, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx2)
/* 20249*/      /*Scope*/ 37, /*->20287*/
/* 20250*/        OPC_CheckChild1Type, MVT::v4i32,
/* 20252*/        OPC_RecordChild2, // #1 = $idx
/* 20253*/        OPC_MoveChild2,
/* 20254*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20257*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 20259*/        OPC_MoveParent,
/* 20260*/        OPC_RecordChild3, // #2 = $Vs
/* 20261*/        OPC_CheckChild3Type, MVT::v4i32,
/* 20263*/        OPC_RecordChild4, // #3 = $idx2
/* 20264*/        OPC_MoveChild4,
/* 20265*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20268*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 20270*/        OPC_MoveParent,
/* 20271*/        OPC_CheckType, MVT::v4i32,
/* 20273*/        OPC_EmitConvertToTarget, 1,
/* 20275*/        OPC_EmitConvertToTarget, 3,
/* 20277*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi32lane), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 4, 2, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 356:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Vd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, V128:{ *:[v4i32] }:$Vs, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx2) - Complexity = 16
                  // Dst: (INSvi32lane:{ *:[v4i32] } V128:{ *:[v4i32] }:$Vd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, V128:{ *:[v4i32] }:$Vs, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx2)
/* 20287*/      /*Scope*/ 37, /*->20325*/
/* 20288*/        OPC_CheckChild1Type, MVT::v2i64,
/* 20290*/        OPC_RecordChild2, // #1 = $idx
/* 20291*/        OPC_MoveChild2,
/* 20292*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20295*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 20297*/        OPC_MoveParent,
/* 20298*/        OPC_RecordChild3, // #2 = $Vs
/* 20299*/        OPC_CheckChild3Type, MVT::v2i64,
/* 20301*/        OPC_RecordChild4, // #3 = $idx2
/* 20302*/        OPC_MoveChild4,
/* 20303*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20306*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 20308*/        OPC_MoveParent,
/* 20309*/        OPC_CheckType, MVT::v2i64,
/* 20311*/        OPC_EmitConvertToTarget, 1,
/* 20313*/        OPC_EmitConvertToTarget, 3,
/* 20315*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 4, 2, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 356:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Vd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, V128:{ *:[v2i64] }:$Vs, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx2) - Complexity = 16
                  // Dst: (INSvi64lane:{ *:[v2i64] } V128:{ *:[v2i64] }:$Vd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, V128:{ *:[v2i64] }:$Vs, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx2)
/* 20325*/      0, /*End of Scope*/
/* 20326*/    /*Scope*/ 44, /*->20371*/
/* 20327*/      OPC_CheckChild0Integer, 65|128,1/*193*/, 
/* 20330*/      OPC_Scope, 27, /*->20359*/ // 2 children in Scope
/* 20332*/        OPC_MoveChild1,
/* 20333*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 20336*/        OPC_CheckChild0Integer, 63|128,1/*191*/, 
/* 20339*/        OPC_RecordChild1, // #0 = $src1
/* 20340*/        OPC_RecordChild2, // #1 = $src2
/* 20341*/        OPC_MoveParent,
/* 20342*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasFuseAES())
/* 20344*/        OPC_EmitNode1, TARGET_VAL(AArch64::AESErr), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20352*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::AESMCrrTied), 0,
                      MVT::v16i8, 1/*#Ops*/, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 193:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v16i8] } 191:{ *:[iPTR] }, V128:{ *:[v16i8] }:$src1, V128:{ *:[v16i8] }:$src2)) - Complexity = 16
                  // Dst: (AESMCrrTied:{ *:[v16i8] } (AESErr:{ *:[v16i8] } V128:{ *:[v16i8] }:$src1, V128:{ *:[v16i8] }:$src2))
/* 20359*/      /*Scope*/ 10, /*->20370*/
/* 20360*/        OPC_RecordChild1, // #0 = $Rn
/* 20361*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasAES())
/* 20363*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::AESMCrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 193:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (AESMCrr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 20370*/      0, /*End of Scope*/
/* 20371*/    /*Scope*/ 44, /*->20416*/
/* 20372*/      OPC_CheckChild0Integer, 64|128,1/*192*/, 
/* 20375*/      OPC_Scope, 27, /*->20404*/ // 2 children in Scope
/* 20377*/        OPC_MoveChild1,
/* 20378*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 20381*/        OPC_CheckChild0Integer, 62|128,1/*190*/, 
/* 20384*/        OPC_RecordChild1, // #0 = $src1
/* 20385*/        OPC_RecordChild2, // #1 = $src2
/* 20386*/        OPC_MoveParent,
/* 20387*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasFuseAES())
/* 20389*/        OPC_EmitNode1, TARGET_VAL(AArch64::AESDrr), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20397*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::AESIMCrrTied), 0,
                      MVT::v16i8, 1/*#Ops*/, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 192:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[v16i8] } 190:{ *:[iPTR] }, V128:{ *:[v16i8] }:$src1, V128:{ *:[v16i8] }:$src2)) - Complexity = 16
                  // Dst: (AESIMCrrTied:{ *:[v16i8] } (AESDrr:{ *:[v16i8] } V128:{ *:[v16i8] }:$src1, V128:{ *:[v16i8] }:$src2))
/* 20404*/      /*Scope*/ 10, /*->20415*/
/* 20405*/        OPC_RecordChild1, // #0 = $Rn
/* 20406*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasAES())
/* 20408*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::AESIMCrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 192:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (AESIMCrr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 20415*/      0, /*End of Scope*/
/* 20416*/    /*Scope*/ 81, /*->20498*/
/* 20417*/      OPC_CheckChild0Integer, 12|128,2/*268*/, 
/* 20420*/      OPC_RecordChild1, // #0 = $Rn
/* 20421*/      OPC_Scope, 24, /*->20447*/ // 3 children in Scope
/* 20423*/        OPC_CheckChild1Type, MVT::v8i16,
/* 20425*/        OPC_RecordChild2, // #1 = $imm
/* 20426*/        OPC_MoveChild2,
/* 20427*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20430*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 20432*/        OPC_MoveParent,
/* 20433*/        OPC_CheckType, MVT::v8i8,
/* 20435*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20437*/        OPC_EmitConvertToTarget, 1,
/* 20439*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSHRNv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 268:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm) - Complexity = 12
                  // Dst: (RSHRNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20447*/      /*Scope*/ 24, /*->20472*/
/* 20448*/        OPC_CheckChild1Type, MVT::v4i32,
/* 20450*/        OPC_RecordChild2, // #1 = $imm
/* 20451*/        OPC_MoveChild2,
/* 20452*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20455*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 20457*/        OPC_MoveParent,
/* 20458*/        OPC_CheckType, MVT::v4i16,
/* 20460*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20462*/        OPC_EmitConvertToTarget, 1,
/* 20464*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSHRNv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 268:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm) - Complexity = 12
                  // Dst: (RSHRNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20472*/      /*Scope*/ 24, /*->20497*/
/* 20473*/        OPC_CheckChild1Type, MVT::v2i64,
/* 20475*/        OPC_RecordChild2, // #1 = $imm
/* 20476*/        OPC_MoveChild2,
/* 20477*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20480*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 20482*/        OPC_MoveParent,
/* 20483*/        OPC_CheckType, MVT::v2i32,
/* 20485*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20487*/        OPC_EmitConvertToTarget, 1,
/* 20489*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSHRNv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 268:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm) - Complexity = 12
                  // Dst: (RSHRNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20497*/      0, /*End of Scope*/
/* 20498*/    /*Scope*/ 108|128,1/*236*/, /*->20736*/
/* 20500*/      OPC_CheckChild0Integer, 107|128,2/*363*/, 
/* 20503*/      OPC_RecordChild1, // #0 = $Rd
/* 20504*/      OPC_Scope, 28, /*->20534*/ // 8 children in Scope
/* 20506*/        OPC_CheckChild1Type, MVT::v8i8,
/* 20508*/        OPC_RecordChild2, // #1 = $Rn
/* 20509*/        OPC_CheckChild2Type, MVT::v8i8,
/* 20511*/        OPC_RecordChild3, // #2 = $imm
/* 20512*/        OPC_MoveChild3,
/* 20513*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20516*/        OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 20518*/        OPC_MoveParent,
/* 20519*/        OPC_CheckType, MVT::v8i8,
/* 20521*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20523*/        OPC_EmitConvertToTarget, 2,
/* 20525*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SLIv8i8_shift), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 363:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 12
                  // Dst: (SLIv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20534*/      /*Scope*/ 28, /*->20563*/
/* 20535*/        OPC_CheckChild1Type, MVT::v16i8,
/* 20537*/        OPC_RecordChild2, // #1 = $Rn
/* 20538*/        OPC_CheckChild2Type, MVT::v16i8,
/* 20540*/        OPC_RecordChild3, // #2 = $imm
/* 20541*/        OPC_MoveChild3,
/* 20542*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20545*/        OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 20547*/        OPC_MoveParent,
/* 20548*/        OPC_CheckType, MVT::v16i8,
/* 20550*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20552*/        OPC_EmitConvertToTarget, 2,
/* 20554*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SLIv16i8_shift), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 363:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 12
                  // Dst: (SLIv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20563*/      /*Scope*/ 28, /*->20592*/
/* 20564*/        OPC_CheckChild1Type, MVT::v4i16,
/* 20566*/        OPC_RecordChild2, // #1 = $Rn
/* 20567*/        OPC_CheckChild2Type, MVT::v4i16,
/* 20569*/        OPC_RecordChild3, // #2 = $imm
/* 20570*/        OPC_MoveChild3,
/* 20571*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20574*/        OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 20576*/        OPC_MoveParent,
/* 20577*/        OPC_CheckType, MVT::v4i16,
/* 20579*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20581*/        OPC_EmitConvertToTarget, 2,
/* 20583*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SLIv4i16_shift), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 363:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 12
                  // Dst: (SLIv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20592*/      /*Scope*/ 28, /*->20621*/
/* 20593*/        OPC_CheckChild1Type, MVT::v8i16,
/* 20595*/        OPC_RecordChild2, // #1 = $Rn
/* 20596*/        OPC_CheckChild2Type, MVT::v8i16,
/* 20598*/        OPC_RecordChild3, // #2 = $imm
/* 20599*/        OPC_MoveChild3,
/* 20600*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20603*/        OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 20605*/        OPC_MoveParent,
/* 20606*/        OPC_CheckType, MVT::v8i16,
/* 20608*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20610*/        OPC_EmitConvertToTarget, 2,
/* 20612*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SLIv8i16_shift), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 363:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 12
                  // Dst: (SLIv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20621*/      /*Scope*/ 28, /*->20650*/
/* 20622*/        OPC_CheckChild1Type, MVT::v2i32,
/* 20624*/        OPC_RecordChild2, // #1 = $Rn
/* 20625*/        OPC_CheckChild2Type, MVT::v2i32,
/* 20627*/        OPC_RecordChild3, // #2 = $imm
/* 20628*/        OPC_MoveChild3,
/* 20629*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20632*/        OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 20634*/        OPC_MoveParent,
/* 20635*/        OPC_CheckType, MVT::v2i32,
/* 20637*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20639*/        OPC_EmitConvertToTarget, 2,
/* 20641*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SLIv2i32_shift), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 363:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 12
                  // Dst: (SLIv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20650*/      /*Scope*/ 28, /*->20679*/
/* 20651*/        OPC_CheckChild1Type, MVT::v4i32,
/* 20653*/        OPC_RecordChild2, // #1 = $Rn
/* 20654*/        OPC_CheckChild2Type, MVT::v4i32,
/* 20656*/        OPC_RecordChild3, // #2 = $imm
/* 20657*/        OPC_MoveChild3,
/* 20658*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20661*/        OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 20663*/        OPC_MoveParent,
/* 20664*/        OPC_CheckType, MVT::v4i32,
/* 20666*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20668*/        OPC_EmitConvertToTarget, 2,
/* 20670*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SLIv4i32_shift), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 363:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 12
                  // Dst: (SLIv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20679*/      /*Scope*/ 28, /*->20708*/
/* 20680*/        OPC_CheckChild1Type, MVT::v2i64,
/* 20682*/        OPC_RecordChild2, // #1 = $Rn
/* 20683*/        OPC_CheckChild2Type, MVT::v2i64,
/* 20685*/        OPC_RecordChild3, // #2 = $imm
/* 20686*/        OPC_MoveChild3,
/* 20687*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20690*/        OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 20692*/        OPC_MoveParent,
/* 20693*/        OPC_CheckType, MVT::v2i64,
/* 20695*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20697*/        OPC_EmitConvertToTarget, 2,
/* 20699*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SLIv2i64_shift), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 363:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 12
                  // Dst: (SLIv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20708*/      /*Scope*/ 26, /*->20735*/
/* 20709*/        OPC_CheckChild1Type, MVT::v1i64,
/* 20711*/        OPC_RecordChild2, // #1 = $Rn
/* 20712*/        OPC_CheckChild2Type, MVT::v1i64,
/* 20714*/        OPC_RecordChild3, // #2 = $imm
/* 20715*/        OPC_MoveChild3,
/* 20716*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20719*/        OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 20721*/        OPC_MoveParent,
/* 20722*/        OPC_CheckType, MVT::v1i64,
/* 20724*/        OPC_EmitConvertToTarget, 2,
/* 20726*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SLId), 0,
                      MVT::v1i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 363:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 12
                  // Dst: (SLId:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm)
/* 20735*/      0, /*End of Scope*/
/* 20736*/    /*Scope*/ 108|128,1/*236*/, /*->20974*/
/* 20738*/      OPC_CheckChild0Integer, 108|128,2/*364*/, 
/* 20741*/      OPC_RecordChild1, // #0 = $Rd
/* 20742*/      OPC_Scope, 28, /*->20772*/ // 8 children in Scope
/* 20744*/        OPC_CheckChild1Type, MVT::v8i8,
/* 20746*/        OPC_RecordChild2, // #1 = $Rn
/* 20747*/        OPC_CheckChild2Type, MVT::v8i8,
/* 20749*/        OPC_RecordChild3, // #2 = $imm
/* 20750*/        OPC_MoveChild3,
/* 20751*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20754*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 20756*/        OPC_MoveParent,
/* 20757*/        OPC_CheckType, MVT::v8i8,
/* 20759*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20761*/        OPC_EmitConvertToTarget, 2,
/* 20763*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRIv8i8_shift), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 364:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 12
                  // Dst: (SRIv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20772*/      /*Scope*/ 28, /*->20801*/
/* 20773*/        OPC_CheckChild1Type, MVT::v16i8,
/* 20775*/        OPC_RecordChild2, // #1 = $Rn
/* 20776*/        OPC_CheckChild2Type, MVT::v16i8,
/* 20778*/        OPC_RecordChild3, // #2 = $imm
/* 20779*/        OPC_MoveChild3,
/* 20780*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20783*/        OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 20785*/        OPC_MoveParent,
/* 20786*/        OPC_CheckType, MVT::v16i8,
/* 20788*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20790*/        OPC_EmitConvertToTarget, 2,
/* 20792*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRIv16i8_shift), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 364:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 12
                  // Dst: (SRIv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20801*/      /*Scope*/ 28, /*->20830*/
/* 20802*/        OPC_CheckChild1Type, MVT::v4i16,
/* 20804*/        OPC_RecordChild2, // #1 = $Rn
/* 20805*/        OPC_CheckChild2Type, MVT::v4i16,
/* 20807*/        OPC_RecordChild3, // #2 = $imm
/* 20808*/        OPC_MoveChild3,
/* 20809*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20812*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 20814*/        OPC_MoveParent,
/* 20815*/        OPC_CheckType, MVT::v4i16,
/* 20817*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20819*/        OPC_EmitConvertToTarget, 2,
/* 20821*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRIv4i16_shift), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 364:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 12
                  // Dst: (SRIv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20830*/      /*Scope*/ 28, /*->20859*/
/* 20831*/        OPC_CheckChild1Type, MVT::v8i16,
/* 20833*/        OPC_RecordChild2, // #1 = $Rn
/* 20834*/        OPC_CheckChild2Type, MVT::v8i16,
/* 20836*/        OPC_RecordChild3, // #2 = $imm
/* 20837*/        OPC_MoveChild3,
/* 20838*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20841*/        OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 20843*/        OPC_MoveParent,
/* 20844*/        OPC_CheckType, MVT::v8i16,
/* 20846*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20848*/        OPC_EmitConvertToTarget, 2,
/* 20850*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRIv8i16_shift), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 364:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 12
                  // Dst: (SRIv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20859*/      /*Scope*/ 28, /*->20888*/
/* 20860*/        OPC_CheckChild1Type, MVT::v2i32,
/* 20862*/        OPC_RecordChild2, // #1 = $Rn
/* 20863*/        OPC_CheckChild2Type, MVT::v2i32,
/* 20865*/        OPC_RecordChild3, // #2 = $imm
/* 20866*/        OPC_MoveChild3,
/* 20867*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20870*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 20872*/        OPC_MoveParent,
/* 20873*/        OPC_CheckType, MVT::v2i32,
/* 20875*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20877*/        OPC_EmitConvertToTarget, 2,
/* 20879*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRIv2i32_shift), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 364:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (SRIv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20888*/      /*Scope*/ 28, /*->20917*/
/* 20889*/        OPC_CheckChild1Type, MVT::v4i32,
/* 20891*/        OPC_RecordChild2, // #1 = $Rn
/* 20892*/        OPC_CheckChild2Type, MVT::v4i32,
/* 20894*/        OPC_RecordChild3, // #2 = $imm
/* 20895*/        OPC_MoveChild3,
/* 20896*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20899*/        OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 20901*/        OPC_MoveParent,
/* 20902*/        OPC_CheckType, MVT::v4i32,
/* 20904*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20906*/        OPC_EmitConvertToTarget, 2,
/* 20908*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRIv4i32_shift), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 364:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 12
                  // Dst: (SRIv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20917*/      /*Scope*/ 28, /*->20946*/
/* 20918*/        OPC_CheckChild1Type, MVT::v2i64,
/* 20920*/        OPC_RecordChild2, // #1 = $Rn
/* 20921*/        OPC_CheckChild2Type, MVT::v2i64,
/* 20923*/        OPC_RecordChild3, // #2 = $imm
/* 20924*/        OPC_MoveChild3,
/* 20925*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20928*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 20930*/        OPC_MoveParent,
/* 20931*/        OPC_CheckType, MVT::v2i64,
/* 20933*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20935*/        OPC_EmitConvertToTarget, 2,
/* 20937*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRIv2i64_shift), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 364:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                  // Dst: (SRIv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 20946*/      /*Scope*/ 26, /*->20973*/
/* 20947*/        OPC_CheckChild1Type, MVT::v1i64,
/* 20949*/        OPC_RecordChild2, // #1 = $Rn
/* 20950*/        OPC_CheckChild2Type, MVT::v1i64,
/* 20952*/        OPC_RecordChild3, // #2 = $imm
/* 20953*/        OPC_MoveChild3,
/* 20954*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20957*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 20959*/        OPC_MoveParent,
/* 20960*/        OPC_CheckType, MVT::v1i64,
/* 20962*/        OPC_EmitConvertToTarget, 2,
/* 20964*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRId), 0,
                      MVT::v1i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 364:{ *:[iPTR] }, FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 12
                  // Dst: (SRId:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 20973*/      0, /*End of Scope*/
/* 20974*/    /*Scope*/ 84, /*->21059*/
/* 20975*/      OPC_CheckChild0Integer, 88|128,1/*216*/, 
/* 20978*/      OPC_RecordChild1, // #0 = $Rn
/* 20979*/      OPC_SwitchType /*6 cases */, 11, MVT::v8i8,// ->20993
/* 20982*/        OPC_CheckChild1Type, MVT::v8i8,
/* 20984*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20986*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 216:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                  // Dst: (CLSv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 20993*/      /*SwitchType*/ 11, MVT::v16i8,// ->21006
/* 20995*/        OPC_CheckChild1Type, MVT::v16i8,
/* 20997*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 20999*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 216:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (CLSv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 21006*/      /*SwitchType*/ 11, MVT::v4i16,// ->21019
/* 21008*/        OPC_CheckChild1Type, MVT::v4i16,
/* 21010*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21012*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 216:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                  // Dst: (CLSv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 21019*/      /*SwitchType*/ 11, MVT::v8i16,// ->21032
/* 21021*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21023*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21025*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSv8i16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 216:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (CLSv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 21032*/      /*SwitchType*/ 11, MVT::v2i32,// ->21045
/* 21034*/        OPC_CheckChild1Type, MVT::v2i32,
/* 21036*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21038*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 216:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (CLSv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 21045*/      /*SwitchType*/ 11, MVT::v4i32,// ->21058
/* 21047*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21049*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21051*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSv4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 216:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (CLSv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 21058*/      0, // EndSwitchType
/* 21059*/    /*Scope*/ 11, /*->21071*/
/* 21060*/      OPC_CheckChild0Integer, 103|128,2/*359*/, 
/* 21063*/      OPC_RecordChild1, // #0 = $Rn
/* 21064*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNv4i16), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i16] } 359:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn) - Complexity = 8
                // Dst: (FCVTNv4i16:{ *:[v4i16] } V128:{ *:[v4f32] }:$Rn)
/* 21071*/    /*Scope*/ 32, /*->21104*/
/* 21072*/      OPC_CheckChild0Integer, 11|128,2/*267*/, 
/* 21075*/      OPC_RecordChild1, // #0 = $Rn
/* 21076*/      OPC_SwitchType /*2 cases */, 11, MVT::v8i8,// ->21090
/* 21079*/        OPC_CheckChild1Type, MVT::v8i8,
/* 21081*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21083*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RBITv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 267:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                  // Dst: (RBITv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 21090*/      /*SwitchType*/ 11, MVT::v16i8,// ->21103
/* 21092*/        OPC_CheckChild1Type, MVT::v16i8,
/* 21094*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21096*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RBITv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 267:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (RBITv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 21103*/      0, // EndSwitchType
/* 21104*/    /*Scope*/ 84, /*->21189*/
/* 21105*/      OPC_CheckChild0Integer, 15|128,2/*271*/, 
/* 21108*/      OPC_RecordChild1, // #0 = $Rn
/* 21109*/      OPC_SwitchType /*6 cases */, 11, MVT::v4i16,// ->21123
/* 21112*/        OPC_CheckChild1Type, MVT::v8i8,
/* 21114*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21116*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLPv8i8_v4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 271:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                  // Dst: (SADDLPv8i8_v4i16:{ *:[v4i16] } V64:{ *:[v8i8] }:$Rn)
/* 21123*/      /*SwitchType*/ 11, MVT::v8i16,// ->21136
/* 21125*/        OPC_CheckChild1Type, MVT::v16i8,
/* 21127*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21129*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLPv16i8_v8i16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 271:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (SADDLPv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn)
/* 21136*/      /*SwitchType*/ 11, MVT::v2i32,// ->21149
/* 21138*/        OPC_CheckChild1Type, MVT::v4i16,
/* 21140*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21142*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLPv4i16_v2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 271:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                  // Dst: (SADDLPv4i16_v2i32:{ *:[v2i32] } V64:{ *:[v4i16] }:$Rn)
/* 21149*/      /*SwitchType*/ 11, MVT::v4i32,// ->21162
/* 21151*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21153*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21155*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLPv8i16_v4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 271:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (SADDLPv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn)
/* 21162*/      /*SwitchType*/ 11, MVT::v1i64,// ->21175
/* 21164*/        OPC_CheckChild1Type, MVT::v2i32,
/* 21166*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21168*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLPv2i32_v1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 271:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (SADDLPv2i32_v1i64:{ *:[v1i64] } V64:{ *:[v2i32] }:$Rn)
/* 21175*/      /*SwitchType*/ 11, MVT::v2i64,// ->21188
/* 21177*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21179*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21181*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLPv4i32_v2i64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 271:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (SADDLPv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn)
/* 21188*/      0, // EndSwitchType
/* 21189*/    /*Scope*/ 45, /*->21235*/
/* 21190*/      OPC_CheckChild0Integer, 47|128,2/*303*/, 
/* 21193*/      OPC_RecordChild1, // #0 = $Rn
/* 21194*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i8,// ->21208
/* 21197*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21199*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21201*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTNv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 303:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (SQXTNv8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn)
/* 21208*/      /*SwitchType*/ 11, MVT::v4i16,// ->21221
/* 21210*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21212*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21214*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTNv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 303:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (SQXTNv4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn)
/* 21221*/      /*SwitchType*/ 11, MVT::v2i32,// ->21234
/* 21223*/        OPC_CheckChild1Type, MVT::v2i64,
/* 21225*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21227*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTNv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 303:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn) - Complexity = 8
                  // Dst: (SQXTNv2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn)
/* 21234*/      0, // EndSwitchType
/* 21235*/    /*Scope*/ 45, /*->21281*/
/* 21236*/      OPC_CheckChild0Integer, 48|128,2/*304*/, 
/* 21239*/      OPC_RecordChild1, // #0 = $Rn
/* 21240*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i8,// ->21254
/* 21243*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21245*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21247*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTUNv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 304:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (SQXTUNv8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn)
/* 21254*/      /*SwitchType*/ 11, MVT::v4i16,// ->21267
/* 21256*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21258*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21260*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTUNv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 304:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (SQXTUNv4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn)
/* 21267*/      /*SwitchType*/ 11, MVT::v2i32,// ->21280
/* 21269*/        OPC_CheckChild1Type, MVT::v2i64,
/* 21271*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21273*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTUNv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 304:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn) - Complexity = 8
                  // Dst: (SQXTUNv2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn)
/* 21280*/      0, // EndSwitchType
/* 21281*/    /*Scope*/ 84, /*->21366*/
/* 21282*/      OPC_CheckChild0Integer, 73|128,2/*329*/, 
/* 21285*/      OPC_RecordChild1, // #0 = $Rn
/* 21286*/      OPC_SwitchType /*6 cases */, 11, MVT::v4i16,// ->21300
/* 21289*/        OPC_CheckChild1Type, MVT::v8i8,
/* 21291*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21293*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLPv8i8_v4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 329:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn) - Complexity = 8
                  // Dst: (UADDLPv8i8_v4i16:{ *:[v4i16] } V64:{ *:[v8i8] }:$Rn)
/* 21300*/      /*SwitchType*/ 11, MVT::v8i16,// ->21313
/* 21302*/        OPC_CheckChild1Type, MVT::v16i8,
/* 21304*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21306*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLPv16i8_v8i16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 329:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (UADDLPv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn)
/* 21313*/      /*SwitchType*/ 11, MVT::v2i32,// ->21326
/* 21315*/        OPC_CheckChild1Type, MVT::v4i16,
/* 21317*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21319*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLPv4i16_v2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 329:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                  // Dst: (UADDLPv4i16_v2i32:{ *:[v2i32] } V64:{ *:[v4i16] }:$Rn)
/* 21326*/      /*SwitchType*/ 11, MVT::v4i32,// ->21339
/* 21328*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21330*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21332*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLPv8i16_v4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 329:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (UADDLPv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn)
/* 21339*/      /*SwitchType*/ 11, MVT::v1i64,// ->21352
/* 21341*/        OPC_CheckChild1Type, MVT::v2i32,
/* 21343*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21345*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLPv2i32_v1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 329:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (UADDLPv2i32_v1i64:{ *:[v1i64] } V64:{ *:[v2i32] }:$Rn)
/* 21352*/      /*SwitchType*/ 11, MVT::v2i64,// ->21365
/* 21354*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21356*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21358*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLPv4i32_v2i64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 329:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (UADDLPv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn)
/* 21365*/      0, // EndSwitchType
/* 21366*/    /*Scope*/ 45, /*->21412*/
/* 21367*/      OPC_CheckChild0Integer, 92|128,2/*348*/, 
/* 21370*/      OPC_RecordChild1, // #0 = $Rn
/* 21371*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i8,// ->21385
/* 21374*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21376*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21378*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQXTNv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 348:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn) - Complexity = 8
                  // Dst: (UQXTNv8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn)
/* 21385*/      /*SwitchType*/ 11, MVT::v4i16,// ->21398
/* 21387*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21389*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21391*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQXTNv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 348:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (UQXTNv4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn)
/* 21398*/      /*SwitchType*/ 11, MVT::v2i32,// ->21411
/* 21400*/        OPC_CheckChild1Type, MVT::v2i64,
/* 21402*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21404*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQXTNv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 348:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn) - Complexity = 8
                  // Dst: (UQXTNv2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn)
/* 21411*/      0, // EndSwitchType
/* 21412*/    /*Scope*/ 32, /*->21445*/
/* 21413*/      OPC_CheckChild0Integer, 93|128,2/*349*/, 
/* 21416*/      OPC_RecordChild1, // #0 = $Rn
/* 21417*/      OPC_SwitchType /*2 cases */, 11, MVT::v2i32,// ->21431
/* 21420*/        OPC_CheckChild1Type, MVT::v2i32,
/* 21422*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21424*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URECPEv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 349:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (URECPEv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 21431*/      /*SwitchType*/ 11, MVT::v4i32,// ->21444
/* 21433*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21435*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21437*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URECPEv4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 349:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (URECPEv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 21444*/      0, // EndSwitchType
/* 21445*/    /*Scope*/ 32, /*->21478*/
/* 21446*/      OPC_CheckChild0Integer, 96|128,2/*352*/, 
/* 21449*/      OPC_RecordChild1, // #0 = $Rn
/* 21450*/      OPC_SwitchType /*2 cases */, 11, MVT::v2i32,// ->21464
/* 21453*/        OPC_CheckChild1Type, MVT::v2i32,
/* 21455*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21457*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSQRTEv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 352:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn) - Complexity = 8
                  // Dst: (URSQRTEv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 21464*/      /*SwitchType*/ 11, MVT::v4i32,// ->21477
/* 21466*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21468*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21470*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSQRTEv4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 352:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                  // Dst: (URSQRTEv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 21477*/      0, // EndSwitchType
/* 21478*/    /*Scope*/ 82|128,1/*210*/, /*->21690*/
/* 21480*/      OPC_CheckChild0Integer, 87|128,1/*215*/, 
/* 21483*/      OPC_RecordChild1, // #0 = $Rn
/* 21484*/      OPC_SwitchType /*12 cases */, 15, MVT::v8i8,// ->21502
/* 21487*/        OPC_CheckChild1Type, MVT::v8i8,
/* 21489*/        OPC_RecordChild2, // #1 = $Rm
/* 21490*/        OPC_CheckChild2Type, MVT::v8i8,
/* 21492*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21494*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 215:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (ADDPv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 21502*/      /*SwitchType*/ 15, MVT::v16i8,// ->21519
/* 21504*/        OPC_CheckChild1Type, MVT::v16i8,
/* 21506*/        OPC_RecordChild2, // #1 = $Rm
/* 21507*/        OPC_CheckChild2Type, MVT::v16i8,
/* 21509*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21511*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 215:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (ADDPv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 21519*/      /*SwitchType*/ 15, MVT::v4i16,// ->21536
/* 21521*/        OPC_CheckChild1Type, MVT::v4i16,
/* 21523*/        OPC_RecordChild2, // #1 = $Rm
/* 21524*/        OPC_CheckChild2Type, MVT::v4i16,
/* 21526*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21528*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 215:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (ADDPv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 21536*/      /*SwitchType*/ 15, MVT::v8i16,// ->21553
/* 21538*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21540*/        OPC_RecordChild2, // #1 = $Rm
/* 21541*/        OPC_CheckChild2Type, MVT::v8i16,
/* 21543*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21545*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 215:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (ADDPv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 21553*/      /*SwitchType*/ 15, MVT::v2i32,// ->21570
/* 21555*/        OPC_CheckChild1Type, MVT::v2i32,
/* 21557*/        OPC_RecordChild2, // #1 = $Rm
/* 21558*/        OPC_CheckChild2Type, MVT::v2i32,
/* 21560*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21562*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 215:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (ADDPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 21570*/      /*SwitchType*/ 15, MVT::v4i32,// ->21587
/* 21572*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21574*/        OPC_RecordChild2, // #1 = $Rm
/* 21575*/        OPC_CheckChild2Type, MVT::v4i32,
/* 21577*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21579*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 215:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (ADDPv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 21587*/      /*SwitchType*/ 15, MVT::v2i64,// ->21604
/* 21589*/        OPC_CheckChild1Type, MVT::v2i64,
/* 21591*/        OPC_RecordChild2, // #1 = $Rm
/* 21592*/        OPC_CheckChild2Type, MVT::v2i64,
/* 21594*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21596*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 215:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (ADDPv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 21604*/      /*SwitchType*/ 15, MVT::v4f16,// ->21621
/* 21606*/        OPC_CheckChild1Type, MVT::v4f16,
/* 21608*/        OPC_RecordChild2, // #1 = $Rm
/* 21609*/        OPC_CheckChild2Type, MVT::v4f16,
/* 21611*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 21613*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 215:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FADDPv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 21621*/      /*SwitchType*/ 15, MVT::v8f16,// ->21638
/* 21623*/        OPC_CheckChild1Type, MVT::v8f16,
/* 21625*/        OPC_RecordChild2, // #1 = $Rm
/* 21626*/        OPC_CheckChild2Type, MVT::v8f16,
/* 21628*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 21630*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 215:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FADDPv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 21638*/      /*SwitchType*/ 15, MVT::v2f32,// ->21655
/* 21640*/        OPC_CheckChild1Type, MVT::v2f32,
/* 21642*/        OPC_RecordChild2, // #1 = $Rm
/* 21643*/        OPC_CheckChild2Type, MVT::v2f32,
/* 21645*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21647*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 215:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FADDPv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 21655*/      /*SwitchType*/ 15, MVT::v4f32,// ->21672
/* 21657*/        OPC_CheckChild1Type, MVT::v4f32,
/* 21659*/        OPC_RecordChild2, // #1 = $Rm
/* 21660*/        OPC_CheckChild2Type, MVT::v4f32,
/* 21662*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21664*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 215:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FADDPv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 21672*/      /*SwitchType*/ 15, MVT::v2f64,// ->21689
/* 21674*/        OPC_CheckChild1Type, MVT::v2f64,
/* 21676*/        OPC_RecordChild2, // #1 = $Rm
/* 21677*/        OPC_CheckChild2Type, MVT::v2f64,
/* 21679*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21681*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 215:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FADDPv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 21689*/      0, // EndSwitchType
/* 21690*/    /*Scope*/ 40, /*->21731*/
/* 21691*/      OPC_CheckChild0Integer, 7|128,2/*263*/, 
/* 21694*/      OPC_RecordChild1, // #0 = $Rn
/* 21695*/      OPC_SwitchType /*2 cases */, 15, MVT::v8i8,// ->21713
/* 21698*/        OPC_CheckChild1Type, MVT::v8i8,
/* 21700*/        OPC_RecordChild2, // #1 = $Rm
/* 21701*/        OPC_CheckChild2Type, MVT::v8i8,
/* 21703*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21705*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::PMULv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 263:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (PMULv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 21713*/      /*SwitchType*/ 15, MVT::v16i8,// ->21730
/* 21715*/        OPC_CheckChild1Type, MVT::v16i8,
/* 21717*/        OPC_RecordChild2, // #1 = $Rm
/* 21718*/        OPC_CheckChild2Type, MVT::v16i8,
/* 21720*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21722*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::PMULv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 263:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (PMULv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 21730*/      0, // EndSwitchType
/* 21731*/    /*Scope*/ 108, /*->21840*/
/* 21732*/      OPC_CheckChild0Integer, 14|128,2/*270*/, 
/* 21735*/      OPC_RecordChild1, // #0 = $Rn
/* 21736*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->21754
/* 21739*/        OPC_CheckChild1Type, MVT::v8i8,
/* 21741*/        OPC_RecordChild2, // #1 = $Rm
/* 21742*/        OPC_CheckChild2Type, MVT::v8i8,
/* 21744*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21746*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SABDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 21754*/      /*SwitchType*/ 15, MVT::v16i8,// ->21771
/* 21756*/        OPC_CheckChild1Type, MVT::v16i8,
/* 21758*/        OPC_RecordChild2, // #1 = $Rm
/* 21759*/        OPC_CheckChild2Type, MVT::v16i8,
/* 21761*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21763*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 270:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SABDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 21771*/      /*SwitchType*/ 15, MVT::v4i16,// ->21788
/* 21773*/        OPC_CheckChild1Type, MVT::v4i16,
/* 21775*/        OPC_RecordChild2, // #1 = $Rm
/* 21776*/        OPC_CheckChild2Type, MVT::v4i16,
/* 21778*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21780*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SABDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 21788*/      /*SwitchType*/ 15, MVT::v8i16,// ->21805
/* 21790*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21792*/        OPC_RecordChild2, // #1 = $Rm
/* 21793*/        OPC_CheckChild2Type, MVT::v8i16,
/* 21795*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21797*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 270:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SABDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 21805*/      /*SwitchType*/ 15, MVT::v2i32,// ->21822
/* 21807*/        OPC_CheckChild1Type, MVT::v2i32,
/* 21809*/        OPC_RecordChild2, // #1 = $Rm
/* 21810*/        OPC_CheckChild2Type, MVT::v2i32,
/* 21812*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21814*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SABDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 21822*/      /*SwitchType*/ 15, MVT::v4i32,// ->21839
/* 21824*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21826*/        OPC_RecordChild2, // #1 = $Rm
/* 21827*/        OPC_CheckChild2Type, MVT::v4i32,
/* 21829*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21831*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 270:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SABDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 21839*/      0, // EndSwitchType
/* 21840*/    /*Scope*/ 108, /*->21949*/
/* 21841*/      OPC_CheckChild0Integer, 22|128,2/*278*/, 
/* 21844*/      OPC_RecordChild1, // #0 = $Rn
/* 21845*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->21863
/* 21848*/        OPC_CheckChild1Type, MVT::v8i8,
/* 21850*/        OPC_RecordChild2, // #1 = $Rm
/* 21851*/        OPC_CheckChild2Type, MVT::v8i8,
/* 21853*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21855*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 278:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SHADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 21863*/      /*SwitchType*/ 15, MVT::v16i8,// ->21880
/* 21865*/        OPC_CheckChild1Type, MVT::v16i8,
/* 21867*/        OPC_RecordChild2, // #1 = $Rm
/* 21868*/        OPC_CheckChild2Type, MVT::v16i8,
/* 21870*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21872*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 278:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SHADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 21880*/      /*SwitchType*/ 15, MVT::v4i16,// ->21897
/* 21882*/        OPC_CheckChild1Type, MVT::v4i16,
/* 21884*/        OPC_RecordChild2, // #1 = $Rm
/* 21885*/        OPC_CheckChild2Type, MVT::v4i16,
/* 21887*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21889*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHADDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 278:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SHADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 21897*/      /*SwitchType*/ 15, MVT::v8i16,// ->21914
/* 21899*/        OPC_CheckChild1Type, MVT::v8i16,
/* 21901*/        OPC_RecordChild2, // #1 = $Rm
/* 21902*/        OPC_CheckChild2Type, MVT::v8i16,
/* 21904*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21906*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHADDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 278:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SHADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 21914*/      /*SwitchType*/ 15, MVT::v2i32,// ->21931
/* 21916*/        OPC_CheckChild1Type, MVT::v2i32,
/* 21918*/        OPC_RecordChild2, // #1 = $Rm
/* 21919*/        OPC_CheckChild2Type, MVT::v2i32,
/* 21921*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21923*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHADDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 278:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SHADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 21931*/      /*SwitchType*/ 15, MVT::v4i32,// ->21948
/* 21933*/        OPC_CheckChild1Type, MVT::v4i32,
/* 21935*/        OPC_RecordChild2, // #1 = $Rm
/* 21936*/        OPC_CheckChild2Type, MVT::v4i32,
/* 21938*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21940*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHADDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 278:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SHADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 21948*/      0, // EndSwitchType
/* 21949*/    /*Scope*/ 108, /*->22058*/
/* 21950*/      OPC_CheckChild0Integer, 24|128,2/*280*/, 
/* 21953*/      OPC_RecordChild1, // #0 = $Rn
/* 21954*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->21972
/* 21957*/        OPC_CheckChild1Type, MVT::v8i8,
/* 21959*/        OPC_RecordChild2, // #1 = $Rm
/* 21960*/        OPC_CheckChild2Type, MVT::v8i8,
/* 21962*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21964*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHSUBv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 280:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SHSUBv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 21972*/      /*SwitchType*/ 15, MVT::v16i8,// ->21989
/* 21974*/        OPC_CheckChild1Type, MVT::v16i8,
/* 21976*/        OPC_RecordChild2, // #1 = $Rm
/* 21977*/        OPC_CheckChild2Type, MVT::v16i8,
/* 21979*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21981*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHSUBv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 280:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SHSUBv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 21989*/      /*SwitchType*/ 15, MVT::v4i16,// ->22006
/* 21991*/        OPC_CheckChild1Type, MVT::v4i16,
/* 21993*/        OPC_RecordChild2, // #1 = $Rm
/* 21994*/        OPC_CheckChild2Type, MVT::v4i16,
/* 21996*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 21998*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHSUBv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 280:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SHSUBv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22006*/      /*SwitchType*/ 15, MVT::v8i16,// ->22023
/* 22008*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22010*/        OPC_RecordChild2, // #1 = $Rm
/* 22011*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22013*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22015*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHSUBv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 280:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SHSUBv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22023*/      /*SwitchType*/ 15, MVT::v2i32,// ->22040
/* 22025*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22027*/        OPC_RecordChild2, // #1 = $Rm
/* 22028*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22030*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22032*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHSUBv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 280:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SHSUBv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22040*/      /*SwitchType*/ 15, MVT::v4i32,// ->22057
/* 22042*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22044*/        OPC_RecordChild2, // #1 = $Rm
/* 22045*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22047*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22049*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHSUBv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 280:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SHSUBv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22057*/      0, // EndSwitchType
/* 22058*/    /*Scope*/ 108, /*->22167*/
/* 22059*/      OPC_CheckChild0Integer, 26|128,2/*282*/, 
/* 22062*/      OPC_RecordChild1, // #0 = $Rn
/* 22063*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22081
/* 22066*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22068*/        OPC_RecordChild2, // #1 = $Rm
/* 22069*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22071*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22073*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXPv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 282:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SMAXPv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22081*/      /*SwitchType*/ 15, MVT::v16i8,// ->22098
/* 22083*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22085*/        OPC_RecordChild2, // #1 = $Rm
/* 22086*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22088*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22090*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXPv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 282:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SMAXPv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22098*/      /*SwitchType*/ 15, MVT::v4i16,// ->22115
/* 22100*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22102*/        OPC_RecordChild2, // #1 = $Rm
/* 22103*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22105*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22107*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXPv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 282:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SMAXPv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22115*/      /*SwitchType*/ 15, MVT::v8i16,// ->22132
/* 22117*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22119*/        OPC_RecordChild2, // #1 = $Rm
/* 22120*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22122*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22124*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXPv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 282:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SMAXPv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22132*/      /*SwitchType*/ 15, MVT::v2i32,// ->22149
/* 22134*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22136*/        OPC_RecordChild2, // #1 = $Rm
/* 22137*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22139*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22141*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXPv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 282:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SMAXPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22149*/      /*SwitchType*/ 15, MVT::v4i32,// ->22166
/* 22151*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22153*/        OPC_RecordChild2, // #1 = $Rm
/* 22154*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22156*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22158*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXPv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 282:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SMAXPv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22166*/      0, // EndSwitchType
/* 22167*/    /*Scope*/ 108, /*->22276*/
/* 22168*/      OPC_CheckChild0Integer, 29|128,2/*285*/, 
/* 22171*/      OPC_RecordChild1, // #0 = $Rn
/* 22172*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22190
/* 22175*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22177*/        OPC_RecordChild2, // #1 = $Rm
/* 22178*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22180*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22182*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINPv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 285:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SMINPv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22190*/      /*SwitchType*/ 15, MVT::v16i8,// ->22207
/* 22192*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22194*/        OPC_RecordChild2, // #1 = $Rm
/* 22195*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22197*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22199*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINPv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 285:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SMINPv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22207*/      /*SwitchType*/ 15, MVT::v4i16,// ->22224
/* 22209*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22211*/        OPC_RecordChild2, // #1 = $Rm
/* 22212*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22214*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22216*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINPv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 285:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SMINPv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22224*/      /*SwitchType*/ 15, MVT::v8i16,// ->22241
/* 22226*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22228*/        OPC_RecordChild2, // #1 = $Rm
/* 22229*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22231*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22233*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINPv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 285:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SMINPv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22241*/      /*SwitchType*/ 15, MVT::v2i32,// ->22258
/* 22243*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22245*/        OPC_RecordChild2, // #1 = $Rm
/* 22246*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22248*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22250*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINPv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 285:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SMINPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22258*/      /*SwitchType*/ 15, MVT::v4i32,// ->22275
/* 22260*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22262*/        OPC_RecordChild2, // #1 = $Rm
/* 22263*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22265*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22267*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINPv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 285:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SMINPv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22275*/      0, // EndSwitchType
/* 22276*/    /*Scope*/ 108, /*->22385*/
/* 22277*/      OPC_CheckChild0Integer, 49|128,2/*305*/, 
/* 22280*/      OPC_RecordChild1, // #0 = $Rn
/* 22281*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22299
/* 22284*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22286*/        OPC_RecordChild2, // #1 = $Rm
/* 22287*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22289*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22291*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRHADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 305:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (SRHADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22299*/      /*SwitchType*/ 15, MVT::v16i8,// ->22316
/* 22301*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22303*/        OPC_RecordChild2, // #1 = $Rm
/* 22304*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22306*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22308*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRHADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 305:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (SRHADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22316*/      /*SwitchType*/ 15, MVT::v4i16,// ->22333
/* 22318*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22320*/        OPC_RecordChild2, // #1 = $Rm
/* 22321*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22323*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22325*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRHADDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 305:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (SRHADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22333*/      /*SwitchType*/ 15, MVT::v8i16,// ->22350
/* 22335*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22337*/        OPC_RecordChild2, // #1 = $Rm
/* 22338*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22340*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22342*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRHADDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 305:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SRHADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22350*/      /*SwitchType*/ 15, MVT::v2i32,// ->22367
/* 22352*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22354*/        OPC_RecordChild2, // #1 = $Rm
/* 22355*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22357*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22359*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRHADDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 305:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (SRHADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22367*/      /*SwitchType*/ 15, MVT::v4i32,// ->22384
/* 22369*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22371*/        OPC_RecordChild2, // #1 = $Rm
/* 22372*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22374*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22376*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRHADDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 305:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SRHADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22384*/      0, // EndSwitchType
/* 22385*/    /*Scope*/ 108, /*->22494*/
/* 22386*/      OPC_CheckChild0Integer, 72|128,2/*328*/, 
/* 22389*/      OPC_RecordChild1, // #0 = $Rn
/* 22390*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22408
/* 22393*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22395*/        OPC_RecordChild2, // #1 = $Rm
/* 22396*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22398*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22400*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UABDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22408*/      /*SwitchType*/ 15, MVT::v16i8,// ->22425
/* 22410*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22412*/        OPC_RecordChild2, // #1 = $Rm
/* 22413*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22415*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22417*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 328:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UABDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22425*/      /*SwitchType*/ 15, MVT::v4i16,// ->22442
/* 22427*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22429*/        OPC_RecordChild2, // #1 = $Rm
/* 22430*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22432*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22434*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UABDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22442*/      /*SwitchType*/ 15, MVT::v8i16,// ->22459
/* 22444*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22446*/        OPC_RecordChild2, // #1 = $Rm
/* 22447*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22449*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22451*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 328:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UABDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22459*/      /*SwitchType*/ 15, MVT::v2i32,// ->22476
/* 22461*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22463*/        OPC_RecordChild2, // #1 = $Rm
/* 22464*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22466*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22468*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UABDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22476*/      /*SwitchType*/ 15, MVT::v4i32,// ->22493
/* 22478*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22480*/        OPC_RecordChild2, // #1 = $Rm
/* 22481*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22483*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22485*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 328:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UABDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22493*/      0, // EndSwitchType
/* 22494*/    /*Scope*/ 108, /*->22603*/
/* 22495*/      OPC_CheckChild0Integer, 77|128,2/*333*/, 
/* 22498*/      OPC_RecordChild1, // #0 = $Rn
/* 22499*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22517
/* 22502*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22504*/        OPC_RecordChild2, // #1 = $Rm
/* 22505*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22507*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22509*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 333:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UHADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22517*/      /*SwitchType*/ 15, MVT::v16i8,// ->22534
/* 22519*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22521*/        OPC_RecordChild2, // #1 = $Rm
/* 22522*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22524*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22526*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 333:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UHADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22534*/      /*SwitchType*/ 15, MVT::v4i16,// ->22551
/* 22536*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22538*/        OPC_RecordChild2, // #1 = $Rm
/* 22539*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22541*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22543*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHADDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 333:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UHADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22551*/      /*SwitchType*/ 15, MVT::v8i16,// ->22568
/* 22553*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22555*/        OPC_RecordChild2, // #1 = $Rm
/* 22556*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22558*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22560*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHADDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 333:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UHADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22568*/      /*SwitchType*/ 15, MVT::v2i32,// ->22585
/* 22570*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22572*/        OPC_RecordChild2, // #1 = $Rm
/* 22573*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22575*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22577*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHADDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 333:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UHADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22585*/      /*SwitchType*/ 15, MVT::v4i32,// ->22602
/* 22587*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22589*/        OPC_RecordChild2, // #1 = $Rm
/* 22590*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22592*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22594*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHADDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 333:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UHADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22602*/      0, // EndSwitchType
/* 22603*/    /*Scope*/ 108, /*->22712*/
/* 22604*/      OPC_CheckChild0Integer, 78|128,2/*334*/, 
/* 22607*/      OPC_RecordChild1, // #0 = $Rn
/* 22608*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22626
/* 22611*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22613*/        OPC_RecordChild2, // #1 = $Rm
/* 22614*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22616*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22618*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHSUBv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 334:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UHSUBv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22626*/      /*SwitchType*/ 15, MVT::v16i8,// ->22643
/* 22628*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22630*/        OPC_RecordChild2, // #1 = $Rm
/* 22631*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22633*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22635*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHSUBv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 334:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UHSUBv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22643*/      /*SwitchType*/ 15, MVT::v4i16,// ->22660
/* 22645*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22647*/        OPC_RecordChild2, // #1 = $Rm
/* 22648*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22650*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22652*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHSUBv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 334:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UHSUBv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22660*/      /*SwitchType*/ 15, MVT::v8i16,// ->22677
/* 22662*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22664*/        OPC_RecordChild2, // #1 = $Rm
/* 22665*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22667*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22669*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHSUBv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 334:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UHSUBv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22677*/      /*SwitchType*/ 15, MVT::v2i32,// ->22694
/* 22679*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22681*/        OPC_RecordChild2, // #1 = $Rm
/* 22682*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22684*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22686*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHSUBv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 334:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UHSUBv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22694*/      /*SwitchType*/ 15, MVT::v4i32,// ->22711
/* 22696*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22698*/        OPC_RecordChild2, // #1 = $Rm
/* 22699*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22701*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22703*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UHSUBv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 334:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UHSUBv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22711*/      0, // EndSwitchType
/* 22712*/    /*Scope*/ 108, /*->22821*/
/* 22713*/      OPC_CheckChild0Integer, 80|128,2/*336*/, 
/* 22716*/      OPC_RecordChild1, // #0 = $Rn
/* 22717*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22735
/* 22720*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22722*/        OPC_RecordChild2, // #1 = $Rm
/* 22723*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22725*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22727*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXPv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 336:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UMAXPv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22735*/      /*SwitchType*/ 15, MVT::v16i8,// ->22752
/* 22737*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22739*/        OPC_RecordChild2, // #1 = $Rm
/* 22740*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22742*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22744*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXPv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 336:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UMAXPv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22752*/      /*SwitchType*/ 15, MVT::v4i16,// ->22769
/* 22754*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22756*/        OPC_RecordChild2, // #1 = $Rm
/* 22757*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22759*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22761*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXPv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 336:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UMAXPv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22769*/      /*SwitchType*/ 15, MVT::v8i16,// ->22786
/* 22771*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22773*/        OPC_RecordChild2, // #1 = $Rm
/* 22774*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22776*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22778*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXPv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 336:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UMAXPv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22786*/      /*SwitchType*/ 15, MVT::v2i32,// ->22803
/* 22788*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22790*/        OPC_RecordChild2, // #1 = $Rm
/* 22791*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22793*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22795*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXPv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 336:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UMAXPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22803*/      /*SwitchType*/ 15, MVT::v4i32,// ->22820
/* 22805*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22807*/        OPC_RecordChild2, // #1 = $Rm
/* 22808*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22810*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22812*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXPv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 336:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UMAXPv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22820*/      0, // EndSwitchType
/* 22821*/    /*Scope*/ 108, /*->22930*/
/* 22822*/      OPC_CheckChild0Integer, 83|128,2/*339*/, 
/* 22825*/      OPC_RecordChild1, // #0 = $Rn
/* 22826*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22844
/* 22829*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22831*/        OPC_RecordChild2, // #1 = $Rm
/* 22832*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22834*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22836*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINPv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 339:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (UMINPv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22844*/      /*SwitchType*/ 15, MVT::v16i8,// ->22861
/* 22846*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22848*/        OPC_RecordChild2, // #1 = $Rm
/* 22849*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22851*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22853*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINPv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 339:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (UMINPv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22861*/      /*SwitchType*/ 15, MVT::v4i16,// ->22878
/* 22863*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22865*/        OPC_RecordChild2, // #1 = $Rm
/* 22866*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22868*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22870*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINPv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 339:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (UMINPv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22878*/      /*SwitchType*/ 15, MVT::v8i16,// ->22895
/* 22880*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22882*/        OPC_RecordChild2, // #1 = $Rm
/* 22883*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22885*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22887*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINPv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 339:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (UMINPv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 22895*/      /*SwitchType*/ 15, MVT::v2i32,// ->22912
/* 22897*/        OPC_CheckChild1Type, MVT::v2i32,
/* 22899*/        OPC_RecordChild2, // #1 = $Rm
/* 22900*/        OPC_CheckChild2Type, MVT::v2i32,
/* 22902*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22904*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINPv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 339:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (UMINPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 22912*/      /*SwitchType*/ 15, MVT::v4i32,// ->22929
/* 22914*/        OPC_CheckChild1Type, MVT::v4i32,
/* 22916*/        OPC_RecordChild2, // #1 = $Rm
/* 22917*/        OPC_CheckChild2Type, MVT::v4i32,
/* 22919*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22921*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINPv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 339:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (UMINPv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 22929*/      0, // EndSwitchType
/* 22930*/    /*Scope*/ 108, /*->23039*/
/* 22931*/      OPC_CheckChild0Integer, 94|128,2/*350*/, 
/* 22934*/      OPC_RecordChild1, // #0 = $Rn
/* 22935*/      OPC_SwitchType /*6 cases */, 15, MVT::v8i8,// ->22953
/* 22938*/        OPC_CheckChild1Type, MVT::v8i8,
/* 22940*/        OPC_RecordChild2, // #1 = $Rm
/* 22941*/        OPC_CheckChild2Type, MVT::v8i8,
/* 22943*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22945*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URHADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 350:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 8
                  // Dst: (URHADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 22953*/      /*SwitchType*/ 15, MVT::v16i8,// ->22970
/* 22955*/        OPC_CheckChild1Type, MVT::v16i8,
/* 22957*/        OPC_RecordChild2, // #1 = $Rm
/* 22958*/        OPC_CheckChild2Type, MVT::v16i8,
/* 22960*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22962*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URHADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 350:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 8
                  // Dst: (URHADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 22970*/      /*SwitchType*/ 15, MVT::v4i16,// ->22987
/* 22972*/        OPC_CheckChild1Type, MVT::v4i16,
/* 22974*/        OPC_RecordChild2, // #1 = $Rm
/* 22975*/        OPC_CheckChild2Type, MVT::v4i16,
/* 22977*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22979*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URHADDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 350:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 8
                  // Dst: (URHADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 22987*/      /*SwitchType*/ 15, MVT::v8i16,// ->23004
/* 22989*/        OPC_CheckChild1Type, MVT::v8i16,
/* 22991*/        OPC_RecordChild2, // #1 = $Rm
/* 22992*/        OPC_CheckChild2Type, MVT::v8i16,
/* 22994*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 22996*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URHADDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 350:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (URHADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 23004*/      /*SwitchType*/ 15, MVT::v2i32,// ->23021
/* 23006*/        OPC_CheckChild1Type, MVT::v2i32,
/* 23008*/        OPC_RecordChild2, // #1 = $Rm
/* 23009*/        OPC_CheckChild2Type, MVT::v2i32,
/* 23011*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23013*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URHADDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 350:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 8
                  // Dst: (URHADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 23021*/      /*SwitchType*/ 15, MVT::v4i32,// ->23038
/* 23023*/        OPC_CheckChild1Type, MVT::v4i32,
/* 23025*/        OPC_RecordChild2, // #1 = $Rm
/* 23026*/        OPC_CheckChild2Type, MVT::v4i32,
/* 23028*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23030*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URHADDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 350:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (URHADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23038*/      0, // EndSwitchType
/* 23039*/    /*Scope*/ 57, /*->23097*/
/* 23040*/      OPC_CheckChild0Integer, 86|128,1/*214*/, 
/* 23043*/      OPC_RecordChild1, // #0 = $Rn
/* 23044*/      OPC_SwitchType /*3 cases */, 15, MVT::v8i8,// ->23062
/* 23047*/        OPC_CheckChild1Type, MVT::v8i16,
/* 23049*/        OPC_RecordChild2, // #1 = $Rm
/* 23050*/        OPC_CheckChild2Type, MVT::v8i16,
/* 23052*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23054*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv8i16_v8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 214:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (ADDHNv8i16_v8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 23062*/      /*SwitchType*/ 15, MVT::v4i16,// ->23079
/* 23064*/        OPC_CheckChild1Type, MVT::v4i32,
/* 23066*/        OPC_RecordChild2, // #1 = $Rm
/* 23067*/        OPC_CheckChild2Type, MVT::v4i32,
/* 23069*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23071*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv4i32_v4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 214:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (ADDHNv4i32_v4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23079*/      /*SwitchType*/ 15, MVT::v2i32,// ->23096
/* 23081*/        OPC_CheckChild1Type, MVT::v2i64,
/* 23083*/        OPC_RecordChild2, // #1 = $Rm
/* 23084*/        OPC_CheckChild2Type, MVT::v2i64,
/* 23086*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23088*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv2i64_v2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 214:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (ADDHNv2i64_v2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 23096*/      0, // EndSwitchType
/* 23097*/    /*Scope*/ 57, /*->23155*/
/* 23098*/      OPC_CheckChild0Integer, 62|128,2/*318*/, 
/* 23101*/      OPC_RecordChild1, // #0 = $Rn
/* 23102*/      OPC_SwitchType /*3 cases */, 15, MVT::v8i8,// ->23120
/* 23105*/        OPC_CheckChild1Type, MVT::v8i16,
/* 23107*/        OPC_RecordChild2, // #1 = $Rm
/* 23108*/        OPC_CheckChild2Type, MVT::v8i16,
/* 23110*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23112*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv8i16_v8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 318:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (SUBHNv8i16_v8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 23120*/      /*SwitchType*/ 15, MVT::v4i16,// ->23137
/* 23122*/        OPC_CheckChild1Type, MVT::v4i32,
/* 23124*/        OPC_RecordChild2, // #1 = $Rm
/* 23125*/        OPC_CheckChild2Type, MVT::v4i32,
/* 23127*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23129*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv4i32_v4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 318:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (SUBHNv4i32_v4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23137*/      /*SwitchType*/ 15, MVT::v2i32,// ->23154
/* 23139*/        OPC_CheckChild1Type, MVT::v2i64,
/* 23141*/        OPC_RecordChild2, // #1 = $Rm
/* 23142*/        OPC_CheckChild2Type, MVT::v2i64,
/* 23144*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23146*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv2i64_v2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 318:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (SUBHNv2i64_v2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 23154*/      0, // EndSwitchType
/* 23155*/    /*Scope*/ 57, /*->23213*/
/* 23156*/      OPC_CheckChild0Integer, 10|128,2/*266*/, 
/* 23159*/      OPC_RecordChild1, // #0 = $Rn
/* 23160*/      OPC_SwitchType /*3 cases */, 15, MVT::v8i8,// ->23178
/* 23163*/        OPC_CheckChild1Type, MVT::v8i16,
/* 23165*/        OPC_RecordChild2, // #1 = $Rm
/* 23166*/        OPC_CheckChild2Type, MVT::v8i16,
/* 23168*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23170*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RADDHNv8i16_v8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 266:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (RADDHNv8i16_v8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 23178*/      /*SwitchType*/ 15, MVT::v4i16,// ->23195
/* 23180*/        OPC_CheckChild1Type, MVT::v4i32,
/* 23182*/        OPC_RecordChild2, // #1 = $Rm
/* 23183*/        OPC_CheckChild2Type, MVT::v4i32,
/* 23185*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23187*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RADDHNv4i32_v4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 266:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (RADDHNv4i32_v4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23195*/      /*SwitchType*/ 15, MVT::v2i32,// ->23212
/* 23197*/        OPC_CheckChild1Type, MVT::v2i64,
/* 23199*/        OPC_RecordChild2, // #1 = $Rm
/* 23200*/        OPC_CheckChild2Type, MVT::v2i64,
/* 23202*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23204*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RADDHNv2i64_v2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 266:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (RADDHNv2i64_v2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 23212*/      0, // EndSwitchType
/* 23213*/    /*Scope*/ 57, /*->23271*/
/* 23214*/      OPC_CheckChild0Integer, 13|128,2/*269*/, 
/* 23217*/      OPC_RecordChild1, // #0 = $Rn
/* 23218*/      OPC_SwitchType /*3 cases */, 15, MVT::v8i8,// ->23236
/* 23221*/        OPC_CheckChild1Type, MVT::v8i16,
/* 23223*/        OPC_RecordChild2, // #1 = $Rm
/* 23224*/        OPC_CheckChild2Type, MVT::v8i16,
/* 23226*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23228*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSUBHNv8i16_v8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 269:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 8
                  // Dst: (RSUBHNv8i16_v8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 23236*/      /*SwitchType*/ 15, MVT::v4i16,// ->23253
/* 23238*/        OPC_CheckChild1Type, MVT::v4i32,
/* 23240*/        OPC_RecordChild2, // #1 = $Rm
/* 23241*/        OPC_CheckChild2Type, MVT::v4i32,
/* 23243*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23245*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSUBHNv4i32_v4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 269:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                  // Dst: (RSUBHNv4i32_v4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23253*/      /*SwitchType*/ 15, MVT::v2i32,// ->23270
/* 23255*/        OPC_CheckChild1Type, MVT::v2i64,
/* 23257*/        OPC_RecordChild2, // #1 = $Rm
/* 23258*/        OPC_CheckChild2Type, MVT::v2i64,
/* 23260*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23262*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSUBHNv2i64_v2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 269:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 8
                  // Dst: (RSUBHNv2i64_v2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 23270*/      0, // EndSwitchType
/* 23271*/    /*Scope*/ 31, /*->23303*/
/* 23272*/      OPC_CheckChild0Integer, 64|128,2/*320*/, 
/* 23275*/      OPC_RecordChild1, // #0 = $Rn
/* 23276*/      OPC_RecordChild2, // #1 = $Ri
/* 23277*/      OPC_SwitchType /*2 cases */, 10, MVT::v8i8,// ->23290
/* 23280*/        OPC_CheckChild2Type, MVT::v8i8,
/* 23282*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::TBLv8i8One), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 320:{ *:[iPTR] }, VecListOne128:{ *:[v16i8] }:$Rn, V64:{ *:[v8i8] }:$Ri) - Complexity = 8
                  // Dst: (TBLv8i8One:{ *:[v8i8] } VecListOne128:{ *:[v16i8] }:$Rn, V64:{ *:[v8i8] }:$Ri)
/* 23290*/      /*SwitchType*/ 10, MVT::v16i8,// ->23302
/* 23292*/        OPC_CheckChild2Type, MVT::v16i8,
/* 23294*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::TBLv16i8One), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 320:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Ri, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (TBLv16i8One:{ *:[v16i8] } V128:{ *:[v16i8] }:$Ri, V128:{ *:[v16i8] }:$Rn)
/* 23302*/      0, // EndSwitchType
/* 23303*/    /*Scope*/ 40, /*->23344*/
/* 23304*/      OPC_CheckChild0Integer, 68|128,2/*324*/, 
/* 23307*/      OPC_RecordChild1, // #0 = $Rd
/* 23308*/      OPC_SwitchType /*2 cases */, 15, MVT::v8i8,// ->23326
/* 23311*/        OPC_CheckChild1Type, MVT::v8i8,
/* 23313*/        OPC_RecordChild2, // #1 = $Rn
/* 23314*/        OPC_RecordChild3, // #2 = $Ri
/* 23315*/        OPC_CheckChild3Type, MVT::v8i8,
/* 23317*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::TBXv8i8One), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 324:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rd, VecListOne128:{ *:[v16i8] }:$Rn, V64:{ *:[v8i8] }:$Ri) - Complexity = 8
                  // Dst: (TBXv8i8One:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, VecListOne128:{ *:[v16i8] }:$Rn, V64:{ *:[v8i8] }:$Ri)
/* 23326*/      /*SwitchType*/ 15, MVT::v16i8,// ->23343
/* 23328*/        OPC_CheckChild1Type, MVT::v16i8,
/* 23330*/        OPC_RecordChild2, // #1 = $Ri
/* 23331*/        OPC_RecordChild3, // #2 = $Rn
/* 23332*/        OPC_CheckChild3Type, MVT::v16i8,
/* 23334*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::TBXv16i8One), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 324:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Ri, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                  // Dst: (TBXv16i8One:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Ri, V128:{ *:[v16i8] }:$Rn)
/* 23343*/      0, // EndSwitchType
/* 23344*/    /*Scope*/ 15, /*->23360*/
/* 23345*/      OPC_CheckChild0Integer, 63|128,1/*191*/, 
/* 23348*/      OPC_RecordChild1, // #0 = $Rd
/* 23349*/      OPC_RecordChild2, // #1 = $Rn
/* 23350*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasAES())
/* 23352*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::AESErr), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 191:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                // Dst: (AESErr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn)
/* 23360*/    /*Scope*/ 15, /*->23376*/
/* 23361*/      OPC_CheckChild0Integer, 62|128,1/*190*/, 
/* 23364*/      OPC_RecordChild1, // #0 = $Rd
/* 23365*/      OPC_RecordChild2, // #1 = $Rn
/* 23366*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasAES())
/* 23368*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::AESDrr), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 190:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn) - Complexity = 8
                // Dst: (AESDrr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn)
/* 23376*/    /*Scope*/ 17, /*->23394*/
/* 23377*/      OPC_CheckChild0Integer, 66|128,1/*194*/, 
/* 23380*/      OPC_RecordChild1, // #0 = $Rd
/* 23381*/      OPC_RecordChild2, // #1 = $Rn
/* 23382*/      OPC_RecordChild3, // #2 = $Rm
/* 23383*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23385*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA1Crrr), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 194:{ *:[iPTR] }, FPR128:{ *:[v4i32] }:$Rd, FPR32:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                // Dst: (SHA1Crrr:{ *:[v4i32] } FPR128:{ *:[v4i32] }:$Rd, FPR32:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23394*/    /*Scope*/ 17, /*->23412*/
/* 23395*/      OPC_CheckChild0Integer, 69|128,1/*197*/, 
/* 23398*/      OPC_RecordChild1, // #0 = $Rd
/* 23399*/      OPC_RecordChild2, // #1 = $Rn
/* 23400*/      OPC_RecordChild3, // #2 = $Rm
/* 23401*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23403*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA1Prrr), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 197:{ *:[iPTR] }, FPR128:{ *:[v4i32] }:$Rd, FPR32:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                // Dst: (SHA1Prrr:{ *:[v4i32] } FPR128:{ *:[v4i32] }:$Rd, FPR32:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23412*/    /*Scope*/ 17, /*->23430*/
/* 23413*/      OPC_CheckChild0Integer, 68|128,1/*196*/, 
/* 23416*/      OPC_RecordChild1, // #0 = $Rd
/* 23417*/      OPC_RecordChild2, // #1 = $Rn
/* 23418*/      OPC_RecordChild3, // #2 = $Rm
/* 23419*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23421*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA1Mrrr), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 196:{ *:[iPTR] }, FPR128:{ *:[v4i32] }:$Rd, FPR32:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                // Dst: (SHA1Mrrr:{ *:[v4i32] } FPR128:{ *:[v4i32] }:$Rd, FPR32:{ *:[i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23430*/    /*Scope*/ 17, /*->23448*/
/* 23431*/      OPC_CheckChild0Integer, 70|128,1/*198*/, 
/* 23434*/      OPC_RecordChild1, // #0 = $Rd
/* 23435*/      OPC_RecordChild2, // #1 = $Rn
/* 23436*/      OPC_RecordChild3, // #2 = $Rm
/* 23437*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23439*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA1SU0rrr), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 198:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                // Dst: (SHA1SU0rrr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23448*/    /*Scope*/ 17, /*->23466*/
/* 23449*/      OPC_CheckChild0Integer, 72|128,1/*200*/, 
/* 23452*/      OPC_RecordChild1, // #0 = $Rd
/* 23453*/      OPC_RecordChild2, // #1 = $Rn
/* 23454*/      OPC_RecordChild3, // #2 = $Rm
/* 23455*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23457*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA256Hrrr), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 200:{ *:[iPTR] }, FPR128:{ *:[v4i32] }:$Rd, FPR128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                // Dst: (SHA256Hrrr:{ *:[v4i32] } FPR128:{ *:[v4i32] }:$Rd, FPR128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23466*/    /*Scope*/ 17, /*->23484*/
/* 23467*/      OPC_CheckChild0Integer, 73|128,1/*201*/, 
/* 23470*/      OPC_RecordChild1, // #0 = $Rd
/* 23471*/      OPC_RecordChild2, // #1 = $Rn
/* 23472*/      OPC_RecordChild3, // #2 = $Rm
/* 23473*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23475*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA256H2rrr), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 201:{ *:[iPTR] }, FPR128:{ *:[v4i32] }:$Rd, FPR128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                // Dst: (SHA256H2rrr:{ *:[v4i32] } FPR128:{ *:[v4i32] }:$Rd, FPR128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23484*/    /*Scope*/ 17, /*->23502*/
/* 23485*/      OPC_CheckChild0Integer, 75|128,1/*203*/, 
/* 23488*/      OPC_RecordChild1, // #0 = $Rd
/* 23489*/      OPC_RecordChild2, // #1 = $Rn
/* 23490*/      OPC_RecordChild3, // #2 = $Rm
/* 23491*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23493*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA256SU1rrr), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 203:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 8
                // Dst: (SHA256SU1rrr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 23502*/    /*Scope*/ 15, /*->23518*/
/* 23503*/      OPC_CheckChild0Integer, 71|128,1/*199*/, 
/* 23506*/      OPC_RecordChild1, // #0 = $Rd
/* 23507*/      OPC_RecordChild2, // #1 = $Rn
/* 23508*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23510*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA1SU1rr), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 199:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                // Dst: (SHA1SU1rr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn)
/* 23518*/    /*Scope*/ 15, /*->23534*/
/* 23519*/      OPC_CheckChild0Integer, 74|128,1/*202*/, 
/* 23522*/      OPC_RecordChild1, // #0 = $Rd
/* 23523*/      OPC_RecordChild2, // #1 = $Rn
/* 23524*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasSHA2())
/* 23526*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHA256SU0rr), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 202:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn) - Complexity = 8
                // Dst: (SHA256SU0rr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn)
/* 23534*/    /*Scope*/ 32, /*->23567*/
/* 23535*/      OPC_CheckChild0Integer, 106|128,2/*362*/, 
/* 23538*/      OPC_Scope, 17, /*->23557*/ // 2 children in Scope
/* 23540*/        OPC_MoveChild1,
/* 23541*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 23544*/        OPC_RecordChild0, // #0 = $Rn
/* 23545*/        OPC_CheckChild1Integer, 4, 
/* 23547*/        OPC_CheckChild1Type, MVT::i64,
/* 23549*/        OPC_MoveParent,
/* 23550*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTLv8i16), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 362:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })) - Complexity = 16
                  // Dst: (FCVTLv8i16:{ *:[v4f32] } V128:{ *:[v8i16] }:$Rn)
/* 23557*/      /*Scope*/ 8, /*->23566*/
/* 23558*/        OPC_RecordChild1, // #0 = $Rn
/* 23559*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTLv4i16), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 362:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn) - Complexity = 8
                  // Dst: (FCVTLv4i16:{ *:[v4f32] } V64:{ *:[v4i16] }:$Rn)
/* 23566*/      0, /*End of Scope*/
/* 23567*/    /*Scope*/ 17, /*->23585*/
/* 23568*/      OPC_CheckChild0Integer, 101|128,1/*229*/, 
/* 23571*/      OPC_RecordChild1, // #0 = $Rn
/* 23572*/      OPC_CheckChild1Type, MVT::v2f64,
/* 23574*/      OPC_CheckType, MVT::v2f32,
/* 23576*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23578*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTXNv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f32] } 229:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn) - Complexity = 8
                // Dst: (FCVTXNv2f32:{ *:[v2f32] } V128:{ *:[v2f64] }:$Rn)
/* 23585*/    /*Scope*/ 106, /*->23692*/
/* 23586*/      OPC_CheckChild0Integer, 89|128,1/*217*/, 
/* 23589*/      OPC_RecordChild1, // #0 = $Rn
/* 23590*/      OPC_SwitchType /*6 cases */, 15, MVT::v4f16,// ->23608
/* 23593*/        OPC_CheckChild1Type, MVT::v4f16,
/* 23595*/        OPC_RecordChild2, // #1 = $Rm
/* 23596*/        OPC_CheckChild2Type, MVT::v4f16,
/* 23598*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23600*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 217:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FABDv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 23608*/      /*SwitchType*/ 15, MVT::v8f16,// ->23625
/* 23610*/        OPC_CheckChild1Type, MVT::v8f16,
/* 23612*/        OPC_RecordChild2, // #1 = $Rm
/* 23613*/        OPC_CheckChild2Type, MVT::v8f16,
/* 23615*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23617*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 217:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FABDv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 23625*/      /*SwitchType*/ 15, MVT::v2f32,// ->23642
/* 23627*/        OPC_CheckChild1Type, MVT::v2f32,
/* 23629*/        OPC_RecordChild2, // #1 = $Rm
/* 23630*/        OPC_CheckChild2Type, MVT::v2f32,
/* 23632*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23634*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 217:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FABDv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 23642*/      /*SwitchType*/ 15, MVT::v4f32,// ->23659
/* 23644*/        OPC_CheckChild1Type, MVT::v4f32,
/* 23646*/        OPC_RecordChild2, // #1 = $Rm
/* 23647*/        OPC_CheckChild2Type, MVT::v4f32,
/* 23649*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23651*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 217:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FABDv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 23659*/      /*SwitchType*/ 15, MVT::v2f64,// ->23676
/* 23661*/        OPC_CheckChild1Type, MVT::v2f64,
/* 23663*/        OPC_RecordChild2, // #1 = $Rm
/* 23664*/        OPC_CheckChild2Type, MVT::v2f64,
/* 23666*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23668*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 217:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FABDv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 23676*/      /*SwitchType*/ 13, MVT::v1f64,// ->23691
/* 23678*/        OPC_CheckChild1Type, MVT::v1f64,
/* 23680*/        OPC_RecordChild2, // #1 = $Rm
/* 23681*/        OPC_CheckChild2Type, MVT::v1f64,
/* 23683*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABD64), 0,
                      MVT::v1f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v1f64] } 217:{ *:[iPTR] }, FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 8
                  // Dst: (FABD64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 23691*/      0, // EndSwitchType
/* 23692*/    /*Scope*/ 91, /*->23784*/
/* 23693*/      OPC_CheckChild0Integer, 106|128,1/*234*/, 
/* 23696*/      OPC_RecordChild1, // #0 = $Rn
/* 23697*/      OPC_SwitchType /*5 cases */, 15, MVT::v4f16,// ->23715
/* 23700*/        OPC_CheckChild1Type, MVT::v4f16,
/* 23702*/        OPC_RecordChild2, // #1 = $Rm
/* 23703*/        OPC_CheckChild2Type, MVT::v4f16,
/* 23705*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23707*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMPv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 234:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FMAXNMPv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 23715*/      /*SwitchType*/ 15, MVT::v8f16,// ->23732
/* 23717*/        OPC_CheckChild1Type, MVT::v8f16,
/* 23719*/        OPC_RecordChild2, // #1 = $Rm
/* 23720*/        OPC_CheckChild2Type, MVT::v8f16,
/* 23722*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23724*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMPv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 234:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FMAXNMPv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 23732*/      /*SwitchType*/ 15, MVT::v2f32,// ->23749
/* 23734*/        OPC_CheckChild1Type, MVT::v2f32,
/* 23736*/        OPC_RecordChild2, // #1 = $Rm
/* 23737*/        OPC_CheckChild2Type, MVT::v2f32,
/* 23739*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23741*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMPv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 234:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FMAXNMPv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 23749*/      /*SwitchType*/ 15, MVT::v4f32,// ->23766
/* 23751*/        OPC_CheckChild1Type, MVT::v4f32,
/* 23753*/        OPC_RecordChild2, // #1 = $Rm
/* 23754*/        OPC_CheckChild2Type, MVT::v4f32,
/* 23756*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23758*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMPv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 234:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FMAXNMPv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 23766*/      /*SwitchType*/ 15, MVT::v2f64,// ->23783
/* 23768*/        OPC_CheckChild1Type, MVT::v2f64,
/* 23770*/        OPC_RecordChild2, // #1 = $Rm
/* 23771*/        OPC_CheckChild2Type, MVT::v2f64,
/* 23773*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23775*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMPv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 234:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FMAXNMPv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 23783*/      0, // EndSwitchType
/* 23784*/    /*Scope*/ 91, /*->23876*/
/* 23785*/      OPC_CheckChild0Integer, 108|128,1/*236*/, 
/* 23788*/      OPC_RecordChild1, // #0 = $Rn
/* 23789*/      OPC_SwitchType /*5 cases */, 15, MVT::v4f16,// ->23807
/* 23792*/        OPC_CheckChild1Type, MVT::v4f16,
/* 23794*/        OPC_RecordChild2, // #1 = $Rm
/* 23795*/        OPC_CheckChild2Type, MVT::v4f16,
/* 23797*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23799*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXPv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 236:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FMAXPv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 23807*/      /*SwitchType*/ 15, MVT::v8f16,// ->23824
/* 23809*/        OPC_CheckChild1Type, MVT::v8f16,
/* 23811*/        OPC_RecordChild2, // #1 = $Rm
/* 23812*/        OPC_CheckChild2Type, MVT::v8f16,
/* 23814*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23816*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXPv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 236:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FMAXPv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 23824*/      /*SwitchType*/ 15, MVT::v2f32,// ->23841
/* 23826*/        OPC_CheckChild1Type, MVT::v2f32,
/* 23828*/        OPC_RecordChild2, // #1 = $Rm
/* 23829*/        OPC_CheckChild2Type, MVT::v2f32,
/* 23831*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23833*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXPv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 236:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FMAXPv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 23841*/      /*SwitchType*/ 15, MVT::v4f32,// ->23858
/* 23843*/        OPC_CheckChild1Type, MVT::v4f32,
/* 23845*/        OPC_RecordChild2, // #1 = $Rm
/* 23846*/        OPC_CheckChild2Type, MVT::v4f32,
/* 23848*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23850*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXPv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 236:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FMAXPv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 23858*/      /*SwitchType*/ 15, MVT::v2f64,// ->23875
/* 23860*/        OPC_CheckChild1Type, MVT::v2f64,
/* 23862*/        OPC_RecordChild2, // #1 = $Rm
/* 23863*/        OPC_CheckChild2Type, MVT::v2f64,
/* 23865*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23867*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXPv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 236:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FMAXPv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 23875*/      0, // EndSwitchType
/* 23876*/    /*Scope*/ 91, /*->23968*/
/* 23877*/      OPC_CheckChild0Integer, 112|128,1/*240*/, 
/* 23880*/      OPC_RecordChild1, // #0 = $Rn
/* 23881*/      OPC_SwitchType /*5 cases */, 15, MVT::v4f16,// ->23899
/* 23884*/        OPC_CheckChild1Type, MVT::v4f16,
/* 23886*/        OPC_RecordChild2, // #1 = $Rm
/* 23887*/        OPC_CheckChild2Type, MVT::v4f16,
/* 23889*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23891*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMPv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 240:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FMINNMPv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 23899*/      /*SwitchType*/ 15, MVT::v8f16,// ->23916
/* 23901*/        OPC_CheckChild1Type, MVT::v8f16,
/* 23903*/        OPC_RecordChild2, // #1 = $Rm
/* 23904*/        OPC_CheckChild2Type, MVT::v8f16,
/* 23906*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23908*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMPv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 240:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FMINNMPv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 23916*/      /*SwitchType*/ 15, MVT::v2f32,// ->23933
/* 23918*/        OPC_CheckChild1Type, MVT::v2f32,
/* 23920*/        OPC_RecordChild2, // #1 = $Rm
/* 23921*/        OPC_CheckChild2Type, MVT::v2f32,
/* 23923*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23925*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMPv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 240:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FMINNMPv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 23933*/      /*SwitchType*/ 15, MVT::v4f32,// ->23950
/* 23935*/        OPC_CheckChild1Type, MVT::v4f32,
/* 23937*/        OPC_RecordChild2, // #1 = $Rm
/* 23938*/        OPC_CheckChild2Type, MVT::v4f32,
/* 23940*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23942*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMPv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 240:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FMINNMPv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 23950*/      /*SwitchType*/ 15, MVT::v2f64,// ->23967
/* 23952*/        OPC_CheckChild1Type, MVT::v2f64,
/* 23954*/        OPC_RecordChild2, // #1 = $Rm
/* 23955*/        OPC_CheckChild2Type, MVT::v2f64,
/* 23957*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 23959*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMPv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 240:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FMINNMPv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 23967*/      0, // EndSwitchType
/* 23968*/    /*Scope*/ 91, /*->24060*/
/* 23969*/      OPC_CheckChild0Integer, 114|128,1/*242*/, 
/* 23972*/      OPC_RecordChild1, // #0 = $Rn
/* 23973*/      OPC_SwitchType /*5 cases */, 15, MVT::v4f16,// ->23991
/* 23976*/        OPC_CheckChild1Type, MVT::v4f16,
/* 23978*/        OPC_RecordChild2, // #1 = $Rm
/* 23979*/        OPC_CheckChild2Type, MVT::v4f16,
/* 23981*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 23983*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINPv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 242:{ *:[iPTR] }, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (FMINPv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 23991*/      /*SwitchType*/ 15, MVT::v8f16,// ->24008
/* 23993*/        OPC_CheckChild1Type, MVT::v8f16,
/* 23995*/        OPC_RecordChild2, // #1 = $Rm
/* 23996*/        OPC_CheckChild2Type, MVT::v8f16,
/* 23998*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 24000*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINPv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 242:{ *:[iPTR] }, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (FMINPv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 24008*/      /*SwitchType*/ 15, MVT::v2f32,// ->24025
/* 24010*/        OPC_CheckChild1Type, MVT::v2f32,
/* 24012*/        OPC_RecordChild2, // #1 = $Rm
/* 24013*/        OPC_CheckChild2Type, MVT::v2f32,
/* 24015*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24017*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINPv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 242:{ *:[iPTR] }, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (FMINPv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 24025*/      /*SwitchType*/ 15, MVT::v4f32,// ->24042
/* 24027*/        OPC_CheckChild1Type, MVT::v4f32,
/* 24029*/        OPC_RecordChild2, // #1 = $Rm
/* 24030*/        OPC_CheckChild2Type, MVT::v4f32,
/* 24032*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24034*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINPv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 242:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (FMINPv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 24042*/      /*SwitchType*/ 15, MVT::v2f64,// ->24059
/* 24044*/        OPC_CheckChild1Type, MVT::v2f64,
/* 24046*/        OPC_RecordChild2, // #1 = $Rm
/* 24047*/        OPC_CheckChild2Type, MVT::v2f64,
/* 24049*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24051*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINPv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 242:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 8
                  // Dst: (FMINPv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 24059*/      0, // EndSwitchType
/* 24060*/    0, /*End of Scope*/
/* 24061*/  /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(ISD::CTLZ),// ->24289
/* 24065*/    OPC_Scope, 4|128,1/*132*/, /*->24200*/ // 2 children in Scope
/* 24068*/      OPC_MoveChild0,
/* 24069*/      OPC_CheckOpcode, TARGET_VAL(ISD::OR),
/* 24072*/      OPC_MoveChild0,
/* 24073*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 24076*/      OPC_MoveChild0,
/* 24077*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 24080*/      OPC_Scope, 59, /*->24141*/ // 2 children in Scope
/* 24082*/        OPC_MoveChild0,
/* 24083*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 24086*/        OPC_RecordChild0, // #0 = $Rn
/* 24087*/        OPC_Scope, 25, /*->24114*/ // 2 children in Scope
/* 24089*/          OPC_CheckChild1Integer, 31, 
/* 24091*/          OPC_CheckChild1Type, MVT::i64,
/* 24093*/          OPC_MoveParent,
/* 24094*/          OPC_CheckChild1Same, 0,
/* 24096*/          OPC_MoveParent,
/* 24097*/          OPC_CheckChild1Integer, 1, 
/* 24099*/          OPC_CheckChild1Type, MVT::i64,
/* 24101*/          OPC_MoveParent,
/* 24102*/          OPC_CheckChild1Integer, 1, 
/* 24104*/          OPC_MoveParent,
/* 24105*/          OPC_CheckType, MVT::i32,
/* 24107*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSWr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (ctlz:{ *:[i32] } (or:{ *:[i32] } (shl:{ *:[i32] } (xor:{ *:[i32] } (sra:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, 31:{ *:[i64] }), GPR32:{ *:[i32] }:$Rn), 1:{ *:[i64] }), 1:{ *:[i32] })) - Complexity = 30
                    // Dst: (CLSWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn)
/* 24114*/        /*Scope*/ 25, /*->24140*/
/* 24115*/          OPC_CheckChild1Integer, 63, 
/* 24117*/          OPC_CheckChild1Type, MVT::i64,
/* 24119*/          OPC_MoveParent,
/* 24120*/          OPC_CheckChild1Same, 0,
/* 24122*/          OPC_MoveParent,
/* 24123*/          OPC_CheckChild1Integer, 1, 
/* 24125*/          OPC_CheckChild1Type, MVT::i64,
/* 24127*/          OPC_MoveParent,
/* 24128*/          OPC_CheckChild1Integer, 1, 
/* 24130*/          OPC_MoveParent,
/* 24131*/          OPC_CheckType, MVT::i64,
/* 24133*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSXr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (ctlz:{ *:[i64] } (or:{ *:[i64] } (shl:{ *:[i64] } (xor:{ *:[i64] } (sra:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, 63:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn), 1:{ *:[i64] }), 1:{ *:[i64] })) - Complexity = 30
                    // Dst: (CLSXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn)
/* 24140*/        0, /*End of Scope*/
/* 24141*/      /*Scope*/ 57, /*->24199*/
/* 24142*/        OPC_RecordChild0, // #0 = $Rn
/* 24143*/        OPC_MoveChild1,
/* 24144*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 24147*/        OPC_CheckChild0Same, 0,
/* 24149*/        OPC_Scope, 23, /*->24174*/ // 2 children in Scope
/* 24151*/          OPC_CheckChild1Integer, 31, 
/* 24153*/          OPC_CheckChild1Type, MVT::i64,
/* 24155*/          OPC_MoveParent,
/* 24156*/          OPC_MoveParent,
/* 24157*/          OPC_CheckChild1Integer, 1, 
/* 24159*/          OPC_CheckChild1Type, MVT::i64,
/* 24161*/          OPC_MoveParent,
/* 24162*/          OPC_CheckChild1Integer, 1, 
/* 24164*/          OPC_MoveParent,
/* 24165*/          OPC_CheckType, MVT::i32,
/* 24167*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSWr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (ctlz:{ *:[i32] } (or:{ *:[i32] } (shl:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (sra:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, 31:{ *:[i64] })), 1:{ *:[i64] }), 1:{ *:[i32] })) - Complexity = 30
                    // Dst: (CLSWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn)
/* 24174*/        /*Scope*/ 23, /*->24198*/
/* 24175*/          OPC_CheckChild1Integer, 63, 
/* 24177*/          OPC_CheckChild1Type, MVT::i64,
/* 24179*/          OPC_MoveParent,
/* 24180*/          OPC_MoveParent,
/* 24181*/          OPC_CheckChild1Integer, 1, 
/* 24183*/          OPC_CheckChild1Type, MVT::i64,
/* 24185*/          OPC_MoveParent,
/* 24186*/          OPC_CheckChild1Integer, 1, 
/* 24188*/          OPC_MoveParent,
/* 24189*/          OPC_CheckType, MVT::i64,
/* 24191*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLSXr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (ctlz:{ *:[i64] } (or:{ *:[i64] } (shl:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (sra:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, 63:{ *:[i64] })), 1:{ *:[i64] }), 1:{ *:[i64] })) - Complexity = 30
                    // Dst: (CLSXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn)
/* 24198*/        0, /*End of Scope*/
/* 24199*/      0, /*End of Scope*/
/* 24200*/    /*Scope*/ 87, /*->24288*/
/* 24201*/      OPC_RecordChild0, // #0 = $Rn
/* 24202*/      OPC_SwitchType /*8 cases */, 7, MVT::i32,// ->24212
/* 24205*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZWr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[i32] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                  // Dst: (CLZWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn)
/* 24212*/      /*SwitchType*/ 7, MVT::i64,// ->24221
/* 24214*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZXr), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[i64] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                  // Dst: (CLZXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn)
/* 24221*/      /*SwitchType*/ 9, MVT::v8i8,// ->24232
/* 24223*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24225*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                  // Dst: (CLZv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 24232*/      /*SwitchType*/ 9, MVT::v16i8,// ->24243
/* 24234*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24236*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                  // Dst: (CLZv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 24243*/      /*SwitchType*/ 9, MVT::v4i16,// ->24254
/* 24245*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24247*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (CLZv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 24254*/      /*SwitchType*/ 9, MVT::v8i16,// ->24265
/* 24256*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24258*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZv8i16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                  // Dst: (CLZv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 24265*/      /*SwitchType*/ 9, MVT::v2i32,// ->24276
/* 24267*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24269*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (CLZv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 24276*/      /*SwitchType*/ 9, MVT::v4i32,// ->24287
/* 24278*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 24280*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZv4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (ctlz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                  // Dst: (CLZv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 24287*/      0, // EndSwitchType
/* 24288*/    0, /*End of Scope*/
/* 24289*/  /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::SRA),// ->24601
/* 24293*/    OPC_Scope, 29|128,1/*157*/, /*->24453*/ // 2 children in Scope
/* 24296*/      OPC_MoveChild0,
/* 24297*/      OPC_SwitchOpcode /*2 cases */, 102, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->24403
/* 24301*/        OPC_RecordChild0, // #0 = $Rn
/* 24302*/        OPC_MoveChild1,
/* 24303*/        OPC_Scope, 48, /*->24353*/ // 2 children in Scope
/* 24305*/          OPC_CheckValueType, MVT::i8,
/* 24307*/          OPC_MoveParent,
/* 24308*/          OPC_MoveParent,
/* 24309*/          OPC_RecordChild1, // #1 = $imm
/* 24310*/          OPC_MoveChild1,
/* 24311*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 24314*/          OPC_CheckPredicate, 22, // Predicate_imm0_7
/* 24316*/          OPC_CheckType, MVT::i64,
/* 24318*/          OPC_MoveParent,
/* 24319*/          OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->24336
/* 24322*/            OPC_EmitConvertToTarget, 1,
/* 24324*/            OPC_EmitInteger, MVT::i64, 7, 
/* 24327*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMWri), 0,
                          MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (sra:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, i8:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_imm0_7>>:$imm) - Complexity = 30
                      // Dst: (SBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_7>>:$imm, 7:{ *:[i64] })
/* 24336*/          /*SwitchType*/ 14, MVT::i64,// ->24352
/* 24338*/            OPC_EmitConvertToTarget, 1,
/* 24340*/            OPC_EmitInteger, MVT::i64, 7, 
/* 24343*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                          MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (sra:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i8:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_imm0_7>>:$imm) - Complexity = 30
                      // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_7>>:$imm, 7:{ *:[i64] })
/* 24352*/          0, // EndSwitchType
/* 24353*/        /*Scope*/ 48, /*->24402*/
/* 24354*/          OPC_CheckValueType, MVT::i16,
/* 24356*/          OPC_MoveParent,
/* 24357*/          OPC_MoveParent,
/* 24358*/          OPC_RecordChild1, // #1 = $imm
/* 24359*/          OPC_MoveChild1,
/* 24360*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 24363*/          OPC_CheckPredicate, 23, // Predicate_imm0_15
/* 24365*/          OPC_CheckType, MVT::i64,
/* 24367*/          OPC_MoveParent,
/* 24368*/          OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->24385
/* 24371*/            OPC_EmitConvertToTarget, 1,
/* 24373*/            OPC_EmitInteger, MVT::i64, 15, 
/* 24376*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMWri), 0,
                          MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (sra:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 30
                      // Dst: (SBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_15>>:$imm, 15:{ *:[i64] })
/* 24385*/          /*SwitchType*/ 14, MVT::i64,// ->24401
/* 24387*/            OPC_EmitConvertToTarget, 1,
/* 24389*/            OPC_EmitInteger, MVT::i64, 15, 
/* 24392*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                          MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (sra:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i16:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 30
                      // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_15>>:$imm, 15:{ *:[i64] })
/* 24401*/          0, // EndSwitchType
/* 24402*/        0, /*End of Scope*/
/* 24403*/      /*SwitchOpcode*/ 46, TARGET_VAL(ISD::SIGN_EXTEND),// ->24452
/* 24406*/        OPC_RecordChild0, // #0 = $Rn
/* 24407*/        OPC_MoveParent,
/* 24408*/        OPC_RecordChild1, // #1 = $imm
/* 24409*/        OPC_MoveChild1,
/* 24410*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 24413*/        OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 24415*/        OPC_CheckType, MVT::i64,
/* 24417*/        OPC_MoveParent,
/* 24418*/        OPC_CheckType, MVT::i64,
/* 24420*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 24426*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 24429*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 24438*/        OPC_EmitConvertToTarget, 1,
/* 24440*/        OPC_EmitInteger, MVT::i64, 31, 
/* 24443*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (sra:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 30
                  // Dst: (SBFMXri:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GPR32:{ *:[i32] }:$Rn, sub_32:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm, 31:{ *:[i64] })
/* 24452*/      0, // EndSwitchOpcode
/* 24453*/    /*Scope*/ 17|128,1/*145*/, /*->24600*/
/* 24455*/      OPC_RecordChild0, // #0 = $Rn
/* 24456*/      OPC_Scope, 49, /*->24507*/ // 3 children in Scope
/* 24458*/        OPC_RecordChild1, // #1 = $imm
/* 24459*/        OPC_MoveChild1,
/* 24460*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 24463*/        OPC_CheckType, MVT::i64,
/* 24465*/        OPC_Scope, 19, /*->24486*/ // 2 children in Scope
/* 24467*/          OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 24469*/          OPC_MoveParent,
/* 24470*/          OPC_CheckType, MVT::i32,
/* 24472*/          OPC_EmitConvertToTarget, 1,
/* 24474*/          OPC_EmitInteger, MVT::i64, 31, 
/* 24477*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMWri), 0,
                        MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sra:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 17
                    // Dst: (SBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm, 31:{ *:[i64] })
/* 24486*/        /*Scope*/ 19, /*->24506*/
/* 24487*/          OPC_CheckPredicate, 25, // Predicate_imm0_63
/* 24489*/          OPC_MoveParent,
/* 24490*/          OPC_CheckType, MVT::i64,
/* 24492*/          OPC_EmitConvertToTarget, 1,
/* 24494*/          OPC_EmitInteger, MVT::i64, 63, 
/* 24497*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sra:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm) - Complexity = 17
                    // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm, 63:{ *:[i64] })
/* 24506*/        0, /*End of Scope*/
/* 24507*/      /*Scope*/ 54, /*->24562*/
/* 24508*/        OPC_MoveChild1,
/* 24509*/        OPC_SwitchOpcode /*3 cases */, 14, TARGET_VAL(ISD::ZERO_EXTEND),// ->24527
/* 24513*/          OPC_RecordChild0, // #1 = $Rm
/* 24514*/          OPC_CheckType, MVT::i64,
/* 24516*/          OPC_MoveParent,
/* 24517*/          OPC_CheckType, MVT::i32,
/* 24519*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ASRVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (ASRVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 24527*/        /*SwitchOpcode*/ 14, TARGET_VAL(ISD::ANY_EXTEND),// ->24544
/* 24530*/          OPC_RecordChild0, // #1 = $Rm
/* 24531*/          OPC_CheckType, MVT::i64,
/* 24533*/          OPC_MoveParent,
/* 24534*/          OPC_CheckType, MVT::i32,
/* 24536*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ASRVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (anyext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (ASRVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 24544*/        /*SwitchOpcode*/ 14, TARGET_VAL(ISD::SIGN_EXTEND),// ->24561
/* 24547*/          OPC_RecordChild0, // #1 = $Rm
/* 24548*/          OPC_CheckType, MVT::i64,
/* 24550*/          OPC_MoveParent,
/* 24551*/          OPC_CheckType, MVT::i32,
/* 24553*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ASRVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (ASRVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 24561*/        0, // EndSwitchOpcode
/* 24562*/      /*Scope*/ 36, /*->24599*/
/* 24563*/        OPC_RecordChild1, // #1 = $Rm
/* 24564*/        OPC_CheckChild1Type, MVT::i64,
/* 24566*/        OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->24577
/* 24569*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ASRVXr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (ASRVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 24577*/        /*SwitchType*/ 19, MVT::i32,// ->24598
/* 24579*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 24582*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 24590*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ASRVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (sra:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, i64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (ASRVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$Rm, sub_32:{ *:[i32] }))
/* 24598*/        0, // EndSwitchType
/* 24599*/      0, /*End of Scope*/
/* 24600*/    0, /*End of Scope*/
/* 24601*/  /*SwitchOpcode*/ 56|128,26/*3384*/, TARGET_VAL(ISD::LOAD),// ->27989
/* 24605*/    OPC_RecordMemRef,
/* 24606*/    OPC_RecordNode, // #0 = 'ld' chained node
/* 24607*/    OPC_RecordChild1, // #1 = $ro_Windexed8:Rn:Rm:extend
/* 24608*/    OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 24610*/    OPC_Scope, 76, /*->24688*/ // 20 children in Scope
/* 24612*/      OPC_CheckPredicate, 27, // Predicate_zextload
/* 24614*/      OPC_CheckType, MVT::i32,
/* 24616*/      OPC_Scope, 34, /*->24652*/ // 2 children in Scope
/* 24618*/        OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 24620*/        OPC_Scope, 14, /*->24636*/ // 2 children in Scope
/* 24622*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 24625*/          OPC_EmitMergeInputChains1_0,
/* 24626*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 29
                    // Dst: (LDRBBroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/* 24636*/        /*Scope*/ 14, /*->24651*/
/* 24637*/          OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 24640*/          OPC_EmitMergeInputChains1_0,
/* 24641*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 29
                    // Dst: (LDRBBroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/* 24651*/        0, /*End of Scope*/
/* 24652*/      /*Scope*/ 34, /*->24687*/
/* 24653*/        OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 24655*/        OPC_Scope, 14, /*->24671*/ // 2 children in Scope
/* 24657*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 24660*/          OPC_EmitMergeInputChains1_0,
/* 24661*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 29
                    // Dst: (LDRHHroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/* 24671*/        /*Scope*/ 14, /*->24686*/
/* 24672*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 24675*/          OPC_EmitMergeInputChains1_0,
/* 24676*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 29
                    // Dst: (LDRHHroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/* 24686*/        0, /*End of Scope*/
/* 24687*/      0, /*End of Scope*/
/* 24688*/    /*Scope*/ 106, /*->24795*/
/* 24689*/      OPC_CheckPredicate, 30, // Predicate_load
/* 24691*/      OPC_SwitchType /*3 cases */, 32, MVT::i32,// ->24726
/* 24694*/        OPC_Scope, 14, /*->24710*/ // 2 children in Scope
/* 24696*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 24699*/          OPC_EmitMergeInputChains1_0,
/* 24700*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRWroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRWroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/* 24710*/        /*Scope*/ 14, /*->24725*/
/* 24711*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 24714*/          OPC_EmitMergeInputChains1_0,
/* 24715*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRWroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRWroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/* 24725*/        0, /*End of Scope*/
/* 24726*/      /*SwitchType*/ 32, MVT::i64,// ->24760
/* 24728*/        OPC_Scope, 14, /*->24744*/ // 2 children in Scope
/* 24730*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 24733*/          OPC_EmitMergeInputChains1_0,
/* 24734*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRXroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i64] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRXroW:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 24744*/        /*Scope*/ 14, /*->24759*/
/* 24745*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 24748*/          OPC_EmitMergeInputChains1_0,
/* 24749*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRXroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i64] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRXroX:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 24759*/        0, /*End of Scope*/
/* 24760*/      /*SwitchType*/ 32, MVT::Untyped,// ->24794
/* 24762*/        OPC_Scope, 14, /*->24778*/ // 2 children in Scope
/* 24764*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 24767*/          OPC_EmitMergeInputChains1_0,
/* 24768*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[Untyped] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRBroW:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/* 24778*/        /*Scope*/ 14, /*->24793*/
/* 24779*/          OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 24782*/          OPC_EmitMergeInputChains1_0,
/* 24783*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[Untyped] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRBroX:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/* 24793*/        0, /*End of Scope*/
/* 24794*/      0, // EndSwitchType
/* 24795*/    /*Scope*/ 59|128,1/*187*/, /*->24984*/
/* 24797*/      OPC_CheckPredicate, 31, // Predicate_sextload
/* 24799*/      OPC_Scope, 72, /*->24873*/ // 3 children in Scope
/* 24801*/        OPC_CheckPredicate, 29, // Predicate_sextloadi16
/* 24803*/        OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->24838
/* 24806*/          OPC_Scope, 14, /*->24822*/ // 2 children in Scope
/* 24808*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 24811*/            OPC_EmitMergeInputChains1_0,
/* 24812*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSHWroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 29
                      // Dst: (LDRSHWroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/* 24822*/          /*Scope*/ 14, /*->24837*/
/* 24823*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 24826*/            OPC_EmitMergeInputChains1_0,
/* 24827*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSHWroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 29
                      // Dst: (LDRSHWroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/* 24837*/          0, /*End of Scope*/
/* 24838*/        /*SwitchType*/ 32, MVT::i64,// ->24872
/* 24840*/          OPC_Scope, 14, /*->24856*/ // 2 children in Scope
/* 24842*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 24845*/            OPC_EmitMergeInputChains1_0,
/* 24846*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSHXroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i64] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 29
                      // Dst: (LDRSHXroW:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/* 24856*/          /*Scope*/ 14, /*->24871*/
/* 24857*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 24860*/            OPC_EmitMergeInputChains1_0,
/* 24861*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSHXroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i64] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 29
                      // Dst: (LDRSHXroX:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/* 24871*/          0, /*End of Scope*/
/* 24872*/        0, // EndSwitchType
/* 24873*/      /*Scope*/ 72, /*->24946*/
/* 24874*/        OPC_CheckPredicate, 28, // Predicate_sextloadi8
/* 24876*/        OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->24911
/* 24879*/          OPC_Scope, 14, /*->24895*/ // 2 children in Scope
/* 24881*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 24884*/            OPC_EmitMergeInputChains1_0,
/* 24885*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSBWroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 29
                      // Dst: (LDRSBWroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/* 24895*/          /*Scope*/ 14, /*->24910*/
/* 24896*/            OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 24899*/            OPC_EmitMergeInputChains1_0,
/* 24900*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSBWroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 29
                      // Dst: (LDRSBWroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/* 24910*/          0, /*End of Scope*/
/* 24911*/        /*SwitchType*/ 32, MVT::i64,// ->24945
/* 24913*/          OPC_Scope, 14, /*->24929*/ // 2 children in Scope
/* 24915*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 24918*/            OPC_EmitMergeInputChains1_0,
/* 24919*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSBXroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i64] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 29
                      // Dst: (LDRSBXroW:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/* 24929*/          /*Scope*/ 14, /*->24944*/
/* 24930*/            OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 24933*/            OPC_EmitMergeInputChains1_0,
/* 24934*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSBXroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[i64] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 29
                      // Dst: (LDRSBXroX:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/* 24944*/          0, /*End of Scope*/
/* 24945*/        0, // EndSwitchType
/* 24946*/      /*Scope*/ 36, /*->24983*/
/* 24947*/        OPC_CheckPredicate, 32, // Predicate_sextloadi32
/* 24949*/        OPC_CheckType, MVT::i64,
/* 24951*/        OPC_Scope, 14, /*->24967*/ // 2 children in Scope
/* 24953*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 24956*/          OPC_EmitMergeInputChains1_0,
/* 24957*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSWroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i64] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 29
                    // Dst: (LDRSWroW:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/* 24967*/        /*Scope*/ 14, /*->24982*/
/* 24968*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 24971*/          OPC_EmitMergeInputChains1_0,
/* 24972*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSWroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i64] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 29
                    // Dst: (LDRSWroX:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/* 24982*/        0, /*End of Scope*/
/* 24983*/      0, /*End of Scope*/
/* 24984*/    /*Scope*/ 111, /*->25096*/
/* 24985*/      OPC_CheckPredicate, 33, // Predicate_extload
/* 24987*/      OPC_CheckType, MVT::i32,
/* 24989*/      OPC_Scope, 34, /*->25025*/ // 3 children in Scope
/* 24991*/        OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 24993*/        OPC_Scope, 14, /*->25009*/ // 2 children in Scope
/* 24995*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 24998*/          OPC_EmitMergeInputChains1_0,
/* 24999*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 29
                    // Dst: (LDRBBroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/* 25009*/        /*Scope*/ 14, /*->25024*/
/* 25010*/          OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 25013*/          OPC_EmitMergeInputChains1_0,
/* 25014*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 29
                    // Dst: (LDRBBroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/* 25024*/        0, /*End of Scope*/
/* 25025*/      /*Scope*/ 34, /*->25060*/
/* 25026*/        OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 25028*/        OPC_Scope, 14, /*->25044*/ // 2 children in Scope
/* 25030*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 25033*/          OPC_EmitMergeInputChains1_0,
/* 25034*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 29
                    // Dst: (LDRHHroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/* 25044*/        /*Scope*/ 14, /*->25059*/
/* 25045*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 25048*/          OPC_EmitMergeInputChains1_0,
/* 25049*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 29
                    // Dst: (LDRHHroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/* 25059*/        0, /*End of Scope*/
/* 25060*/      /*Scope*/ 34, /*->25095*/
/* 25061*/        OPC_CheckPredicate, 32, // Predicate_extloadi32
/* 25063*/        OPC_Scope, 14, /*->25079*/ // 2 children in Scope
/* 25065*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 25068*/          OPC_EmitMergeInputChains1_0,
/* 25069*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRWroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 29
                    // Dst: (LDRWroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/* 25079*/        /*Scope*/ 14, /*->25094*/
/* 25080*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 25083*/          OPC_EmitMergeInputChains1_0,
/* 25084*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRWroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 29
                    // Dst: (LDRWroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/* 25094*/        0, /*End of Scope*/
/* 25095*/      0, /*End of Scope*/
/* 25096*/    /*Scope*/ 49|128,2/*305*/, /*->25403*/
/* 25098*/      OPC_CheckPredicate, 27, // Predicate_zextload
/* 25100*/      OPC_SwitchType /*2 cases */, 34, MVT::i32,// ->25137
/* 25103*/        OPC_CheckPredicate, 34, // Predicate_zextloadi1
/* 25105*/        OPC_Scope, 14, /*->25121*/ // 2 children in Scope
/* 25107*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 25110*/          OPC_EmitMergeInputChains1_0,
/* 25111*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 29
                    // Dst: (LDRBBroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/* 25121*/        /*Scope*/ 14, /*->25136*/
/* 25122*/          OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 25125*/          OPC_EmitMergeInputChains1_0,
/* 25126*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 29
                    // Dst: (LDRBBroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/* 25136*/        0, /*End of Scope*/
/* 25137*/      /*SwitchType*/ 6|128,2/*262*/, MVT::i64,// ->25402
/* 25140*/        OPC_Scope, 64, /*->25206*/ // 4 children in Scope
/* 25142*/          OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 25144*/          OPC_Scope, 29, /*->25175*/ // 2 children in Scope
/* 25146*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 25149*/            OPC_EmitMergeInputChains1_0,
/* 25150*/            OPC_EmitInteger, MVT::i64, 0, 
/* 25153*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25163*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25166*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (ld:{ *:[i64] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 29
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25175*/          /*Scope*/ 29, /*->25205*/
/* 25176*/            OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 25179*/            OPC_EmitMergeInputChains1_0,
/* 25180*/            OPC_EmitInteger, MVT::i64, 0, 
/* 25183*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25193*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25196*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (ld:{ *:[i64] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 29
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25205*/          0, /*End of Scope*/
/* 25206*/        /*Scope*/ 64, /*->25271*/
/* 25207*/          OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 25209*/          OPC_Scope, 29, /*->25240*/ // 2 children in Scope
/* 25211*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 25214*/            OPC_EmitMergeInputChains1_0,
/* 25215*/            OPC_EmitInteger, MVT::i64, 0, 
/* 25218*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHHroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25228*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25231*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (ld:{ *:[i64] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 29
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRHHroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25240*/          /*Scope*/ 29, /*->25270*/
/* 25241*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 25244*/            OPC_EmitMergeInputChains1_0,
/* 25245*/            OPC_EmitInteger, MVT::i64, 0, 
/* 25248*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHHroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25258*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25261*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (ld:{ *:[i64] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 29
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRHHroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25270*/          0, /*End of Scope*/
/* 25271*/        /*Scope*/ 64, /*->25336*/
/* 25272*/          OPC_CheckPredicate, 32, // Predicate_zextloadi32
/* 25274*/          OPC_Scope, 29, /*->25305*/ // 2 children in Scope
/* 25276*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 25279*/            OPC_EmitMergeInputChains1_0,
/* 25280*/            OPC_EmitInteger, MVT::i64, 0, 
/* 25283*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRWroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25293*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25296*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (ld:{ *:[i64] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 29
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRWroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25305*/          /*Scope*/ 29, /*->25335*/
/* 25306*/            OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 25309*/            OPC_EmitMergeInputChains1_0,
/* 25310*/            OPC_EmitInteger, MVT::i64, 0, 
/* 25313*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRWroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25323*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25326*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (ld:{ *:[i64] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 29
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRWroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25335*/          0, /*End of Scope*/
/* 25336*/        /*Scope*/ 64, /*->25401*/
/* 25337*/          OPC_CheckPredicate, 34, // Predicate_zextloadi1
/* 25339*/          OPC_Scope, 29, /*->25370*/ // 2 children in Scope
/* 25341*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 25344*/            OPC_EmitMergeInputChains1_0,
/* 25345*/            OPC_EmitInteger, MVT::i64, 0, 
/* 25348*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25358*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25361*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (ld:{ *:[i64] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 29
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25370*/          /*Scope*/ 29, /*->25400*/
/* 25371*/            OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 25374*/            OPC_EmitMergeInputChains1_0,
/* 25375*/            OPC_EmitInteger, MVT::i64, 0, 
/* 25378*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25388*/            OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25391*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                          MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (ld:{ *:[i64] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 29
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25400*/          0, /*End of Scope*/
/* 25401*/        0, /*End of Scope*/
/* 25402*/      0, // EndSwitchType
/* 25403*/    /*Scope*/ 10|128,2/*266*/, /*->25671*/
/* 25405*/      OPC_CheckPredicate, 33, // Predicate_extload
/* 25407*/      OPC_CheckType, MVT::i64,
/* 25409*/      OPC_Scope, 64, /*->25475*/ // 4 children in Scope
/* 25411*/        OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 25413*/        OPC_Scope, 29, /*->25444*/ // 2 children in Scope
/* 25415*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 25418*/          OPC_EmitMergeInputChains1_0,
/* 25419*/          OPC_EmitInteger, MVT::i64, 0, 
/* 25422*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25432*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25435*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (ld:{ *:[i64] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 29
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25444*/        /*Scope*/ 29, /*->25474*/
/* 25445*/          OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 25448*/          OPC_EmitMergeInputChains1_0,
/* 25449*/          OPC_EmitInteger, MVT::i64, 0, 
/* 25452*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25462*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25465*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (ld:{ *:[i64] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 29
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25474*/        0, /*End of Scope*/
/* 25475*/      /*Scope*/ 64, /*->25540*/
/* 25476*/        OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 25478*/        OPC_Scope, 29, /*->25509*/ // 2 children in Scope
/* 25480*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 25483*/          OPC_EmitMergeInputChains1_0,
/* 25484*/          OPC_EmitInteger, MVT::i64, 0, 
/* 25487*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRHHroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25497*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25500*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (ld:{ *:[i64] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 29
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRHHroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25509*/        /*Scope*/ 29, /*->25539*/
/* 25510*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 25513*/          OPC_EmitMergeInputChains1_0,
/* 25514*/          OPC_EmitInteger, MVT::i64, 0, 
/* 25517*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRHHroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25527*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25530*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (ld:{ *:[i64] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 29
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRHHroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25539*/        0, /*End of Scope*/
/* 25540*/      /*Scope*/ 64, /*->25605*/
/* 25541*/        OPC_CheckPredicate, 32, // Predicate_extloadi32
/* 25543*/        OPC_Scope, 29, /*->25574*/ // 2 children in Scope
/* 25545*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 25548*/          OPC_EmitMergeInputChains1_0,
/* 25549*/          OPC_EmitInteger, MVT::i64, 0, 
/* 25552*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRWroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25562*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25565*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (ld:{ *:[i64] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 29
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRWroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25574*/        /*Scope*/ 29, /*->25604*/
/* 25575*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 25578*/          OPC_EmitMergeInputChains1_0,
/* 25579*/          OPC_EmitInteger, MVT::i64, 0, 
/* 25582*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRWroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25592*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25595*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (ld:{ *:[i64] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 29
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRWroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25604*/        0, /*End of Scope*/
/* 25605*/      /*Scope*/ 64, /*->25670*/
/* 25606*/        OPC_CheckPredicate, 34, // Predicate_extloadi1
/* 25608*/        OPC_Scope, 29, /*->25639*/ // 2 children in Scope
/* 25610*/          OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 25613*/          OPC_EmitMergeInputChains1_0,
/* 25614*/          OPC_EmitInteger, MVT::i64, 0, 
/* 25617*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25627*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25630*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (ld:{ *:[i64] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 29
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25639*/        /*Scope*/ 29, /*->25669*/
/* 25640*/          OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 25643*/          OPC_EmitMergeInputChains1_0,
/* 25644*/          OPC_EmitInteger, MVT::i64, 0, 
/* 25647*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 25657*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 25660*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (ld:{ *:[i64] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 29
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend), sub_32:{ *:[i32] })
/* 25669*/        0, /*End of Scope*/
/* 25670*/      0, /*End of Scope*/
/* 25671*/    /*Scope*/ 46, /*->25718*/
/* 25672*/      OPC_CheckPredicate, 30, // Predicate_load
/* 25674*/      OPC_SwitchType /*3 cases */, 12, MVT::i64,// ->25689
/* 25677*/        OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 25680*/        OPC_EmitMergeInputChains1_0,
/* 25681*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRXui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 23
                  // Dst: (LDRXui:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 25689*/      /*SwitchType*/ 12, MVT::i32,// ->25703
/* 25691*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 25694*/        OPC_EmitMergeInputChains1_0,
/* 25695*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRWui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 23
                  // Dst: (LDRWui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/* 25703*/      /*SwitchType*/ 12, MVT::Untyped,// ->25717
/* 25705*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 25708*/        OPC_EmitMergeInputChains1_0,
/* 25709*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::Untyped, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[Untyped] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 23
                  // Dst: (LDRBui:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 25717*/      0, // EndSwitchType
/* 25718*/    /*Scope*/ 36, /*->25755*/
/* 25719*/      OPC_CheckPredicate, 27, // Predicate_zextload
/* 25721*/      OPC_CheckType, MVT::i32,
/* 25723*/      OPC_Scope, 14, /*->25739*/ // 2 children in Scope
/* 25725*/        OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 25727*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 25730*/        OPC_EmitMergeInputChains1_0,
/* 25731*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 23
                  // Dst: (LDRHHui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/* 25739*/      /*Scope*/ 14, /*->25754*/
/* 25740*/        OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 25742*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 25745*/        OPC_EmitMergeInputChains1_0,
/* 25746*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 23
                  // Dst: (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 25754*/      0, /*End of Scope*/
/* 25755*/    /*Scope*/ 87, /*->25843*/
/* 25756*/      OPC_CheckPredicate, 31, // Predicate_sextload
/* 25758*/      OPC_Scope, 32, /*->25792*/ // 3 children in Scope
/* 25760*/        OPC_CheckPredicate, 29, // Predicate_sextloadi16
/* 25762*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->25777
/* 25765*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 25768*/          OPC_EmitMergeInputChains1_0,
/* 25769*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSHWui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 23
                    // Dst: (LDRSHWui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/* 25777*/        /*SwitchType*/ 12, MVT::i64,// ->25791
/* 25779*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 25782*/          OPC_EmitMergeInputChains1_0,
/* 25783*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSHXui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 23
                    // Dst: (LDRSHXui:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/* 25791*/        0, // EndSwitchType
/* 25792*/      /*Scope*/ 32, /*->25825*/
/* 25793*/        OPC_CheckPredicate, 28, // Predicate_sextloadi8
/* 25795*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->25810
/* 25798*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 25801*/          OPC_EmitMergeInputChains1_0,
/* 25802*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSBWui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 23
                    // Dst: (LDRSBWui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 25810*/        /*SwitchType*/ 12, MVT::i64,// ->25824
/* 25812*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 25815*/          OPC_EmitMergeInputChains1_0,
/* 25816*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSBXui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 23
                    // Dst: (LDRSBXui:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 25824*/        0, // EndSwitchType
/* 25825*/      /*Scope*/ 16, /*->25842*/
/* 25826*/        OPC_CheckPredicate, 32, // Predicate_sextloadi32
/* 25828*/        OPC_CheckType, MVT::i64,
/* 25830*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 25833*/        OPC_EmitMergeInputChains1_0,
/* 25834*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSWui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 23
                  // Dst: (LDRSWui:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/* 25842*/      0, /*End of Scope*/
/* 25843*/    /*Scope*/ 46, /*->25890*/
/* 25844*/      OPC_CheckPredicate, 30, // Predicate_load
/* 25846*/      OPC_SwitchType /*3 cases */, 12, MVT::i64,// ->25861
/* 25849*/        OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 25852*/        OPC_EmitMergeInputChains1_0,
/* 25853*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURXi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 14
                  // Dst: (LDURXi:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25861*/      /*SwitchType*/ 12, MVT::i32,// ->25875
/* 25863*/        OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #2 #3
/* 25866*/        OPC_EmitMergeInputChains1_0,
/* 25867*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURWi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 14
                  // Dst: (LDURWi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25875*/      /*SwitchType*/ 12, MVT::Untyped,// ->25889
/* 25877*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 25880*/        OPC_EmitMergeInputChains1_0,
/* 25881*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::Untyped, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[Untyped] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 14
                  // Dst: (LDURBi:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25889*/      0, // EndSwitchType
/* 25890*/    /*Scope*/ 36, /*->25927*/
/* 25891*/      OPC_CheckPredicate, 27, // Predicate_zextload
/* 25893*/      OPC_CheckType, MVT::i32,
/* 25895*/      OPC_Scope, 14, /*->25911*/ // 2 children in Scope
/* 25897*/        OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 25899*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 25902*/        OPC_EmitMergeInputChains1_0,
/* 25903*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 14
                  // Dst: (LDURHHi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25911*/      /*Scope*/ 14, /*->25926*/
/* 25912*/        OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 25914*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 25917*/        OPC_EmitMergeInputChains1_0,
/* 25918*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 14
                  // Dst: (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25926*/      0, /*End of Scope*/
/* 25927*/    /*Scope*/ 87, /*->26015*/
/* 25928*/      OPC_CheckPredicate, 31, // Predicate_sextload
/* 25930*/      OPC_Scope, 32, /*->25964*/ // 3 children in Scope
/* 25932*/        OPC_CheckPredicate, 29, // Predicate_sextloadi16
/* 25934*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->25949
/* 25937*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 25940*/          OPC_EmitMergeInputChains1_0,
/* 25941*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURSHWi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 14
                    // Dst: (LDURSHWi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25949*/        /*SwitchType*/ 12, MVT::i64,// ->25963
/* 25951*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 25954*/          OPC_EmitMergeInputChains1_0,
/* 25955*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURSHXi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 14
                    // Dst: (LDURSHXi:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25963*/        0, // EndSwitchType
/* 25964*/      /*Scope*/ 32, /*->25997*/
/* 25965*/        OPC_CheckPredicate, 28, // Predicate_sextloadi8
/* 25967*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->25982
/* 25970*/          OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 25973*/          OPC_EmitMergeInputChains1_0,
/* 25974*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURSBWi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 14
                    // Dst: (LDURSBWi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25982*/        /*SwitchType*/ 12, MVT::i64,// ->25996
/* 25984*/          OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 25987*/          OPC_EmitMergeInputChains1_0,
/* 25988*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURSBXi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 14
                    // Dst: (LDURSBXi:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 25996*/        0, // EndSwitchType
/* 25997*/      /*Scope*/ 16, /*->26014*/
/* 25998*/        OPC_CheckPredicate, 32, // Predicate_sextloadi32
/* 26000*/        OPC_CheckType, MVT::i64,
/* 26002*/        OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #2 #3
/* 26005*/        OPC_EmitMergeInputChains1_0,
/* 26006*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURSWi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 14
                  // Dst: (LDURSWi:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 26014*/      0, /*End of Scope*/
/* 26015*/    /*Scope*/ 18, /*->26034*/
/* 26016*/      OPC_CheckPredicate, 27, // Predicate_zextload
/* 26018*/      OPC_CheckPredicate, 34, // Predicate_zextloadi1
/* 26020*/      OPC_CheckType, MVT::i32,
/* 26022*/      OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 26025*/      OPC_EmitMergeInputChains1_0,
/* 26026*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                // Dst: (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 26034*/    /*Scope*/ 96, /*->26131*/
/* 26035*/      OPC_CheckPredicate, 33, // Predicate_extload
/* 26037*/      OPC_CheckType, MVT::i32,
/* 26039*/      OPC_Scope, 14, /*->26055*/ // 6 children in Scope
/* 26041*/        OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 26043*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 26046*/        OPC_EmitMergeInputChains1_0,
/* 26047*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                  // Dst: (LDRHHui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/* 26055*/      /*Scope*/ 14, /*->26070*/
/* 26056*/        OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 26058*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 26061*/        OPC_EmitMergeInputChains1_0,
/* 26062*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                  // Dst: (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 26070*/      /*Scope*/ 14, /*->26085*/
/* 26071*/        OPC_CheckPredicate, 34, // Predicate_extloadi1
/* 26073*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 26076*/        OPC_EmitMergeInputChains1_0,
/* 26077*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                  // Dst: (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 26085*/      /*Scope*/ 14, /*->26100*/
/* 26086*/        OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 26088*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 26091*/        OPC_EmitMergeInputChains1_0,
/* 26092*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                  // Dst: (LDURHHi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 26100*/      /*Scope*/ 14, /*->26115*/
/* 26101*/        OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 26103*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26106*/        OPC_EmitMergeInputChains1_0,
/* 26107*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                  // Dst: (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 26115*/      /*Scope*/ 14, /*->26130*/
/* 26116*/        OPC_CheckPredicate, 34, // Predicate_extloadi1
/* 26118*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26121*/        OPC_EmitMergeInputChains1_0,
/* 26122*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                  // Dst: (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 26130*/      0, /*End of Scope*/
/* 26131*/    /*Scope*/ 19|128,1/*147*/, /*->26280*/
/* 26133*/      OPC_CheckPredicate, 27, // Predicate_zextload
/* 26135*/      OPC_SwitchType /*2 cases */, 47, MVT::i32,// ->26185
/* 26138*/        OPC_Scope, 14, /*->26154*/ // 3 children in Scope
/* 26140*/          OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 26142*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 26145*/          OPC_EmitMergeInputChains1_0,
/* 26146*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                    // Dst: (LDURHHi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 26154*/        /*Scope*/ 14, /*->26169*/
/* 26155*/          OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 26157*/          OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26160*/          OPC_EmitMergeInputChains1_0,
/* 26161*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                    // Dst: (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 26169*/        /*Scope*/ 14, /*->26184*/
/* 26170*/          OPC_CheckPredicate, 34, // Predicate_zextloadi1
/* 26172*/          OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26175*/          OPC_EmitMergeInputChains1_0,
/* 26176*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                    // Dst: (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 26184*/        0, /*End of Scope*/
/* 26185*/      /*SwitchType*/ 92, MVT::i64,// ->26279
/* 26187*/        OPC_Scope, 29, /*->26218*/ // 3 children in Scope
/* 26189*/          OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 26191*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 26194*/          OPC_EmitMergeInputChains1_0,
/* 26195*/          OPC_EmitInteger, MVT::i64, 0, 
/* 26198*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26206*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26209*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                    // Src: (ld:{ *:[i64] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), sub_32:{ *:[i32] })
/* 26218*/        /*Scope*/ 29, /*->26248*/
/* 26219*/          OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 26221*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 26224*/          OPC_EmitMergeInputChains1_0,
/* 26225*/          OPC_EmitInteger, MVT::i64, 0, 
/* 26228*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRHHui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26236*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26239*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                    // Src: (ld:{ *:[i64] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRHHui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), sub_32:{ *:[i32] })
/* 26248*/        /*Scope*/ 29, /*->26278*/
/* 26249*/          OPC_CheckPredicate, 34, // Predicate_zextloadi1
/* 26251*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 26254*/          OPC_EmitMergeInputChains1_0,
/* 26255*/          OPC_EmitInteger, MVT::i64, 0, 
/* 26258*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26266*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26269*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                    // Src: (ld:{ *:[i64] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                    // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), sub_32:{ *:[i32] })
/* 26278*/        0, /*End of Scope*/
/* 26279*/      0, // EndSwitchType
/* 26280*/    /*Scope*/ 126, /*->26407*/
/* 26281*/      OPC_CheckPredicate, 33, // Predicate_extload
/* 26283*/      OPC_CheckType, MVT::i64,
/* 26285*/      OPC_Scope, 29, /*->26316*/ // 4 children in Scope
/* 26287*/        OPC_CheckPredicate, 32, // Predicate_extloadi32
/* 26289*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 26292*/        OPC_EmitMergeInputChains1_0,
/* 26293*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26296*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDRWui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26304*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26307*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRWui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset), sub_32:{ *:[i32] })
/* 26316*/      /*Scope*/ 29, /*->26346*/
/* 26317*/        OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 26319*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 26322*/        OPC_EmitMergeInputChains1_0,
/* 26323*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26326*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDRHHui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26334*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26337*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRHHui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), sub_32:{ *:[i32] })
/* 26346*/      /*Scope*/ 29, /*->26376*/
/* 26347*/        OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 26349*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 26352*/        OPC_EmitMergeInputChains1_0,
/* 26353*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26356*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26364*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26367*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), sub_32:{ *:[i32] })
/* 26376*/      /*Scope*/ 29, /*->26406*/
/* 26377*/        OPC_CheckPredicate, 34, // Predicate_extloadi1
/* 26379*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 26382*/        OPC_EmitMergeInputChains1_0,
/* 26383*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26386*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26394*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26397*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), sub_32:{ *:[i32] })
/* 26406*/      0, /*End of Scope*/
/* 26407*/    /*Scope*/ 33, /*->26441*/
/* 26408*/      OPC_CheckPredicate, 27, // Predicate_zextload
/* 26410*/      OPC_CheckPredicate, 32, // Predicate_zextloadi32
/* 26412*/      OPC_CheckType, MVT::i64,
/* 26414*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 26417*/      OPC_EmitMergeInputChains1_0,
/* 26418*/      OPC_EmitInteger, MVT::i64, 0, 
/* 26421*/      OPC_EmitNode1, TARGET_VAL(AArch64::LDRWui), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26429*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26432*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                // Src: (ld:{ *:[i64] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 13
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDRWui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset), sub_32:{ *:[i32] })
/* 26441*/    /*Scope*/ 126, /*->26568*/
/* 26442*/      OPC_CheckPredicate, 33, // Predicate_extload
/* 26444*/      OPC_CheckType, MVT::i64,
/* 26446*/      OPC_Scope, 29, /*->26477*/ // 4 children in Scope
/* 26448*/        OPC_CheckPredicate, 32, // Predicate_extloadi32
/* 26450*/        OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #2 #3
/* 26453*/        OPC_EmitMergeInputChains1_0,
/* 26454*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26457*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURWi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26465*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26468*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURWi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26477*/      /*Scope*/ 29, /*->26507*/
/* 26478*/        OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 26480*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 26483*/        OPC_EmitMergeInputChains1_0,
/* 26484*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26487*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26495*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26498*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURHHi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26507*/      /*Scope*/ 29, /*->26537*/
/* 26508*/        OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 26510*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26513*/        OPC_EmitMergeInputChains1_0,
/* 26514*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26517*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26525*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26528*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26537*/      /*Scope*/ 29, /*->26567*/
/* 26538*/        OPC_CheckPredicate, 34, // Predicate_extloadi1
/* 26540*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26543*/        OPC_EmitMergeInputChains1_0,
/* 26544*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26547*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26555*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26558*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26567*/      0, /*End of Scope*/
/* 26568*/    /*Scope*/ 58|128,1/*186*/, /*->26756*/
/* 26570*/      OPC_CheckPredicate, 27, // Predicate_zextload
/* 26572*/      OPC_CheckType, MVT::i64,
/* 26574*/      OPC_Scope, 29, /*->26605*/ // 6 children in Scope
/* 26576*/        OPC_CheckPredicate, 32, // Predicate_zextloadi32
/* 26578*/        OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #2 #3
/* 26581*/        OPC_EmitMergeInputChains1_0,
/* 26582*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26585*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURWi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26593*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26596*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURWi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26605*/      /*Scope*/ 29, /*->26635*/
/* 26606*/        OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 26608*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 26611*/        OPC_EmitMergeInputChains1_0,
/* 26612*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26615*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26623*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26626*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURHHi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26635*/      /*Scope*/ 29, /*->26665*/
/* 26636*/        OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 26638*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26641*/        OPC_EmitMergeInputChains1_0,
/* 26642*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26645*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26653*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26656*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26665*/      /*Scope*/ 29, /*->26695*/
/* 26666*/        OPC_CheckPredicate, 34, // Predicate_zextloadi1
/* 26668*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26671*/        OPC_EmitMergeInputChains1_0,
/* 26672*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26675*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26683*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26686*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26695*/      /*Scope*/ 29, /*->26725*/
/* 26696*/        OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 26698*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 26701*/        OPC_EmitMergeInputChains1_0,
/* 26702*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26705*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26713*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26716*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26725*/      /*Scope*/ 29, /*->26755*/
/* 26726*/        OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 26728*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 26731*/        OPC_EmitMergeInputChains1_0,
/* 26732*/        OPC_EmitInteger, MVT::i64, 0, 
/* 26735*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 26743*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 26746*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 4, 5, 6, 
                  // Src: (ld:{ *:[i64] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDURHHi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), sub_32:{ *:[i32] })
/* 26755*/      0, /*End of Scope*/
/* 26756*/    /*Scope*/ 78|128,9/*1230*/, /*->27988*/
/* 26758*/      OPC_CheckPredicate, 30, // Predicate_load
/* 26760*/      OPC_SwitchType /*18 cases */, 58, MVT::f16,// ->26821
/* 26763*/        OPC_Scope, 14, /*->26779*/ // 4 children in Scope
/* 26765*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 26768*/          OPC_EmitMergeInputChains1_0,
/* 26769*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f16] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/* 26779*/        /*Scope*/ 14, /*->26794*/
/* 26780*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 26783*/          OPC_EmitMergeInputChains1_0,
/* 26784*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f16] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/* 26794*/        /*Scope*/ 12, /*->26807*/
/* 26795*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 26798*/          OPC_EmitMergeInputChains1_0,
/* 26799*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f16, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f16] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 23
                    // Dst: (LDRHui:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/* 26807*/        /*Scope*/ 12, /*->26820*/
/* 26808*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 26811*/          OPC_EmitMergeInputChains1_0,
/* 26812*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURHi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f16, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f16] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 14
                    // Dst: (LDURHi:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 26820*/        0, /*End of Scope*/
/* 26821*/      /*SwitchType*/ 58, MVT::f32,// ->26881
/* 26823*/        OPC_Scope, 14, /*->26839*/ // 4 children in Scope
/* 26825*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 26828*/          OPC_EmitMergeInputChains1_0,
/* 26829*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRSroW:{ *:[f32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/* 26839*/        /*Scope*/ 14, /*->26854*/
/* 26840*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 26843*/          OPC_EmitMergeInputChains1_0,
/* 26844*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRSroX:{ *:[f32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/* 26854*/        /*Scope*/ 12, /*->26867*/
/* 26855*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 26858*/          OPC_EmitMergeInputChains1_0,
/* 26859*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRSui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f32] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 23
                    // Dst: (LDRSui:{ *:[f32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/* 26867*/        /*Scope*/ 12, /*->26880*/
/* 26868*/          OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #2 #3
/* 26871*/          OPC_EmitMergeInputChains1_0,
/* 26872*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURSi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f32] } (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 14
                    // Dst: (LDURSi:{ *:[f32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 26880*/        0, /*End of Scope*/
/* 26881*/      /*SwitchType*/ 58, MVT::f64,// ->26941
/* 26883*/        OPC_Scope, 14, /*->26899*/ // 4 children in Scope
/* 26885*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 26888*/          OPC_EmitMergeInputChains1_0,
/* 26889*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f64] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroW:{ *:[f64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 26899*/        /*Scope*/ 14, /*->26914*/
/* 26900*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 26903*/          OPC_EmitMergeInputChains1_0,
/* 26904*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f64] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroX:{ *:[f64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 26914*/        /*Scope*/ 12, /*->26927*/
/* 26915*/          OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 26918*/          OPC_EmitMergeInputChains1_0,
/* 26919*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f64] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 23
                    // Dst: (LDRDui:{ *:[f64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 26927*/        /*Scope*/ 12, /*->26940*/
/* 26928*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 26931*/          OPC_EmitMergeInputChains1_0,
/* 26932*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f64] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 14
                    // Dst: (LDURDi:{ *:[f64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 26940*/        0, /*End of Scope*/
/* 26941*/      /*SwitchType*/ 71, MVT::f128,// ->27014
/* 26943*/        OPC_Scope, 14, /*->26959*/ // 5 children in Scope
/* 26945*/          OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrModeWRO<128>:$ #2 #3 #4 #5
/* 26948*/          OPC_EmitMergeInputChains1_0,
/* 26949*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f128] } (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRQroW:{ *:[f128] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/* 26959*/        /*Scope*/ 14, /*->26974*/
/* 26960*/          OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModeXRO<128>:$ #2 #3 #4 #5
/* 26963*/          OPC_EmitMergeInputChains1_0,
/* 26964*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[f128] } (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRQroX:{ *:[f128] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/* 26974*/        /*Scope*/ 12, /*->26987*/
/* 26975*/          OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 26978*/          OPC_EmitMergeInputChains1_0,
/* 26979*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f128] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 23
                    // Dst: (LDRQui:{ *:[f128] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 26987*/        /*Scope*/ 12, /*->27000*/
/* 26988*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrModeUnscaled128:$ #2 #3
/* 26991*/          OPC_EmitMergeInputChains1_0,
/* 26992*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURQi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f128] } (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 14
                    // Dst: (LDURQi:{ *:[f128] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 27000*/        /*Scope*/ 12, /*->27013*/
/* 27001*/          OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 27004*/          OPC_EmitMergeInputChains1_0,
/* 27005*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f128] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDRQui:{ *:[f128] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 27013*/        0, /*End of Scope*/
/* 27014*/      /*SwitchType*/ 74, MVT::v2i32,// ->27090
/* 27016*/        OPC_Scope, 60, /*->27078*/ // 2 children in Scope
/* 27018*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27020*/          OPC_Scope, 14, /*->27036*/ // 4 children in Scope
/* 27022*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 27025*/            OPC_EmitMergeInputChains1_0,
/* 27026*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2i32] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRDroW:{ *:[v2i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 27036*/          /*Scope*/ 14, /*->27051*/
/* 27037*/            OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 27040*/            OPC_EmitMergeInputChains1_0,
/* 27041*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2i32] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRDroX:{ *:[v2i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 27051*/          /*Scope*/ 12, /*->27064*/
/* 27052*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 27055*/            OPC_EmitMergeInputChains1_0,
/* 27056*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i32, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2i32] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDRDui:{ *:[v2i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 27064*/          /*Scope*/ 12, /*->27077*/
/* 27065*/            OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 27068*/            OPC_EmitMergeInputChains1_0,
/* 27069*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURDi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i32, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2i32] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDURDi:{ *:[v2i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27077*/          0, /*End of Scope*/
/* 27078*/        /*Scope*/ 10, /*->27089*/
/* 27079*/          OPC_CheckChild1Type, MVT::i64,
/* 27081*/          OPC_EmitMergeInputChains1_0,
/* 27082*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Onev2s), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i32, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[v2i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
                    // Dst: (LD1Onev2s:{ *:[v2i32] } GPR64sp:{ *:[i64] }:$Rn)
/* 27089*/        0, /*End of Scope*/
/* 27090*/      /*SwitchType*/ 74, MVT::v8i8,// ->27166
/* 27092*/        OPC_Scope, 60, /*->27154*/ // 2 children in Scope
/* 27094*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27096*/          OPC_Scope, 14, /*->27112*/ // 4 children in Scope
/* 27098*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 27101*/            OPC_EmitMergeInputChains1_0,
/* 27102*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i8, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8i8] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRDroW:{ *:[v8i8] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 27112*/          /*Scope*/ 14, /*->27127*/
/* 27113*/            OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 27116*/            OPC_EmitMergeInputChains1_0,
/* 27117*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i8, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8i8] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRDroX:{ *:[v8i8] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 27127*/          /*Scope*/ 12, /*->27140*/
/* 27128*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 27131*/            OPC_EmitMergeInputChains1_0,
/* 27132*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i8, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v8i8] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDRDui:{ *:[v8i8] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 27140*/          /*Scope*/ 12, /*->27153*/
/* 27141*/            OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 27144*/            OPC_EmitMergeInputChains1_0,
/* 27145*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURDi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i8, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v8i8] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDURDi:{ *:[v8i8] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27153*/          0, /*End of Scope*/
/* 27154*/        /*Scope*/ 10, /*->27165*/
/* 27155*/          OPC_CheckChild1Type, MVT::i64,
/* 27157*/          OPC_EmitMergeInputChains1_0,
/* 27158*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Onev8b), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i8, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[v8i8] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
                    // Dst: (LD1Onev8b:{ *:[v8i8] } GPR64sp:{ *:[i64] }:$Rn)
/* 27165*/        0, /*End of Scope*/
/* 27166*/      /*SwitchType*/ 74, MVT::v4i16,// ->27242
/* 27168*/        OPC_Scope, 60, /*->27230*/ // 2 children in Scope
/* 27170*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27172*/          OPC_Scope, 14, /*->27188*/ // 4 children in Scope
/* 27174*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 27177*/            OPC_EmitMergeInputChains1_0,
/* 27178*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4i16] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRDroW:{ *:[v4i16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 27188*/          /*Scope*/ 14, /*->27203*/
/* 27189*/            OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 27192*/            OPC_EmitMergeInputChains1_0,
/* 27193*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4i16] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRDroX:{ *:[v4i16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 27203*/          /*Scope*/ 12, /*->27216*/
/* 27204*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 27207*/            OPC_EmitMergeInputChains1_0,
/* 27208*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i16, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v4i16] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDRDui:{ *:[v4i16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 27216*/          /*Scope*/ 12, /*->27229*/
/* 27217*/            OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 27220*/            OPC_EmitMergeInputChains1_0,
/* 27221*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURDi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i16, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v4i16] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDURDi:{ *:[v4i16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27229*/          0, /*End of Scope*/
/* 27230*/        /*Scope*/ 10, /*->27241*/
/* 27231*/          OPC_CheckChild1Type, MVT::i64,
/* 27233*/          OPC_EmitMergeInputChains1_0,
/* 27234*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Onev4h), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i16, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[v4i16] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
                    // Dst: (LD1Onev4h:{ *:[v4i16] } GPR64sp:{ *:[i64] }:$Rn)
/* 27241*/        0, /*End of Scope*/
/* 27242*/      /*SwitchType*/ 69, MVT::v1i64,// ->27313
/* 27244*/        OPC_Scope, 14, /*->27260*/ // 5 children in Scope
/* 27246*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 27249*/          OPC_EmitMergeInputChains1_0,
/* 27250*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v1i64] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroW:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 27260*/        /*Scope*/ 14, /*->27275*/
/* 27261*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 27264*/          OPC_EmitMergeInputChains1_0,
/* 27265*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v1i64] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroX:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 27275*/        /*Scope*/ 12, /*->27288*/
/* 27276*/          OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 27279*/          OPC_EmitMergeInputChains1_0,
/* 27280*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v1i64] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDRDui:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 27288*/        /*Scope*/ 12, /*->27301*/
/* 27289*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 27292*/          OPC_EmitMergeInputChains1_0,
/* 27293*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v1i64] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDURDi:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27301*/        /*Scope*/ 10, /*->27312*/
/* 27302*/          OPC_CheckChild1Type, MVT::i64,
/* 27304*/          OPC_EmitMergeInputChains1_0,
/* 27305*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Onev1d), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i64, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
                    // Dst: (LD1Onev1d:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn)
/* 27312*/        0, /*End of Scope*/
/* 27313*/      /*SwitchType*/ 74, MVT::v2i64,// ->27389
/* 27315*/        OPC_Scope, 60, /*->27377*/ // 2 children in Scope
/* 27317*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27319*/          OPC_Scope, 14, /*->27335*/ // 4 children in Scope
/* 27321*/            OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrModeWRO<128>:$ #2 #3 #4 #5
/* 27324*/            OPC_EmitMergeInputChains1_0,
/* 27325*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2i64] } (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRQroW:{ *:[v2i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/* 27335*/          /*Scope*/ 14, /*->27350*/
/* 27336*/            OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModeXRO<128>:$ #2 #3 #4 #5
/* 27339*/            OPC_EmitMergeInputChains1_0,
/* 27340*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2i64] } (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRQroX:{ *:[v2i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/* 27350*/          /*Scope*/ 12, /*->27363*/
/* 27351*/            OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 27354*/            OPC_EmitMergeInputChains1_0,
/* 27355*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2i64] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDRQui:{ *:[v2i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 27363*/          /*Scope*/ 12, /*->27376*/
/* 27364*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrModeUnscaled128:$ #2 #3
/* 27367*/            OPC_EmitMergeInputChains1_0,
/* 27368*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2i64] } (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDURQi:{ *:[v2i64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27376*/          0, /*End of Scope*/
/* 27377*/        /*Scope*/ 10, /*->27388*/
/* 27378*/          OPC_CheckChild1Type, MVT::i64,
/* 27380*/          OPC_EmitMergeInputChains1_0,
/* 27381*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Onev2d), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[v2i64] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
                    // Dst: (LD1Onev2d:{ *:[v2i64] } GPR64sp:{ *:[i64] }:$Rn)
/* 27388*/        0, /*End of Scope*/
/* 27389*/      /*SwitchType*/ 74, MVT::v4i32,// ->27465
/* 27391*/        OPC_Scope, 60, /*->27453*/ // 2 children in Scope
/* 27393*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27395*/          OPC_Scope, 14, /*->27411*/ // 4 children in Scope
/* 27397*/            OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrModeWRO<128>:$ #2 #3 #4 #5
/* 27400*/            OPC_EmitMergeInputChains1_0,
/* 27401*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4i32] } (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRQroW:{ *:[v4i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/* 27411*/          /*Scope*/ 14, /*->27426*/
/* 27412*/            OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModeXRO<128>:$ #2 #3 #4 #5
/* 27415*/            OPC_EmitMergeInputChains1_0,
/* 27416*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4i32] } (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRQroX:{ *:[v4i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/* 27426*/          /*Scope*/ 12, /*->27439*/
/* 27427*/            OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 27430*/            OPC_EmitMergeInputChains1_0,
/* 27431*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v4i32] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDRQui:{ *:[v4i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 27439*/          /*Scope*/ 12, /*->27452*/
/* 27440*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrModeUnscaled128:$ #2 #3
/* 27443*/            OPC_EmitMergeInputChains1_0,
/* 27444*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v4i32] } (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDURQi:{ *:[v4i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27452*/          0, /*End of Scope*/
/* 27453*/        /*Scope*/ 10, /*->27464*/
/* 27454*/          OPC_CheckChild1Type, MVT::i64,
/* 27456*/          OPC_EmitMergeInputChains1_0,
/* 27457*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Onev4s), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[v4i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
                    // Dst: (LD1Onev4s:{ *:[v4i32] } GPR64sp:{ *:[i64] }:$Rn)
/* 27464*/        0, /*End of Scope*/
/* 27465*/      /*SwitchType*/ 74, MVT::v8i16,// ->27541
/* 27467*/        OPC_Scope, 60, /*->27529*/ // 2 children in Scope
/* 27469*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27471*/          OPC_Scope, 14, /*->27487*/ // 4 children in Scope
/* 27473*/            OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrModeWRO<128>:$ #2 #3 #4 #5
/* 27476*/            OPC_EmitMergeInputChains1_0,
/* 27477*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8i16] } (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRQroW:{ *:[v8i16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/* 27487*/          /*Scope*/ 14, /*->27502*/
/* 27488*/            OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModeXRO<128>:$ #2 #3 #4 #5
/* 27491*/            OPC_EmitMergeInputChains1_0,
/* 27492*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8i16] } (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRQroX:{ *:[v8i16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/* 27502*/          /*Scope*/ 12, /*->27515*/
/* 27503*/            OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 27506*/            OPC_EmitMergeInputChains1_0,
/* 27507*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v8i16] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDRQui:{ *:[v8i16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 27515*/          /*Scope*/ 12, /*->27528*/
/* 27516*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrModeUnscaled128:$ #2 #3
/* 27519*/            OPC_EmitMergeInputChains1_0,
/* 27520*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v8i16] } (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDURQi:{ *:[v8i16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27528*/          0, /*End of Scope*/
/* 27529*/        /*Scope*/ 10, /*->27540*/
/* 27530*/          OPC_CheckChild1Type, MVT::i64,
/* 27532*/          OPC_EmitMergeInputChains1_0,
/* 27533*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Onev8h), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[v8i16] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
                    // Dst: (LD1Onev8h:{ *:[v8i16] } GPR64sp:{ *:[i64] }:$Rn)
/* 27540*/        0, /*End of Scope*/
/* 27541*/      /*SwitchType*/ 74, MVT::v16i8,// ->27617
/* 27543*/        OPC_Scope, 60, /*->27605*/ // 2 children in Scope
/* 27545*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27547*/          OPC_Scope, 14, /*->27563*/ // 4 children in Scope
/* 27549*/            OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrModeWRO<128>:$ #2 #3 #4 #5
/* 27552*/            OPC_EmitMergeInputChains1_0,
/* 27553*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v16i8] } (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRQroW:{ *:[v16i8] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/* 27563*/          /*Scope*/ 14, /*->27578*/
/* 27564*/            OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModeXRO<128>:$ #2 #3 #4 #5
/* 27567*/            OPC_EmitMergeInputChains1_0,
/* 27568*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v16i8] } (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                      // Dst: (LDRQroX:{ *:[v16i8] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/* 27578*/          /*Scope*/ 12, /*->27591*/
/* 27579*/            OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 27582*/            OPC_EmitMergeInputChains1_0,
/* 27583*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v16i8] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDRQui:{ *:[v16i8] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 27591*/          /*Scope*/ 12, /*->27604*/
/* 27592*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrModeUnscaled128:$ #2 #3
/* 27595*/            OPC_EmitMergeInputChains1_0,
/* 27596*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURQi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v16i8] } (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LDURQi:{ *:[v16i8] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27604*/          0, /*End of Scope*/
/* 27605*/        /*Scope*/ 10, /*->27616*/
/* 27606*/          OPC_CheckChild1Type, MVT::i64,
/* 27608*/          OPC_EmitMergeInputChains1_0,
/* 27609*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Onev16b), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 1/*#Ops*/, 1, 
                    // Src: (ld:{ *:[v16i8] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
                    // Dst: (LD1Onev16b:{ *:[v16i8] } GPR64sp:{ *:[i64] }:$Rn)
/* 27616*/        0, /*End of Scope*/
/* 27617*/      /*SwitchType*/ 60, MVT::v2f32,// ->27679
/* 27619*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27621*/        OPC_Scope, 14, /*->27637*/ // 4 children in Scope
/* 27623*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 27626*/          OPC_EmitMergeInputChains1_0,
/* 27627*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v2f32] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroW:{ *:[v2f32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 27637*/        /*Scope*/ 14, /*->27652*/
/* 27638*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 27641*/          OPC_EmitMergeInputChains1_0,
/* 27642*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v2f32] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroX:{ *:[v2f32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 27652*/        /*Scope*/ 12, /*->27665*/
/* 27653*/          OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 27656*/          OPC_EmitMergeInputChains1_0,
/* 27657*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2f32] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDRDui:{ *:[v2f32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 27665*/        /*Scope*/ 12, /*->27678*/
/* 27666*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 27669*/          OPC_EmitMergeInputChains1_0,
/* 27670*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2f32] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDURDi:{ *:[v2f32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27678*/        0, /*End of Scope*/
/* 27679*/      /*SwitchType*/ 60, MVT::v4f16,// ->27741
/* 27681*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27683*/        OPC_Scope, 14, /*->27699*/ // 4 children in Scope
/* 27685*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 27688*/          OPC_EmitMergeInputChains1_0,
/* 27689*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v4f16] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroW:{ *:[v4f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 27699*/        /*Scope*/ 14, /*->27714*/
/* 27700*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 27703*/          OPC_EmitMergeInputChains1_0,
/* 27704*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v4f16] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroX:{ *:[v4f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 27714*/        /*Scope*/ 12, /*->27727*/
/* 27715*/          OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 27718*/          OPC_EmitMergeInputChains1_0,
/* 27719*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f16, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4f16] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDRDui:{ *:[v4f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 27727*/        /*Scope*/ 12, /*->27740*/
/* 27728*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 27731*/          OPC_EmitMergeInputChains1_0,
/* 27732*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f16, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4f16] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDURDi:{ *:[v4f16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27740*/        0, /*End of Scope*/
/* 27741*/      /*SwitchType*/ 58, MVT::v1f64,// ->27801
/* 27743*/        OPC_Scope, 14, /*->27759*/ // 4 children in Scope
/* 27745*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 27748*/          OPC_EmitMergeInputChains1_0,
/* 27749*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v1f64] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroW:{ *:[v1f64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 27759*/        /*Scope*/ 14, /*->27774*/
/* 27760*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 27763*/          OPC_EmitMergeInputChains1_0,
/* 27764*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v1f64] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRDroX:{ *:[v1f64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 27774*/        /*Scope*/ 12, /*->27787*/
/* 27775*/          OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 27778*/          OPC_EmitMergeInputChains1_0,
/* 27779*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v1f64] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDRDui:{ *:[v1f64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 27787*/        /*Scope*/ 12, /*->27800*/
/* 27788*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 27791*/          OPC_EmitMergeInputChains1_0,
/* 27792*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURDi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v1f64] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDURDi:{ *:[v1f64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27800*/        0, /*End of Scope*/
/* 27801*/      /*SwitchType*/ 60, MVT::v2f64,// ->27863
/* 27803*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27805*/        OPC_Scope, 14, /*->27821*/ // 4 children in Scope
/* 27807*/          OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrModeWRO<128>:$ #2 #3 #4 #5
/* 27810*/          OPC_EmitMergeInputChains1_0,
/* 27811*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v2f64] } (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRQroW:{ *:[v2f64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/* 27821*/        /*Scope*/ 14, /*->27836*/
/* 27822*/          OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModeXRO<128>:$ #2 #3 #4 #5
/* 27825*/          OPC_EmitMergeInputChains1_0,
/* 27826*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v2f64] } (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRQroX:{ *:[v2f64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/* 27836*/        /*Scope*/ 12, /*->27849*/
/* 27837*/          OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 27840*/          OPC_EmitMergeInputChains1_0,
/* 27841*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2f64] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDRQui:{ *:[v2f64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 27849*/        /*Scope*/ 12, /*->27862*/
/* 27850*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrModeUnscaled128:$ #2 #3
/* 27853*/          OPC_EmitMergeInputChains1_0,
/* 27854*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURQi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2f64] } (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDURQi:{ *:[v2f64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27862*/        0, /*End of Scope*/
/* 27863*/      /*SwitchType*/ 60, MVT::v4f32,// ->27925
/* 27865*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27867*/        OPC_Scope, 14, /*->27883*/ // 4 children in Scope
/* 27869*/          OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrModeWRO<128>:$ #2 #3 #4 #5
/* 27872*/          OPC_EmitMergeInputChains1_0,
/* 27873*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v4f32] } (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRQroW:{ *:[v4f32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/* 27883*/        /*Scope*/ 14, /*->27898*/
/* 27884*/          OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModeXRO<128>:$ #2 #3 #4 #5
/* 27887*/          OPC_EmitMergeInputChains1_0,
/* 27888*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v4f32] } (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRQroX:{ *:[v4f32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/* 27898*/        /*Scope*/ 12, /*->27911*/
/* 27899*/          OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 27902*/          OPC_EmitMergeInputChains1_0,
/* 27903*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4f32] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDRQui:{ *:[v4f32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 27911*/        /*Scope*/ 12, /*->27924*/
/* 27912*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrModeUnscaled128:$ #2 #3
/* 27915*/          OPC_EmitMergeInputChains1_0,
/* 27916*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURQi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4f32] } (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDURQi:{ *:[v4f32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27924*/        0, /*End of Scope*/
/* 27925*/      /*SwitchType*/ 60, MVT::v8f16,// ->27987
/* 27927*/        OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 27929*/        OPC_Scope, 14, /*->27945*/ // 4 children in Scope
/* 27931*/          OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrModeWRO<128>:$ #2 #3 #4 #5
/* 27934*/          OPC_EmitMergeInputChains1_0,
/* 27935*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v8f16] } (ro_Windexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRQroW:{ *:[v8f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend128:{ *:[i32] }:$extend)
/* 27945*/        /*Scope*/ 14, /*->27960*/
/* 27946*/          OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModeXRO<128>:$ #2 #3 #4 #5
/* 27949*/          OPC_EmitMergeInputChains1_0,
/* 27950*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v8f16] } (ro_Xindexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 29
                    // Dst: (LDRQroX:{ *:[v8f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend128:{ *:[i32] }:$extend)
/* 27960*/        /*Scope*/ 12, /*->27973*/
/* 27961*/          OPC_CheckComplexPat, /*CP*/16, /*#*/1, // SelectAddrModeIndexed128:$ #2 #3
/* 27964*/          OPC_EmitMergeInputChains1_0,
/* 27965*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRQui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f16, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v8f16] } (am_indexed128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDRQui:{ *:[v8f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s16:{ *:[i64] }:$offset)
/* 27973*/        /*Scope*/ 12, /*->27986*/
/* 27974*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrModeUnscaled128:$ #2 #3
/* 27977*/          OPC_EmitMergeInputChains1_0,
/* 27978*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURQi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f16, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v8f16] } (am_unscaled128:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LDURQi:{ *:[v8f16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 27986*/        0, /*End of Scope*/
/* 27987*/      0, // EndSwitchType
/* 27988*/    0, /*End of Scope*/
/* 27989*/  /*SwitchOpcode*/ 46|128,17/*2222*/, TARGET_VAL(ISD::AND),// ->30215
/* 27993*/    OPC_Scope, 111|128,2/*367*/, /*->28363*/ // 30 children in Scope
/* 27996*/      OPC_MoveChild0,
/* 27997*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 28000*/      OPC_MoveChild0,
/* 28001*/      OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 28004*/      OPC_MoveChild0,
/* 28005*/      OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 28008*/      OPC_MoveParent,
/* 28009*/      OPC_MoveChild1,
/* 28010*/      OPC_SwitchOpcode /*3 cases */, 114, TARGET_VAL(AArch64ISD::UADDV),// ->28128
/* 28014*/        OPC_RecordChild0, // #0 = $Rn
/* 28015*/        OPC_MoveParent,
/* 28016*/        OPC_CheckChild2Integer, 0, 
/* 28018*/        OPC_CheckChild2Type, MVT::i32,
/* 28020*/        OPC_SwitchType /*2 cases */, 51, MVT::v16i8,// ->28074
/* 28023*/          OPC_MoveParent,
/* 28024*/          OPC_CheckChild1Integer, 0, 
/* 28026*/          OPC_CheckChild1Type, MVT::i64,
/* 28028*/          OPC_MoveParent,
/* 28029*/          OPC_MoveChild1,
/* 28030*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28033*/          OPC_CheckPredicate, 35, // Predicate_maski8_or_more
/* 28035*/          OPC_MoveParent,
/* 28036*/          OPC_CheckType, MVT::i32,
/* 28038*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28044*/          OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 28051*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 28054*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28063*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28066*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64uaddv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski8_or_more>>) - Complexity = 29
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28074*/        /*SwitchType*/ 51, MVT::v8i16,// ->28127
/* 28076*/          OPC_MoveParent,
/* 28077*/          OPC_CheckChild1Integer, 0, 
/* 28079*/          OPC_CheckChild1Type, MVT::i64,
/* 28081*/          OPC_MoveParent,
/* 28082*/          OPC_MoveChild1,
/* 28083*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28086*/          OPC_CheckPredicate, 36, // Predicate_maski16_or_more
/* 28088*/          OPC_MoveParent,
/* 28089*/          OPC_CheckType, MVT::i32,
/* 28091*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28097*/          OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 28104*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 28107*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28116*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28119*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64uaddv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski16_or_more>>) - Complexity = 29
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28127*/        0, // EndSwitchType
/* 28128*/      /*SwitchOpcode*/ 114, TARGET_VAL(AArch64ISD::UMAXV),// ->28245
/* 28131*/        OPC_RecordChild0, // #0 = $Rn
/* 28132*/        OPC_MoveParent,
/* 28133*/        OPC_CheckChild2Integer, 0, 
/* 28135*/        OPC_CheckChild2Type, MVT::i32,
/* 28137*/        OPC_SwitchType /*2 cases */, 51, MVT::v16i8,// ->28191
/* 28140*/          OPC_MoveParent,
/* 28141*/          OPC_CheckChild1Integer, 0, 
/* 28143*/          OPC_CheckChild1Type, MVT::i64,
/* 28145*/          OPC_MoveParent,
/* 28146*/          OPC_MoveChild1,
/* 28147*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28150*/          OPC_CheckPredicate, 35, // Predicate_maski8_or_more
/* 28152*/          OPC_MoveParent,
/* 28153*/          OPC_CheckType, MVT::i32,
/* 28155*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28161*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv8i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 28168*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 28171*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28180*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28183*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64umaxv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski8_or_more>>) - Complexity = 29
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMAXVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28191*/        /*SwitchType*/ 51, MVT::v8i16,// ->28244
/* 28193*/          OPC_MoveParent,
/* 28194*/          OPC_CheckChild1Integer, 0, 
/* 28196*/          OPC_CheckChild1Type, MVT::i64,
/* 28198*/          OPC_MoveParent,
/* 28199*/          OPC_MoveChild1,
/* 28200*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28203*/          OPC_CheckPredicate, 36, // Predicate_maski16_or_more
/* 28205*/          OPC_MoveParent,
/* 28206*/          OPC_CheckType, MVT::i32,
/* 28208*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28214*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv4i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 28221*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 28224*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28233*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28236*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64umaxv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski16_or_more>>) - Complexity = 29
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMAXVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28244*/        0, // EndSwitchType
/* 28245*/      /*SwitchOpcode*/ 114, TARGET_VAL(AArch64ISD::UMINV),// ->28362
/* 28248*/        OPC_RecordChild0, // #0 = $Rn
/* 28249*/        OPC_MoveParent,
/* 28250*/        OPC_CheckChild2Integer, 0, 
/* 28252*/        OPC_CheckChild2Type, MVT::i32,
/* 28254*/        OPC_SwitchType /*2 cases */, 51, MVT::v16i8,// ->28308
/* 28257*/          OPC_MoveParent,
/* 28258*/          OPC_CheckChild1Integer, 0, 
/* 28260*/          OPC_CheckChild1Type, MVT::i64,
/* 28262*/          OPC_MoveParent,
/* 28263*/          OPC_MoveChild1,
/* 28264*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28267*/          OPC_CheckPredicate, 35, // Predicate_maski8_or_more
/* 28269*/          OPC_MoveParent,
/* 28270*/          OPC_CheckType, MVT::i32,
/* 28272*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28278*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv8i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 28285*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 28288*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28297*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28300*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64uminv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski8_or_more>>) - Complexity = 29
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMINVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28308*/        /*SwitchType*/ 51, MVT::v8i16,// ->28361
/* 28310*/          OPC_MoveParent,
/* 28311*/          OPC_CheckChild1Integer, 0, 
/* 28313*/          OPC_CheckChild1Type, MVT::i64,
/* 28315*/          OPC_MoveParent,
/* 28316*/          OPC_MoveChild1,
/* 28317*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28320*/          OPC_CheckPredicate, 36, // Predicate_maski16_or_more
/* 28322*/          OPC_MoveParent,
/* 28323*/          OPC_CheckType, MVT::i32,
/* 28325*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28331*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv4i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 28338*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 28341*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28350*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28353*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64uminv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski16_or_more>>) - Complexity = 29
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMINVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28361*/        0, // EndSwitchType
/* 28362*/      0, // EndSwitchOpcode
/* 28363*/    /*Scope*/ 48, /*->28412*/
/* 28364*/      OPC_RecordChild0, // #0 = $Rn
/* 28365*/      OPC_MoveChild1,
/* 28366*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 28369*/      OPC_RecordChild0, // #1 = $Rm
/* 28370*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28381*/      OPC_MoveParent,
/* 28382*/      OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->28397
/* 28385*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 28388*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICWrs), 0,
                      MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (and:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 20
                  // Dst: (BICWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 28397*/      /*SwitchType*/ 12, MVT::i64,// ->28411
/* 28399*/        OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 28402*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICXrs), 0,
                      MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (and:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, -1:{ *:[i64] })) - Complexity = 20
                  // Dst: (BICXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 28411*/      0, // EndSwitchType
/* 28412*/    /*Scope*/ 9|128,3/*393*/, /*->28807*/
/* 28414*/      OPC_MoveChild0,
/* 28415*/      OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::XOR),// ->28463
/* 28419*/        OPC_RecordChild0, // #0 = $Rm
/* 28420*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28431*/        OPC_MoveParent,
/* 28432*/        OPC_RecordChild1, // #1 = $Rn
/* 28433*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->28448
/* 28436*/          OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 28439*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICWrs), 0,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (and:{ *:[i32] } (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn) - Complexity = 20
                    // Dst: (BICWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 28448*/        /*SwitchType*/ 12, MVT::i64,// ->28462
/* 28450*/          OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 28453*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICXrs), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (and:{ *:[i64] } (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn) - Complexity = 20
                    // Dst: (BICXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 28462*/        0, // EndSwitchType
/* 28463*/      /*SwitchOpcode*/ 83|128,2/*339*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->28806
/* 28467*/        OPC_MoveChild0,
/* 28468*/        OPC_SwitchOpcode /*3 cases */, 109, TARGET_VAL(AArch64ISD::UADDV),// ->28581
/* 28472*/          OPC_RecordChild0, // #0 = $Rn
/* 28473*/          OPC_SwitchType /*2 cases */, 51, MVT::v16i8,// ->28527
/* 28476*/            OPC_MoveParent,
/* 28477*/            OPC_CheckChild1Integer, 0, 
/* 28479*/            OPC_CheckChild1Type, MVT::i64,
/* 28481*/            OPC_MoveParent,
/* 28482*/            OPC_MoveChild1,
/* 28483*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28486*/            OPC_CheckPredicate, 35, // Predicate_maski8_or_more
/* 28488*/            OPC_MoveParent,
/* 28489*/            OPC_CheckType, MVT::i32,
/* 28491*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28497*/            OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv16i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 28504*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 28507*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28516*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28519*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64uaddv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski8_or_more>>) - Complexity = 18
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28527*/          /*SwitchType*/ 51, MVT::v8i16,// ->28580
/* 28529*/            OPC_MoveParent,
/* 28530*/            OPC_CheckChild1Integer, 0, 
/* 28532*/            OPC_CheckChild1Type, MVT::i64,
/* 28534*/            OPC_MoveParent,
/* 28535*/            OPC_MoveChild1,
/* 28536*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28539*/            OPC_CheckPredicate, 36, // Predicate_maski16_or_more
/* 28541*/            OPC_MoveParent,
/* 28542*/            OPC_CheckType, MVT::i32,
/* 28544*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28550*/            OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 28557*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 28560*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28569*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28572*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64uaddv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski16_or_more>>) - Complexity = 18
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28580*/          0, // EndSwitchType
/* 28581*/        /*SwitchOpcode*/ 109, TARGET_VAL(AArch64ISD::UMAXV),// ->28693
/* 28584*/          OPC_RecordChild0, // #0 = $Rn
/* 28585*/          OPC_SwitchType /*2 cases */, 51, MVT::v16i8,// ->28639
/* 28588*/            OPC_MoveParent,
/* 28589*/            OPC_CheckChild1Integer, 0, 
/* 28591*/            OPC_CheckChild1Type, MVT::i64,
/* 28593*/            OPC_MoveParent,
/* 28594*/            OPC_MoveChild1,
/* 28595*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28598*/            OPC_CheckPredicate, 35, // Predicate_maski8_or_more
/* 28600*/            OPC_MoveParent,
/* 28601*/            OPC_CheckType, MVT::i32,
/* 28603*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28609*/            OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv16i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 28616*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 28619*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28628*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28631*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64umaxv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski8_or_more>>) - Complexity = 18
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMAXVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28639*/          /*SwitchType*/ 51, MVT::v8i16,// ->28692
/* 28641*/            OPC_MoveParent,
/* 28642*/            OPC_CheckChild1Integer, 0, 
/* 28644*/            OPC_CheckChild1Type, MVT::i64,
/* 28646*/            OPC_MoveParent,
/* 28647*/            OPC_MoveChild1,
/* 28648*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28651*/            OPC_CheckPredicate, 36, // Predicate_maski16_or_more
/* 28653*/            OPC_MoveParent,
/* 28654*/            OPC_CheckType, MVT::i32,
/* 28656*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28662*/            OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv8i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 28669*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 28672*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28681*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28684*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64umaxv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski16_or_more>>) - Complexity = 18
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMAXVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28692*/          0, // EndSwitchType
/* 28693*/        /*SwitchOpcode*/ 109, TARGET_VAL(AArch64ISD::UMINV),// ->28805
/* 28696*/          OPC_RecordChild0, // #0 = $Rn
/* 28697*/          OPC_SwitchType /*2 cases */, 51, MVT::v16i8,// ->28751
/* 28700*/            OPC_MoveParent,
/* 28701*/            OPC_CheckChild1Integer, 0, 
/* 28703*/            OPC_CheckChild1Type, MVT::i64,
/* 28705*/            OPC_MoveParent,
/* 28706*/            OPC_MoveChild1,
/* 28707*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28710*/            OPC_CheckPredicate, 35, // Predicate_maski8_or_more
/* 28712*/            OPC_MoveParent,
/* 28713*/            OPC_CheckType, MVT::i32,
/* 28715*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28721*/            OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv16i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 28728*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 28731*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28740*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28743*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64uminv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski8_or_more>>) - Complexity = 18
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMINVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28751*/          /*SwitchType*/ 51, MVT::v8i16,// ->28804
/* 28753*/            OPC_MoveParent,
/* 28754*/            OPC_CheckChild1Integer, 0, 
/* 28756*/            OPC_CheckChild1Type, MVT::i64,
/* 28758*/            OPC_MoveParent,
/* 28759*/            OPC_MoveChild1,
/* 28760*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28763*/            OPC_CheckPredicate, 36, // Predicate_maski16_or_more
/* 28765*/            OPC_MoveParent,
/* 28766*/            OPC_CheckType, MVT::i32,
/* 28768*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 28774*/            OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv8i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 28781*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 28784*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 28793*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 28796*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64uminv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }), (imm:{ *:[i32] })<<P:Predicate_maski16_or_more>>) - Complexity = 18
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMINVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 28804*/          0, // EndSwitchType
/* 28805*/        0, // EndSwitchOpcode
/* 28806*/      0, // EndSwitchOpcode
/* 28807*/    /*Scope*/ 41, /*->28849*/
/* 28808*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 28811*/      OPC_MoveChild0,
/* 28812*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 28815*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 28816*/      OPC_CheckFoldableChainNode,
/* 28817*/      OPC_CheckChild1Integer, 84|128,1/*212*/, 
/* 28820*/      OPC_RecordChild2, // #1 = $addr
/* 28821*/      OPC_CheckChild2Type, MVT::i64,
/* 28823*/      OPC_CheckPredicate, 37, // Predicate_ldxr_1
/* 28825*/      OPC_MoveParent,
/* 28826*/      OPC_EmitMergeInputChains1_0,
/* 28827*/      OPC_EmitInteger, MVT::i64, 0, 
/* 28830*/      OPC_EmitNode1, TARGET_VAL(AArch64::LDXRB), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 28837*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 28840*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i64] } (intrinsic_w_chain:{ *:[i64] } 212:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldxr_1>>, 255:{ *:[i64] }) - Complexity = 17
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDXRB:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 28849*/    /*Scope*/ 42, /*->28892*/
/* 28850*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 28854*/      OPC_MoveChild0,
/* 28855*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 28858*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 28859*/      OPC_CheckFoldableChainNode,
/* 28860*/      OPC_CheckChild1Integer, 84|128,1/*212*/, 
/* 28863*/      OPC_RecordChild2, // #1 = $addr
/* 28864*/      OPC_CheckChild2Type, MVT::i64,
/* 28866*/      OPC_CheckPredicate, 38, // Predicate_ldxr_2
/* 28868*/      OPC_MoveParent,
/* 28869*/      OPC_EmitMergeInputChains1_0,
/* 28870*/      OPC_EmitInteger, MVT::i64, 0, 
/* 28873*/      OPC_EmitNode1, TARGET_VAL(AArch64::LDXRH), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 28880*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 28883*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i64] } (intrinsic_w_chain:{ *:[i64] } 212:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldxr_2>>, 65535:{ *:[i64] }) - Complexity = 17
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDXRH:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 28892*/    /*Scope*/ 44, /*->28937*/
/* 28893*/      OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/* 28899*/      OPC_MoveChild0,
/* 28900*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 28903*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 28904*/      OPC_CheckFoldableChainNode,
/* 28905*/      OPC_CheckChild1Integer, 84|128,1/*212*/, 
/* 28908*/      OPC_RecordChild2, // #1 = $addr
/* 28909*/      OPC_CheckChild2Type, MVT::i64,
/* 28911*/      OPC_CheckPredicate, 39, // Predicate_ldxr_4
/* 28913*/      OPC_MoveParent,
/* 28914*/      OPC_EmitMergeInputChains1_0,
/* 28915*/      OPC_EmitInteger, MVT::i64, 0, 
/* 28918*/      OPC_EmitNode1, TARGET_VAL(AArch64::LDXRW), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 28925*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 28928*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i64] } (intrinsic_w_chain:{ *:[i64] } 212:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldxr_4>>, 4294967295:{ *:[i64] }) - Complexity = 17
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDXRW:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 28937*/    /*Scope*/ 41, /*->28979*/
/* 28938*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 28941*/      OPC_MoveChild0,
/* 28942*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 28945*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 28946*/      OPC_CheckFoldableChainNode,
/* 28947*/      OPC_CheckChild1Integer, 82|128,1/*210*/, 
/* 28950*/      OPC_RecordChild2, // #1 = $addr
/* 28951*/      OPC_CheckChild2Type, MVT::i64,
/* 28953*/      OPC_CheckPredicate, 37, // Predicate_ldaxr_1
/* 28955*/      OPC_MoveParent,
/* 28956*/      OPC_EmitMergeInputChains1_0,
/* 28957*/      OPC_EmitInteger, MVT::i64, 0, 
/* 28960*/      OPC_EmitNode1, TARGET_VAL(AArch64::LDAXRB), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 28967*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 28970*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i64] } (intrinsic_w_chain:{ *:[i64] } 210:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldaxr_1>>, 255:{ *:[i64] }) - Complexity = 17
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDAXRB:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 28979*/    /*Scope*/ 42, /*->29022*/
/* 28980*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 28984*/      OPC_MoveChild0,
/* 28985*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 28988*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 28989*/      OPC_CheckFoldableChainNode,
/* 28990*/      OPC_CheckChild1Integer, 82|128,1/*210*/, 
/* 28993*/      OPC_RecordChild2, // #1 = $addr
/* 28994*/      OPC_CheckChild2Type, MVT::i64,
/* 28996*/      OPC_CheckPredicate, 38, // Predicate_ldaxr_2
/* 28998*/      OPC_MoveParent,
/* 28999*/      OPC_EmitMergeInputChains1_0,
/* 29000*/      OPC_EmitInteger, MVT::i64, 0, 
/* 29003*/      OPC_EmitNode1, TARGET_VAL(AArch64::LDAXRH), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 29010*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 29013*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i64] } (intrinsic_w_chain:{ *:[i64] } 210:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldaxr_2>>, 65535:{ *:[i64] }) - Complexity = 17
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDAXRH:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 29022*/    /*Scope*/ 44, /*->29067*/
/* 29023*/      OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/* 29029*/      OPC_MoveChild0,
/* 29030*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 29033*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 29034*/      OPC_CheckFoldableChainNode,
/* 29035*/      OPC_CheckChild1Integer, 82|128,1/*210*/, 
/* 29038*/      OPC_RecordChild2, // #1 = $addr
/* 29039*/      OPC_CheckChild2Type, MVT::i64,
/* 29041*/      OPC_CheckPredicate, 39, // Predicate_ldaxr_4
/* 29043*/      OPC_MoveParent,
/* 29044*/      OPC_EmitMergeInputChains1_0,
/* 29045*/      OPC_EmitInteger, MVT::i64, 0, 
/* 29048*/      OPC_EmitNode1, TARGET_VAL(AArch64::LDAXRW), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 29055*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 29058*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i64] } (intrinsic_w_chain:{ *:[i64] } 210:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldaxr_4>>, 4294967295:{ *:[i64] }) - Complexity = 17
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDAXRW:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 29067*/    /*Scope*/ 33, /*->29101*/
/* 29068*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 29071*/      OPC_MoveChild0,
/* 29072*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 29075*/      OPC_RecordChild0, // #0 = $Rn
/* 29076*/      OPC_CheckChild0Type, MVT::v16i8,
/* 29078*/      OPC_RecordChild1, // #1 = $idx
/* 29079*/      OPC_MoveChild1,
/* 29080*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29083*/      OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 29085*/      OPC_CheckType, MVT::i64,
/* 29087*/      OPC_MoveParent,
/* 29088*/      OPC_MoveParent,
/* 29089*/      OPC_CheckType, MVT::i32,
/* 29091*/      OPC_EmitConvertToTarget, 1,
/* 29093*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMOVvi8), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), 255:{ *:[i32] }) - Complexity = 15
                // Dst: (UMOVvi8:{ *:[i32] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx)
/* 29101*/    /*Scope*/ 34, /*->29136*/
/* 29102*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 29106*/      OPC_MoveChild0,
/* 29107*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 29110*/      OPC_RecordChild0, // #0 = $Rn
/* 29111*/      OPC_CheckChild0Type, MVT::v8i16,
/* 29113*/      OPC_RecordChild1, // #1 = $idx
/* 29114*/      OPC_MoveChild1,
/* 29115*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29118*/      OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 29120*/      OPC_CheckType, MVT::i64,
/* 29122*/      OPC_MoveParent,
/* 29123*/      OPC_MoveParent,
/* 29124*/      OPC_CheckType, MVT::i32,
/* 29126*/      OPC_EmitConvertToTarget, 1,
/* 29128*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMOVvi16), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (and:{ *:[i32] } (vector_extract:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 65535:{ *:[i32] }) - Complexity = 15
                // Dst: (UMOVvi16:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)
/* 29136*/    /*Scope*/ 26|128,1/*154*/, /*->29292*/
/* 29138*/      OPC_RecordChild0, // #0 = $Rn
/* 29139*/      OPC_Scope, 110, /*->29251*/ // 2 children in Scope
/* 29141*/        OPC_RecordChild1, // #1 = $imm
/* 29142*/        OPC_Scope, 44, /*->29188*/ // 3 children in Scope
/* 29144*/          OPC_MoveChild1,
/* 29145*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 29148*/          OPC_Scope, 18, /*->29168*/ // 2 children in Scope
/* 29150*/            OPC_CheckPredicate, 40, // Predicate_logical_imm32
/* 29152*/            OPC_MoveParent,
/* 29153*/            OPC_CheckType, MVT::i32,
/* 29155*/            OPC_EmitConvertToTarget, 1,
/* 29157*/            OPC_EmitNodeXForm, 0, 2, // logical_imm32_XFORM
/* 29160*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDWri), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (and:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_logical_imm32>><<X:logical_imm32_XFORM>>:$imm) - Complexity = 13
                      // Dst: (ANDWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (logical_imm32_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 29168*/          /*Scope*/ 18, /*->29187*/
/* 29169*/            OPC_CheckPredicate, 41, // Predicate_logical_imm64
/* 29171*/            OPC_MoveParent,
/* 29172*/            OPC_CheckType, MVT::i64,
/* 29174*/            OPC_EmitConvertToTarget, 1,
/* 29176*/            OPC_EmitNodeXForm, 1, 2, // logical_imm64_XFORM
/* 29179*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDXri), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (and:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_logical_imm64>><<X:logical_imm64_XFORM>>:$imm) - Complexity = 13
                      // Dst: (ANDXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (logical_imm64_XFORM:{ *:[i64] } (imm:{ *:[i64] }):$imm))
/* 29187*/          0, /*End of Scope*/
/* 29188*/        /*Scope*/ 30, /*->29219*/
/* 29189*/          OPC_CheckType, MVT::i32,
/* 29191*/          OPC_Scope, 12, /*->29205*/ // 2 children in Scope
/* 29193*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 29196*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDWrs), 0,
                          MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (and:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 12
                      // Dst: (ANDWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 29205*/          /*Scope*/ 12, /*->29218*/
/* 29206*/            OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 29209*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDWrs), 0,
                          MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (and:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, GPR32:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (ANDWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 29218*/          0, /*End of Scope*/
/* 29219*/        /*Scope*/ 30, /*->29250*/
/* 29220*/          OPC_CheckType, MVT::i64,
/* 29222*/          OPC_Scope, 12, /*->29236*/ // 2 children in Scope
/* 29224*/            OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 29227*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDXrs), 0,
                          MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (and:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 12
                      // Dst: (ANDXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 29236*/          /*Scope*/ 12, /*->29249*/
/* 29237*/            OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 29240*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDXrs), 0,
                          MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (and:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, GPR64:{ *:[i64] }:$Rn) - Complexity = 12
                      // Dst: (ANDXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 29249*/          0, /*End of Scope*/
/* 29250*/        0, /*End of Scope*/
/* 29251*/      /*Scope*/ 39, /*->29291*/
/* 29252*/        OPC_MoveChild1,
/* 29253*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29256*/        OPC_RecordChild0, // #1 = $Rm
/* 29257*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29268*/        OPC_MoveParent,
/* 29269*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->29280
/* 29272*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICWrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 11
                    // Dst: (BICWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 29280*/        /*SwitchType*/ 8, MVT::i64,// ->29290
/* 29282*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICXrr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, -1:{ *:[i64] })) - Complexity = 11
                    // Dst: (BICXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 29290*/        0, // EndSwitchType
/* 29291*/      0, /*End of Scope*/
/* 29292*/    /*Scope*/ 40, /*->29333*/
/* 29293*/      OPC_MoveChild0,
/* 29294*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29297*/      OPC_RecordChild0, // #0 = $Rm
/* 29298*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29309*/      OPC_MoveParent,
/* 29310*/      OPC_RecordChild1, // #1 = $Rn
/* 29311*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->29322
/* 29314*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICWrr), 0,
                      MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (BICWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 29322*/      /*SwitchType*/ 8, MVT::i64,// ->29332
/* 29324*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICXrr), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn) - Complexity = 11
                  // Dst: (BICXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 29332*/      0, // EndSwitchType
/* 29333*/    /*Scope*/ 37|128,1/*165*/, /*->29500*/
/* 29335*/      OPC_RecordChild0, // #0 = $Rn
/* 29336*/      OPC_Scope, 23, /*->29361*/ // 2 children in Scope
/* 29338*/        OPC_RecordChild1, // #1 = $Rm
/* 29339*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->29350
/* 29342*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDWrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (ANDWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 29350*/        /*SwitchType*/ 8, MVT::i64,// ->29360
/* 29352*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDXrr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (ANDXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 29360*/        0, // EndSwitchType
/* 29361*/      /*Scope*/ 8|128,1/*136*/, /*->29499*/
/* 29363*/        OPC_MoveChild1,
/* 29364*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29367*/        OPC_Scope, 107, /*->29476*/ // 2 children in Scope
/* 29369*/          OPC_RecordChild0, // #1 = $Rm
/* 29370*/          OPC_MoveChild1,
/* 29371*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29374*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29376*/          OPC_MoveParent,
/* 29377*/          OPC_MoveParent,
/* 29378*/          OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->29391
/* 29381*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29383*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                          MVT::v8i8, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                      // Dst: (BICv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 29391*/          /*SwitchType*/ 10, MVT::v16i8,// ->29403
/* 29393*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29395*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                      // Dst: (BICv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 29403*/          /*SwitchType*/ 10, MVT::v4i16,// ->29415
/* 29405*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29407*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                          MVT::v4i16, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                      // Dst: (BICv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 29415*/          /*SwitchType*/ 10, MVT::v2i32,// ->29427
/* 29417*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29419*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                          MVT::v2i32, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                      // Dst: (BICv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 29427*/          /*SwitchType*/ 10, MVT::v1i64,// ->29439
/* 29429*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29431*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                          MVT::v1i64, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                      // Dst: (BICv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 29439*/          /*SwitchType*/ 10, MVT::v8i16,// ->29451
/* 29441*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29443*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                      // Dst: (BICv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 29451*/          /*SwitchType*/ 10, MVT::v4i32,// ->29463
/* 29453*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29455*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                      // Dst: (BICv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 29463*/          /*SwitchType*/ 10, MVT::v2i64,// ->29475
/* 29465*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29467*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                      // Dst: (BICv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 29475*/          0, // EndSwitchType
/* 29476*/        /*Scope*/ 21, /*->29498*/
/* 29477*/          OPC_MoveChild0,
/* 29478*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29481*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29483*/          OPC_MoveParent,
/* 29484*/          OPC_RecordChild1, // #1 = $Rm
/* 29485*/          OPC_MoveParent,
/* 29486*/          OPC_CheckType, MVT::v8i8,
/* 29488*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29490*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                        MVT::v8i8, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rm)) - Complexity = 10
                    // Dst: (BICv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 29498*/        0, /*End of Scope*/
/* 29499*/      0, /*End of Scope*/
/* 29500*/    /*Scope*/ 52, /*->29553*/
/* 29501*/      OPC_MoveChild0,
/* 29502*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29505*/      OPC_Scope, 22, /*->29529*/ // 2 children in Scope
/* 29507*/        OPC_RecordChild0, // #0 = $Rm
/* 29508*/        OPC_MoveChild1,
/* 29509*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29512*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29514*/        OPC_MoveParent,
/* 29515*/        OPC_MoveParent,
/* 29516*/        OPC_RecordChild1, // #1 = $Rn
/* 29517*/        OPC_CheckType, MVT::v8i8,
/* 29519*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29521*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v8i8] } (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v8i8] }:$Rn) - Complexity = 10
                  // Dst: (BICv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 29529*/      /*Scope*/ 22, /*->29552*/
/* 29530*/        OPC_MoveChild0,
/* 29531*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29534*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29536*/        OPC_MoveParent,
/* 29537*/        OPC_RecordChild1, // #0 = $Rm
/* 29538*/        OPC_MoveParent,
/* 29539*/        OPC_RecordChild1, // #1 = $Rn
/* 29540*/        OPC_CheckType, MVT::v8i8,
/* 29542*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29544*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v8i8] } (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rm), V64:{ *:[v8i8] }:$Rn) - Complexity = 10
                  // Dst: (BICv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 29552*/      0, /*End of Scope*/
/* 29553*/    /*Scope*/ 26, /*->29580*/
/* 29554*/      OPC_RecordChild0, // #0 = $Rn
/* 29555*/      OPC_MoveChild1,
/* 29556*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29559*/      OPC_MoveChild0,
/* 29560*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29563*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29565*/      OPC_MoveParent,
/* 29566*/      OPC_RecordChild1, // #1 = $Rm
/* 29567*/      OPC_MoveParent,
/* 29568*/      OPC_CheckType, MVT::v16i8,
/* 29570*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29572*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rm)) - Complexity = 10
                // Dst: (BICv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 29580*/    /*Scope*/ 52, /*->29633*/
/* 29581*/      OPC_MoveChild0,
/* 29582*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29585*/      OPC_Scope, 22, /*->29609*/ // 2 children in Scope
/* 29587*/        OPC_RecordChild0, // #0 = $Rm
/* 29588*/        OPC_MoveChild1,
/* 29589*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29592*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29594*/        OPC_MoveParent,
/* 29595*/        OPC_MoveParent,
/* 29596*/        OPC_RecordChild1, // #1 = $Rn
/* 29597*/        OPC_CheckType, MVT::v16i8,
/* 29599*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29601*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v16i8] }:$Rn) - Complexity = 10
                  // Dst: (BICv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 29609*/      /*Scope*/ 22, /*->29632*/
/* 29610*/        OPC_MoveChild0,
/* 29611*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29614*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29616*/        OPC_MoveParent,
/* 29617*/        OPC_RecordChild1, // #0 = $Rm
/* 29618*/        OPC_MoveParent,
/* 29619*/        OPC_RecordChild1, // #1 = $Rn
/* 29620*/        OPC_CheckType, MVT::v16i8,
/* 29622*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29624*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rm), V128:{ *:[v16i8] }:$Rn) - Complexity = 10
                  // Dst: (BICv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 29632*/      0, /*End of Scope*/
/* 29633*/    /*Scope*/ 26, /*->29660*/
/* 29634*/      OPC_RecordChild0, // #0 = $LHS
/* 29635*/      OPC_MoveChild1,
/* 29636*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29639*/      OPC_MoveChild0,
/* 29640*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29643*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29645*/      OPC_MoveParent,
/* 29646*/      OPC_RecordChild1, // #1 = $RHS
/* 29647*/      OPC_MoveParent,
/* 29648*/      OPC_CheckType, MVT::v4i16,
/* 29650*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29652*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$RHS)) - Complexity = 10
                // Dst: (BICv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 29660*/    /*Scope*/ 52, /*->29713*/
/* 29661*/      OPC_MoveChild0,
/* 29662*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29665*/      OPC_Scope, 22, /*->29689*/ // 2 children in Scope
/* 29667*/        OPC_RecordChild0, // #0 = $RHS
/* 29668*/        OPC_MoveChild1,
/* 29669*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29672*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29674*/        OPC_MoveParent,
/* 29675*/        OPC_MoveParent,
/* 29676*/        OPC_RecordChild1, // #1 = $LHS
/* 29677*/        OPC_CheckType, MVT::v4i16,
/* 29679*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29681*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i16] } (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v4i16] }:$LHS) - Complexity = 10
                  // Dst: (BICv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 29689*/      /*Scope*/ 22, /*->29712*/
/* 29690*/        OPC_MoveChild0,
/* 29691*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29694*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29696*/        OPC_MoveParent,
/* 29697*/        OPC_RecordChild1, // #0 = $RHS
/* 29698*/        OPC_MoveParent,
/* 29699*/        OPC_RecordChild1, // #1 = $LHS
/* 29700*/        OPC_CheckType, MVT::v4i16,
/* 29702*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29704*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i16] } (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$RHS), V64:{ *:[v4i16] }:$LHS) - Complexity = 10
                  // Dst: (BICv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 29712*/      0, /*End of Scope*/
/* 29713*/    /*Scope*/ 26, /*->29740*/
/* 29714*/      OPC_RecordChild0, // #0 = $LHS
/* 29715*/      OPC_MoveChild1,
/* 29716*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29719*/      OPC_MoveChild0,
/* 29720*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29723*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29725*/      OPC_MoveParent,
/* 29726*/      OPC_RecordChild1, // #1 = $RHS
/* 29727*/      OPC_MoveParent,
/* 29728*/      OPC_CheckType, MVT::v2i32,
/* 29730*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29732*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$RHS)) - Complexity = 10
                // Dst: (BICv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 29740*/    /*Scope*/ 52, /*->29793*/
/* 29741*/      OPC_MoveChild0,
/* 29742*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29745*/      OPC_Scope, 22, /*->29769*/ // 2 children in Scope
/* 29747*/        OPC_RecordChild0, // #0 = $RHS
/* 29748*/        OPC_MoveChild1,
/* 29749*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29752*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29754*/        OPC_MoveParent,
/* 29755*/        OPC_MoveParent,
/* 29756*/        OPC_RecordChild1, // #1 = $LHS
/* 29757*/        OPC_CheckType, MVT::v2i32,
/* 29759*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29761*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v2i32] } (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v2i32] }:$LHS) - Complexity = 10
                  // Dst: (BICv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 29769*/      /*Scope*/ 22, /*->29792*/
/* 29770*/        OPC_MoveChild0,
/* 29771*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29774*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29776*/        OPC_MoveParent,
/* 29777*/        OPC_RecordChild1, // #0 = $RHS
/* 29778*/        OPC_MoveParent,
/* 29779*/        OPC_RecordChild1, // #1 = $LHS
/* 29780*/        OPC_CheckType, MVT::v2i32,
/* 29782*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29784*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$RHS), V64:{ *:[v2i32] }:$LHS) - Complexity = 10
                  // Dst: (BICv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 29792*/      0, /*End of Scope*/
/* 29793*/    /*Scope*/ 26, /*->29820*/
/* 29794*/      OPC_RecordChild0, // #0 = $LHS
/* 29795*/      OPC_MoveChild1,
/* 29796*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29799*/      OPC_MoveChild0,
/* 29800*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29803*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29805*/      OPC_MoveParent,
/* 29806*/      OPC_RecordChild1, // #1 = $RHS
/* 29807*/      OPC_MoveParent,
/* 29808*/      OPC_CheckType, MVT::v1i64,
/* 29810*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29812*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$RHS)) - Complexity = 10
                // Dst: (BICv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 29820*/    /*Scope*/ 52, /*->29873*/
/* 29821*/      OPC_MoveChild0,
/* 29822*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29825*/      OPC_Scope, 22, /*->29849*/ // 2 children in Scope
/* 29827*/        OPC_RecordChild0, // #0 = $RHS
/* 29828*/        OPC_MoveChild1,
/* 29829*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29832*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29834*/        OPC_MoveParent,
/* 29835*/        OPC_MoveParent,
/* 29836*/        OPC_RecordChild1, // #1 = $LHS
/* 29837*/        OPC_CheckType, MVT::v1i64,
/* 29839*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29841*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                      MVT::v1i64, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v1i64] } (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v1i64] }:$LHS) - Complexity = 10
                  // Dst: (BICv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 29849*/      /*Scope*/ 22, /*->29872*/
/* 29850*/        OPC_MoveChild0,
/* 29851*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29854*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29856*/        OPC_MoveParent,
/* 29857*/        OPC_RecordChild1, // #0 = $RHS
/* 29858*/        OPC_MoveParent,
/* 29859*/        OPC_RecordChild1, // #1 = $LHS
/* 29860*/        OPC_CheckType, MVT::v1i64,
/* 29862*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29864*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i8), 0,
                      MVT::v1i64, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$RHS), V64:{ *:[v1i64] }:$LHS) - Complexity = 10
                  // Dst: (BICv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 29872*/      0, /*End of Scope*/
/* 29873*/    /*Scope*/ 26, /*->29900*/
/* 29874*/      OPC_RecordChild0, // #0 = $LHS
/* 29875*/      OPC_MoveChild1,
/* 29876*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29879*/      OPC_MoveChild0,
/* 29880*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29883*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29885*/      OPC_MoveParent,
/* 29886*/      OPC_RecordChild1, // #1 = $RHS
/* 29887*/      OPC_MoveParent,
/* 29888*/      OPC_CheckType, MVT::v8i16,
/* 29890*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29892*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$RHS)) - Complexity = 10
                // Dst: (BICv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 29900*/    /*Scope*/ 52, /*->29953*/
/* 29901*/      OPC_MoveChild0,
/* 29902*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29905*/      OPC_Scope, 22, /*->29929*/ // 2 children in Scope
/* 29907*/        OPC_RecordChild0, // #0 = $RHS
/* 29908*/        OPC_MoveChild1,
/* 29909*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29912*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29914*/        OPC_MoveParent,
/* 29915*/        OPC_MoveParent,
/* 29916*/        OPC_RecordChild1, // #1 = $LHS
/* 29917*/        OPC_CheckType, MVT::v8i16,
/* 29919*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29921*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v8i16] }:$LHS) - Complexity = 10
                  // Dst: (BICv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 29929*/      /*Scope*/ 22, /*->29952*/
/* 29930*/        OPC_MoveChild0,
/* 29931*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29934*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29936*/        OPC_MoveParent,
/* 29937*/        OPC_RecordChild1, // #0 = $RHS
/* 29938*/        OPC_MoveParent,
/* 29939*/        OPC_RecordChild1, // #1 = $LHS
/* 29940*/        OPC_CheckType, MVT::v8i16,
/* 29942*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29944*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$RHS), V128:{ *:[v8i16] }:$LHS) - Complexity = 10
                  // Dst: (BICv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 29952*/      0, /*End of Scope*/
/* 29953*/    /*Scope*/ 26, /*->29980*/
/* 29954*/      OPC_RecordChild0, // #0 = $LHS
/* 29955*/      OPC_MoveChild1,
/* 29956*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29959*/      OPC_MoveChild0,
/* 29960*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29963*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29965*/      OPC_MoveParent,
/* 29966*/      OPC_RecordChild1, // #1 = $RHS
/* 29967*/      OPC_MoveParent,
/* 29968*/      OPC_CheckType, MVT::v4i32,
/* 29970*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 29972*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$RHS)) - Complexity = 10
                // Dst: (BICv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 29980*/    /*Scope*/ 52, /*->30033*/
/* 29981*/      OPC_MoveChild0,
/* 29982*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 29985*/      OPC_Scope, 22, /*->30009*/ // 2 children in Scope
/* 29987*/        OPC_RecordChild0, // #0 = $RHS
/* 29988*/        OPC_MoveChild1,
/* 29989*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 29992*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 29994*/        OPC_MoveParent,
/* 29995*/        OPC_MoveParent,
/* 29996*/        OPC_RecordChild1, // #1 = $LHS
/* 29997*/        OPC_CheckType, MVT::v4i32,
/* 29999*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30001*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v4i32] }:$LHS) - Complexity = 10
                  // Dst: (BICv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 30009*/      /*Scope*/ 22, /*->30032*/
/* 30010*/        OPC_MoveChild0,
/* 30011*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30014*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 30016*/        OPC_MoveParent,
/* 30017*/        OPC_RecordChild1, // #0 = $RHS
/* 30018*/        OPC_MoveParent,
/* 30019*/        OPC_RecordChild1, // #1 = $LHS
/* 30020*/        OPC_CheckType, MVT::v4i32,
/* 30022*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30024*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$RHS), V128:{ *:[v4i32] }:$LHS) - Complexity = 10
                  // Dst: (BICv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 30032*/      0, /*End of Scope*/
/* 30033*/    /*Scope*/ 26, /*->30060*/
/* 30034*/      OPC_RecordChild0, // #0 = $LHS
/* 30035*/      OPC_MoveChild1,
/* 30036*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 30039*/      OPC_MoveChild0,
/* 30040*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30043*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 30045*/      OPC_MoveParent,
/* 30046*/      OPC_RecordChild1, // #1 = $RHS
/* 30047*/      OPC_MoveParent,
/* 30048*/      OPC_CheckType, MVT::v2i64,
/* 30050*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30052*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$RHS)) - Complexity = 10
                // Dst: (BICv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 30060*/    /*Scope*/ 52, /*->30113*/
/* 30061*/      OPC_MoveChild0,
/* 30062*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 30065*/      OPC_Scope, 22, /*->30089*/ // 2 children in Scope
/* 30067*/        OPC_RecordChild0, // #0 = $RHS
/* 30068*/        OPC_MoveChild1,
/* 30069*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30072*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 30074*/        OPC_MoveParent,
/* 30075*/        OPC_MoveParent,
/* 30076*/        OPC_RecordChild1, // #1 = $LHS
/* 30077*/        OPC_CheckType, MVT::v2i64,
/* 30079*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30081*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v2i64] }:$LHS) - Complexity = 10
                  // Dst: (BICv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 30089*/      /*Scope*/ 22, /*->30112*/
/* 30090*/        OPC_MoveChild0,
/* 30091*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 30094*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 30096*/        OPC_MoveParent,
/* 30097*/        OPC_RecordChild1, // #0 = $RHS
/* 30098*/        OPC_MoveParent,
/* 30099*/        OPC_RecordChild1, // #1 = $LHS
/* 30100*/        OPC_CheckType, MVT::v2i64,
/* 30102*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30104*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv16i8), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$RHS), V128:{ *:[v2i64] }:$LHS) - Complexity = 10
                  // Dst: (BICv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 30112*/      0, /*End of Scope*/
/* 30113*/    /*Scope*/ 100, /*->30214*/
/* 30114*/      OPC_RecordChild0, // #0 = $Rn
/* 30115*/      OPC_RecordChild1, // #1 = $Rm
/* 30116*/      OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->30129
/* 30119*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30121*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                  // Dst: (ANDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 30129*/      /*SwitchType*/ 10, MVT::v16i8,// ->30141
/* 30131*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30133*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                  // Dst: (ANDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 30141*/      /*SwitchType*/ 10, MVT::v4i16,// ->30153
/* 30143*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30145*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDv8i8), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS) - Complexity = 3
                  // Dst: (ANDv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 30153*/      /*SwitchType*/ 10, MVT::v2i32,// ->30165
/* 30155*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30157*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDv8i8), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS) - Complexity = 3
                  // Dst: (ANDv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 30165*/      /*SwitchType*/ 10, MVT::v1i64,// ->30177
/* 30167*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30169*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDv8i8), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS) - Complexity = 3
                  // Dst: (ANDv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 30177*/      /*SwitchType*/ 10, MVT::v8i16,// ->30189
/* 30179*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30181*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDv16i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS) - Complexity = 3
                  // Dst: (ANDv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 30189*/      /*SwitchType*/ 10, MVT::v4i32,// ->30201
/* 30191*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30193*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDv16i8), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS) - Complexity = 3
                  // Dst: (ANDv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 30201*/      /*SwitchType*/ 10, MVT::v2i64,// ->30213
/* 30203*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 30205*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ANDv16i8), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS) - Complexity = 3
                  // Dst: (ANDv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 30213*/      0, // EndSwitchType
/* 30214*/    0, /*End of Scope*/
/* 30215*/  /*SwitchOpcode*/ 62, TARGET_VAL(ISD::ATOMIC_FENCE),// ->30280
/* 30218*/    OPC_RecordNode, // #0 = 'atomic_fence' chained node
/* 30219*/    OPC_Scope, 17, /*->30238*/ // 3 children in Scope
/* 30221*/      OPC_RecordChild1, // #1 = $ordering
/* 30222*/      OPC_MoveChild1,
/* 30223*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30226*/      OPC_MoveParent,
/* 30227*/      OPC_CheckChild2Integer, 0, 
/* 30229*/      OPC_EmitMergeInputChains1_0,
/* 30230*/      OPC_EmitConvertToTarget, 1,
/* 30232*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::CompilerBarrier), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (atomic_fence (imm:{ *:[iPTR] }):$ordering, 0:{ *:[iPTR] }) - Complexity = 26
                // Dst: (CompilerBarrier (imm:{ *:[i32] }):$ordering)
/* 30238*/    /*Scope*/ 19, /*->30258*/
/* 30239*/      OPC_CheckChild1Integer, 4, 
/* 30241*/      OPC_CheckChild1Type, MVT::i64,
/* 30243*/      OPC_MoveChild2,
/* 30244*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30247*/      OPC_MoveParent,
/* 30248*/      OPC_EmitMergeInputChains1_0,
/* 30249*/      OPC_EmitInteger, MVT::i32, 9, 
/* 30252*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::DMB), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (atomic_fence 4:{ *:[i64] }, (imm:{ *:[i64] })) - Complexity = 11
                // Dst: (DMB 9:{ *:[i32] })
/* 30258*/    /*Scope*/ 20, /*->30279*/
/* 30259*/      OPC_MoveChild1,
/* 30260*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30263*/      OPC_MoveParent,
/* 30264*/      OPC_MoveChild2,
/* 30265*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30268*/      OPC_MoveParent,
/* 30269*/      OPC_EmitMergeInputChains1_0,
/* 30270*/      OPC_EmitInteger, MVT::i32, 11, 
/* 30273*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::DMB), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (atomic_fence (imm:{ *:[iPTR] }), (imm:{ *:[iPTR] })) - Complexity = 9
                // Dst: (DMB 11:{ *:[i32] })
/* 30279*/    0, /*End of Scope*/
/* 30280*/  /*SwitchOpcode*/ 90|128,7/*986*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->31270
/* 30284*/    OPC_Scope, 69|128,6/*837*/, /*->31124*/ // 2 children in Scope
/* 30287*/      OPC_MoveChild0,
/* 30288*/      OPC_SwitchOpcode /*2 cases */, 122|128,5/*762*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->31055
/* 30293*/        OPC_Scope, 26|128,5/*666*/, /*->30962*/ // 2 children in Scope
/* 30296*/          OPC_MoveChild0,
/* 30297*/          OPC_SwitchOpcode /*4 cases */, 85|128,2/*341*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->30643
/* 30302*/            OPC_MoveChild0,
/* 30303*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 30306*/            OPC_MoveParent,
/* 30307*/            OPC_MoveChild1,
/* 30308*/            OPC_SwitchOpcode /*3 cases */, 108, TARGET_VAL(AArch64ISD::SADDV),// ->30420
/* 30312*/              OPC_RecordChild0, // #0 = $Rn
/* 30313*/              OPC_MoveParent,
/* 30314*/              OPC_CheckChild2Integer, 0, 
/* 30316*/              OPC_CheckChild2Type, MVT::i32,
/* 30318*/              OPC_SwitchType /*2 cases */, 48, MVT::v16i8,// ->30369
/* 30321*/                OPC_MoveParent,
/* 30322*/                OPC_CheckChild1Integer, 0, 
/* 30324*/                OPC_CheckChild1Type, MVT::i64,
/* 30326*/                OPC_MoveParent,
/* 30327*/                OPC_MoveChild1,
/* 30328*/                OPC_CheckValueType, MVT::i8,
/* 30330*/                OPC_MoveParent,
/* 30331*/                OPC_CheckType, MVT::i32,
/* 30333*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30339*/                OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i8v), 0,
                              MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 30346*/                OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 30349*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30358*/                OPC_EmitInteger, MVT::i64, 0, 
/* 30361*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to32), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64saddv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), i8:{ *:[Other] }) - Complexity = 25
                          // Dst: (SMOVvi8to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30369*/              /*SwitchType*/ 48, MVT::v8i16,// ->30419
/* 30371*/                OPC_MoveParent,
/* 30372*/                OPC_CheckChild1Integer, 0, 
/* 30374*/                OPC_CheckChild1Type, MVT::i64,
/* 30376*/                OPC_MoveParent,
/* 30377*/                OPC_MoveChild1,
/* 30378*/                OPC_CheckValueType, MVT::i16,
/* 30380*/                OPC_MoveParent,
/* 30381*/                OPC_CheckType, MVT::i32,
/* 30383*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30389*/                OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i16v), 0,
                              MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 30396*/                OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 30399*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30408*/                OPC_EmitInteger, MVT::i64, 0, 
/* 30411*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64saddv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), i16:{ *:[Other] }) - Complexity = 25
                          // Dst: (SMOVvi16to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30419*/              0, // EndSwitchType
/* 30420*/            /*SwitchOpcode*/ 108, TARGET_VAL(AArch64ISD::SMAXV),// ->30531
/* 30423*/              OPC_RecordChild0, // #0 = $Rn
/* 30424*/              OPC_MoveParent,
/* 30425*/              OPC_CheckChild2Integer, 0, 
/* 30427*/              OPC_CheckChild2Type, MVT::i32,
/* 30429*/              OPC_SwitchType /*2 cases */, 48, MVT::v16i8,// ->30480
/* 30432*/                OPC_MoveParent,
/* 30433*/                OPC_CheckChild1Integer, 0, 
/* 30435*/                OPC_CheckChild1Type, MVT::i64,
/* 30437*/                OPC_MoveParent,
/* 30438*/                OPC_MoveChild1,
/* 30439*/                OPC_CheckValueType, MVT::i8,
/* 30441*/                OPC_MoveParent,
/* 30442*/                OPC_CheckType, MVT::i32,
/* 30444*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30450*/                OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv8i8v), 0,
                              MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 30457*/                OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 30460*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30469*/                OPC_EmitInteger, MVT::i64, 0, 
/* 30472*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to32), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64smaxv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), i8:{ *:[Other] }) - Complexity = 25
                          // Dst: (SMOVvi8to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMAXVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30480*/              /*SwitchType*/ 48, MVT::v8i16,// ->30530
/* 30482*/                OPC_MoveParent,
/* 30483*/                OPC_CheckChild1Integer, 0, 
/* 30485*/                OPC_CheckChild1Type, MVT::i64,
/* 30487*/                OPC_MoveParent,
/* 30488*/                OPC_MoveChild1,
/* 30489*/                OPC_CheckValueType, MVT::i16,
/* 30491*/                OPC_MoveParent,
/* 30492*/                OPC_CheckType, MVT::i32,
/* 30494*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30500*/                OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv4i16v), 0,
                              MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 30507*/                OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 30510*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30519*/                OPC_EmitInteger, MVT::i64, 0, 
/* 30522*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64smaxv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), i16:{ *:[Other] }) - Complexity = 25
                          // Dst: (SMOVvi16to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMAXVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30530*/              0, // EndSwitchType
/* 30531*/            /*SwitchOpcode*/ 108, TARGET_VAL(AArch64ISD::SMINV),// ->30642
/* 30534*/              OPC_RecordChild0, // #0 = $Rn
/* 30535*/              OPC_MoveParent,
/* 30536*/              OPC_CheckChild2Integer, 0, 
/* 30538*/              OPC_CheckChild2Type, MVT::i32,
/* 30540*/              OPC_SwitchType /*2 cases */, 48, MVT::v16i8,// ->30591
/* 30543*/                OPC_MoveParent,
/* 30544*/                OPC_CheckChild1Integer, 0, 
/* 30546*/                OPC_CheckChild1Type, MVT::i64,
/* 30548*/                OPC_MoveParent,
/* 30549*/                OPC_MoveChild1,
/* 30550*/                OPC_CheckValueType, MVT::i8,
/* 30552*/                OPC_MoveParent,
/* 30553*/                OPC_CheckType, MVT::i32,
/* 30555*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30561*/                OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv8i8v), 0,
                              MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 30568*/                OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 30571*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30580*/                OPC_EmitInteger, MVT::i64, 0, 
/* 30583*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to32), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64sminv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), i8:{ *:[Other] }) - Complexity = 25
                          // Dst: (SMOVvi8to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMINVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30591*/              /*SwitchType*/ 48, MVT::v8i16,// ->30641
/* 30593*/                OPC_MoveParent,
/* 30594*/                OPC_CheckChild1Integer, 0, 
/* 30596*/                OPC_CheckChild1Type, MVT::i64,
/* 30598*/                OPC_MoveParent,
/* 30599*/                OPC_MoveChild1,
/* 30600*/                OPC_CheckValueType, MVT::i16,
/* 30602*/                OPC_MoveParent,
/* 30603*/                OPC_CheckType, MVT::i32,
/* 30605*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30611*/                OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv4i16v), 0,
                              MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 30618*/                OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 30621*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30630*/                OPC_EmitInteger, MVT::i64, 0, 
/* 30633*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64sminv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }), i16:{ *:[Other] }) - Complexity = 25
                          // Dst: (SMOVvi16to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMINVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30641*/              0, // EndSwitchType
/* 30642*/            0, // EndSwitchOpcode
/* 30643*/          /*SwitchOpcode*/ 103, TARGET_VAL(AArch64ISD::SADDV),// ->30749
/* 30646*/            OPC_RecordChild0, // #0 = $Rn
/* 30647*/            OPC_SwitchType /*2 cases */, 48, MVT::v16i8,// ->30698
/* 30650*/              OPC_MoveParent,
/* 30651*/              OPC_CheckChild1Integer, 0, 
/* 30653*/              OPC_CheckChild1Type, MVT::i64,
/* 30655*/              OPC_MoveParent,
/* 30656*/              OPC_MoveChild1,
/* 30657*/              OPC_CheckValueType, MVT::i8,
/* 30659*/              OPC_MoveParent,
/* 30660*/              OPC_CheckType, MVT::i32,
/* 30662*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30668*/              OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv16i8v), 0,
                            MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 30675*/              OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 30678*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30687*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30690*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to32), 0,
                            MVT::i32, 2/*#Ops*/, 4, 5, 
                        // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64saddv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }), i8:{ *:[Other] }) - Complexity = 14
                        // Dst: (SMOVvi8to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30698*/            /*SwitchType*/ 48, MVT::v8i16,// ->30748
/* 30700*/              OPC_MoveParent,
/* 30701*/              OPC_CheckChild1Integer, 0, 
/* 30703*/              OPC_CheckChild1Type, MVT::i64,
/* 30705*/              OPC_MoveParent,
/* 30706*/              OPC_MoveChild1,
/* 30707*/              OPC_CheckValueType, MVT::i16,
/* 30709*/              OPC_MoveParent,
/* 30710*/              OPC_CheckType, MVT::i32,
/* 30712*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30718*/              OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i16v), 0,
                            MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 30725*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 30728*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30737*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30740*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                            MVT::i32, 2/*#Ops*/, 4, 5, 
                        // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64saddv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }), i16:{ *:[Other] }) - Complexity = 14
                        // Dst: (SMOVvi16to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30748*/            0, // EndSwitchType
/* 30749*/          /*SwitchOpcode*/ 103, TARGET_VAL(AArch64ISD::SMAXV),// ->30855
/* 30752*/            OPC_RecordChild0, // #0 = $Rn
/* 30753*/            OPC_SwitchType /*2 cases */, 48, MVT::v16i8,// ->30804
/* 30756*/              OPC_MoveParent,
/* 30757*/              OPC_CheckChild1Integer, 0, 
/* 30759*/              OPC_CheckChild1Type, MVT::i64,
/* 30761*/              OPC_MoveParent,
/* 30762*/              OPC_MoveChild1,
/* 30763*/              OPC_CheckValueType, MVT::i8,
/* 30765*/              OPC_MoveParent,
/* 30766*/              OPC_CheckType, MVT::i32,
/* 30768*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30774*/              OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv16i8v), 0,
                            MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 30781*/              OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 30784*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30793*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30796*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to32), 0,
                            MVT::i32, 2/*#Ops*/, 4, 5, 
                        // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64smaxv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }), i8:{ *:[Other] }) - Complexity = 14
                        // Dst: (SMOVvi8to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMAXVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30804*/            /*SwitchType*/ 48, MVT::v8i16,// ->30854
/* 30806*/              OPC_MoveParent,
/* 30807*/              OPC_CheckChild1Integer, 0, 
/* 30809*/              OPC_CheckChild1Type, MVT::i64,
/* 30811*/              OPC_MoveParent,
/* 30812*/              OPC_MoveChild1,
/* 30813*/              OPC_CheckValueType, MVT::i16,
/* 30815*/              OPC_MoveParent,
/* 30816*/              OPC_CheckType, MVT::i32,
/* 30818*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30824*/              OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv8i16v), 0,
                            MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 30831*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 30834*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30843*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30846*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                            MVT::i32, 2/*#Ops*/, 4, 5, 
                        // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64smaxv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }), i16:{ *:[Other] }) - Complexity = 14
                        // Dst: (SMOVvi16to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMAXVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30854*/            0, // EndSwitchType
/* 30855*/          /*SwitchOpcode*/ 103, TARGET_VAL(AArch64ISD::SMINV),// ->30961
/* 30858*/            OPC_RecordChild0, // #0 = $Rn
/* 30859*/            OPC_SwitchType /*2 cases */, 48, MVT::v16i8,// ->30910
/* 30862*/              OPC_MoveParent,
/* 30863*/              OPC_CheckChild1Integer, 0, 
/* 30865*/              OPC_CheckChild1Type, MVT::i64,
/* 30867*/              OPC_MoveParent,
/* 30868*/              OPC_MoveChild1,
/* 30869*/              OPC_CheckValueType, MVT::i8,
/* 30871*/              OPC_MoveParent,
/* 30872*/              OPC_CheckType, MVT::i32,
/* 30874*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30880*/              OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv16i8v), 0,
                            MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 30887*/              OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 30890*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30899*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30902*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to32), 0,
                            MVT::i32, 2/*#Ops*/, 4, 5, 
                        // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64sminv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }), i8:{ *:[Other] }) - Complexity = 14
                        // Dst: (SMOVvi8to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMINVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30910*/            /*SwitchType*/ 48, MVT::v8i16,// ->30960
/* 30912*/              OPC_MoveParent,
/* 30913*/              OPC_CheckChild1Integer, 0, 
/* 30915*/              OPC_CheckChild1Type, MVT::i64,
/* 30917*/              OPC_MoveParent,
/* 30918*/              OPC_MoveChild1,
/* 30919*/              OPC_CheckValueType, MVT::i16,
/* 30921*/              OPC_MoveParent,
/* 30922*/              OPC_CheckType, MVT::i32,
/* 30924*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 30930*/              OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv8i16v), 0,
                            MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 30937*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 30940*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 30949*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30952*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                            MVT::i32, 2/*#Ops*/, 4, 5, 
                        // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } (AArch64sminv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }), i16:{ *:[Other] }) - Complexity = 14
                        // Dst: (SMOVvi16to32:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMINVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 30960*/            0, // EndSwitchType
/* 30961*/          0, // EndSwitchOpcode
/* 30962*/        /*Scope*/ 91, /*->31054*/
/* 30963*/          OPC_RecordChild0, // #0 = $Rn
/* 30964*/          OPC_Scope, 43, /*->31009*/ // 2 children in Scope
/* 30966*/            OPC_CheckChild0Type, MVT::v16i8,
/* 30968*/            OPC_RecordChild1, // #1 = $idx
/* 30969*/            OPC_MoveChild1,
/* 30970*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 30973*/            OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 30975*/            OPC_CheckType, MVT::i64,
/* 30977*/            OPC_MoveParent,
/* 30978*/            OPC_MoveParent,
/* 30979*/            OPC_MoveChild1,
/* 30980*/            OPC_CheckValueType, MVT::i8,
/* 30982*/            OPC_MoveParent,
/* 30983*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->30996
/* 30986*/              OPC_EmitConvertToTarget, 1,
/* 30988*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to32), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), i8:{ *:[Other] }) - Complexity = 10
                        // Dst: (SMOVvi8to32:{ *:[i32] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx)
/* 30996*/            /*SwitchType*/ 10, MVT::i64,// ->31008
/* 30998*/              OPC_EmitConvertToTarget, 1,
/* 31000*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to64), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (sext_inreg:{ *:[i64] } (vector_extract:{ *:[i64] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx), i8:{ *:[Other] }) - Complexity = 10
                        // Dst: (SMOVvi8to64:{ *:[i64] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx)
/* 31008*/            0, // EndSwitchType
/* 31009*/          /*Scope*/ 43, /*->31053*/
/* 31010*/            OPC_CheckChild0Type, MVT::v8i16,
/* 31012*/            OPC_RecordChild1, // #1 = $idx
/* 31013*/            OPC_MoveChild1,
/* 31014*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31017*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 31019*/            OPC_CheckType, MVT::i64,
/* 31021*/            OPC_MoveParent,
/* 31022*/            OPC_MoveParent,
/* 31023*/            OPC_MoveChild1,
/* 31024*/            OPC_CheckValueType, MVT::i16,
/* 31026*/            OPC_MoveParent,
/* 31027*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->31040
/* 31030*/              OPC_EmitConvertToTarget, 1,
/* 31032*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to32), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), i16:{ *:[Other] }) - Complexity = 10
                        // Dst: (SMOVvi16to32:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)
/* 31040*/            /*SwitchType*/ 10, MVT::i64,// ->31052
/* 31042*/              OPC_EmitConvertToTarget, 1,
/* 31044*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to64), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (sext_inreg:{ *:[i64] } (vector_extract:{ *:[i64] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), i16:{ *:[Other] }) - Complexity = 10
                        // Dst: (SMOVvi16to64:{ *:[i64] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)
/* 31052*/            0, // EndSwitchType
/* 31053*/          0, /*End of Scope*/
/* 31054*/        0, /*End of Scope*/
/* 31055*/      /*SwitchOpcode*/ 65, TARGET_VAL(ISD::ANY_EXTEND),// ->31123
/* 31058*/        OPC_MoveChild0,
/* 31059*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 31062*/        OPC_RecordChild0, // #0 = $Rn
/* 31063*/        OPC_Scope, 28, /*->31093*/ // 2 children in Scope
/* 31065*/          OPC_CheckChild0Type, MVT::v16i8,
/* 31067*/          OPC_RecordChild1, // #1 = $idx
/* 31068*/          OPC_MoveChild1,
/* 31069*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31072*/          OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 31074*/          OPC_CheckType, MVT::i64,
/* 31076*/          OPC_MoveParent,
/* 31077*/          OPC_MoveParent,
/* 31078*/          OPC_MoveParent,
/* 31079*/          OPC_MoveChild1,
/* 31080*/          OPC_CheckValueType, MVT::i8,
/* 31082*/          OPC_MoveParent,
/* 31083*/          OPC_EmitConvertToTarget, 1,
/* 31085*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi8to64), 0,
                        MVT::i64, 2/*#Ops*/, 0, 2, 
                    // Src: (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx)), i8:{ *:[Other] }) - Complexity = 13
                    // Dst: (SMOVvi8to64:{ *:[i64] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx)
/* 31093*/        /*Scope*/ 28, /*->31122*/
/* 31094*/          OPC_CheckChild0Type, MVT::v8i16,
/* 31096*/          OPC_RecordChild1, // #1 = $idx
/* 31097*/          OPC_MoveChild1,
/* 31098*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31101*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 31103*/          OPC_CheckType, MVT::i64,
/* 31105*/          OPC_MoveParent,
/* 31106*/          OPC_MoveParent,
/* 31107*/          OPC_MoveParent,
/* 31108*/          OPC_MoveChild1,
/* 31109*/          OPC_CheckValueType, MVT::i16,
/* 31111*/          OPC_MoveParent,
/* 31112*/          OPC_EmitConvertToTarget, 1,
/* 31114*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi16to64), 0,
                        MVT::i64, 2/*#Ops*/, 0, 2, 
                    // Src: (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)), i16:{ *:[Other] }) - Complexity = 13
                    // Dst: (SMOVvi16to64:{ *:[i64] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)
/* 31122*/        0, /*End of Scope*/
/* 31123*/      0, // EndSwitchOpcode
/* 31124*/    /*Scope*/ 15|128,1/*143*/, /*->31269*/
/* 31126*/      OPC_RecordChild0, // #0 = $src
/* 31127*/      OPC_MoveChild1,
/* 31128*/      OPC_Scope, 18, /*->31148*/ // 4 children in Scope
/* 31130*/        OPC_CheckValueType, MVT::i32,
/* 31132*/        OPC_MoveParent,
/* 31133*/        OPC_EmitInteger, MVT::i64, 0, 
/* 31136*/        OPC_EmitInteger, MVT::i64, 31, 
/* 31139*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                      MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$src, i32:{ *:[Other] }) - Complexity = 3
                  // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$src, 0:{ *:[i64] }, 31:{ *:[i64] })
/* 31148*/      /*Scope*/ 39, /*->31188*/
/* 31149*/        OPC_CheckValueType, MVT::i16,
/* 31151*/        OPC_MoveParent,
/* 31152*/        OPC_SwitchType /*2 cases */, 15, MVT::i64,// ->31170
/* 31155*/          OPC_EmitInteger, MVT::i64, 0, 
/* 31158*/          OPC_EmitInteger, MVT::i64, 15, 
/* 31161*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$src, i16:{ *:[Other] }) - Complexity = 3
                    // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$src, 0:{ *:[i64] }, 15:{ *:[i64] })
/* 31170*/        /*SwitchType*/ 15, MVT::i32,// ->31187
/* 31172*/          OPC_EmitInteger, MVT::i64, 0, 
/* 31175*/          OPC_EmitInteger, MVT::i64, 15, 
/* 31178*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMWri), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sext_inreg:{ *:[i32] } GPR32:{ *:[i32] }:$src, i16:{ *:[Other] }) - Complexity = 3
                    // Dst: (SBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$src, 0:{ *:[i64] }, 15:{ *:[i64] })
/* 31187*/        0, // EndSwitchType
/* 31188*/      /*Scope*/ 39, /*->31228*/
/* 31189*/        OPC_CheckValueType, MVT::i8,
/* 31191*/        OPC_MoveParent,
/* 31192*/        OPC_SwitchType /*2 cases */, 15, MVT::i64,// ->31210
/* 31195*/          OPC_EmitInteger, MVT::i64, 0, 
/* 31198*/          OPC_EmitInteger, MVT::i64, 7, 
/* 31201*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$src, i8:{ *:[Other] }) - Complexity = 3
                    // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$src, 0:{ *:[i64] }, 7:{ *:[i64] })
/* 31210*/        /*SwitchType*/ 15, MVT::i32,// ->31227
/* 31212*/          OPC_EmitInteger, MVT::i64, 0, 
/* 31215*/          OPC_EmitInteger, MVT::i64, 7, 
/* 31218*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMWri), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sext_inreg:{ *:[i32] } GPR32:{ *:[i32] }:$src, i8:{ *:[Other] }) - Complexity = 3
                    // Dst: (SBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$src, 0:{ *:[i64] }, 7:{ *:[i64] })
/* 31227*/        0, // EndSwitchType
/* 31228*/      /*Scope*/ 39, /*->31268*/
/* 31229*/        OPC_CheckValueType, MVT::i1,
/* 31231*/        OPC_MoveParent,
/* 31232*/        OPC_SwitchType /*2 cases */, 15, MVT::i64,// ->31250
/* 31235*/          OPC_EmitInteger, MVT::i64, 0, 
/* 31238*/          OPC_EmitInteger, MVT::i64, 0, 
/* 31241*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$src, i1:{ *:[Other] }) - Complexity = 3
                    // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$src, 0:{ *:[i64] }, 0:{ *:[i64] })
/* 31250*/        /*SwitchType*/ 15, MVT::i32,// ->31267
/* 31252*/          OPC_EmitInteger, MVT::i64, 0, 
/* 31255*/          OPC_EmitInteger, MVT::i64, 0, 
/* 31258*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMWri), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sext_inreg:{ *:[i32] } GPR32:{ *:[i32] }:$src, i1:{ *:[Other] }) - Complexity = 3
                    // Dst: (SBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$src, 0:{ *:[i64] }, 0:{ *:[i64] })
/* 31267*/        0, // EndSwitchType
/* 31268*/      0, /*End of Scope*/
/* 31269*/    0, /*End of Scope*/
/* 31270*/  /*SwitchOpcode*/ 36|128,20/*2596*/, TARGET_VAL(ISD::SUB),// ->33870
/* 31274*/    OPC_Scope, 64|128,1/*192*/, /*->31469*/ // 10 children in Scope
/* 31277*/      OPC_CheckChild0Integer, 0, 
/* 31279*/      OPC_MoveChild1,
/* 31280*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 31283*/      OPC_MoveChild0,
/* 31284*/      OPC_SwitchOpcode /*3 cases */, 62, TARGET_VAL(ISD::SIGN_EXTEND),// ->31350
/* 31288*/        OPC_RecordChild0, // #0 = $Rn
/* 31289*/        OPC_MoveParent,
/* 31290*/        OPC_Scope, 35, /*->31327*/ // 2 children in Scope
/* 31292*/          OPC_RecordChild1, // #1 = $C
/* 31293*/          OPC_MoveChild1,
/* 31294*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31297*/          OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 31299*/          OPC_MoveParent,
/* 31300*/          OPC_MoveParent,
/* 31301*/          OPC_CheckType, MVT::i64,
/* 31303*/          OPC_EmitConvertToTarget, 1,
/* 31305*/          OPC_EmitNodeXForm, 2, 2, // trunc_imm
/* 31308*/          OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                        MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 31315*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 31318*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMSUBLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C)) - Complexity = 23
                    // Dst: (SMSUBLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), XZR:{ *:[i64] })
/* 31327*/        /*Scope*/ 21, /*->31349*/
/* 31328*/          OPC_MoveChild1,
/* 31329*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 31332*/          OPC_RecordChild0, // #1 = $Rm
/* 31333*/          OPC_MoveParent,
/* 31334*/          OPC_MoveParent,
/* 31335*/          OPC_CheckType, MVT::i64,
/* 31337*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 31340*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMSUBLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm))) - Complexity = 22
                    // Dst: (SMSUBLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, XZR:{ *:[i64] })
/* 31349*/        0, /*End of Scope*/
/* 31350*/      /*SwitchOpcode*/ 62, TARGET_VAL(ISD::ZERO_EXTEND),// ->31415
/* 31353*/        OPC_RecordChild0, // #0 = $Rn
/* 31354*/        OPC_MoveParent,
/* 31355*/        OPC_Scope, 35, /*->31392*/ // 2 children in Scope
/* 31357*/          OPC_RecordChild1, // #1 = $C
/* 31358*/          OPC_MoveChild1,
/* 31359*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31362*/          OPC_CheckPredicate, 44, // Predicate_i64imm_32bit
/* 31364*/          OPC_MoveParent,
/* 31365*/          OPC_MoveParent,
/* 31366*/          OPC_CheckType, MVT::i64,
/* 31368*/          OPC_EmitConvertToTarget, 1,
/* 31370*/          OPC_EmitNodeXForm, 2, 2, // trunc_imm
/* 31373*/          OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                        MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 31380*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 31383*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMSUBLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_i64imm_32bit>>:$C)) - Complexity = 23
                    // Dst: (UMSUBLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), XZR:{ *:[i64] })
/* 31392*/        /*Scope*/ 21, /*->31414*/
/* 31393*/          OPC_MoveChild1,
/* 31394*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 31397*/          OPC_RecordChild0, // #1 = $Rm
/* 31398*/          OPC_MoveParent,
/* 31399*/          OPC_MoveParent,
/* 31400*/          OPC_CheckType, MVT::i64,
/* 31402*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 31405*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMSUBLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm))) - Complexity = 22
                    // Dst: (UMSUBLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, XZR:{ *:[i64] })
/* 31414*/        0, /*End of Scope*/
/* 31415*/      /*SwitchOpcode*/ 50, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->31468
/* 31418*/        OPC_RecordChild0, // #0 = $Rn
/* 31419*/        OPC_MoveChild1,
/* 31420*/        OPC_CheckValueType, MVT::i32,
/* 31422*/        OPC_MoveParent,
/* 31423*/        OPC_MoveParent,
/* 31424*/        OPC_RecordChild1, // #1 = $C
/* 31425*/        OPC_MoveChild1,
/* 31426*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31429*/        OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 31431*/        OPC_MoveParent,
/* 31432*/        OPC_MoveParent,
/* 31433*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 31436*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 31444*/        OPC_EmitConvertToTarget, 1,
/* 31446*/        OPC_EmitNodeXForm, 2, 4, // trunc_imm
/* 31449*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31456*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 31459*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMSUBLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 3, 6, 7, 
                  // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, (mul:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i32:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C)) - Complexity = 23
                  // Dst: (SMSUBLrrr:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, sub_32:{ *:[i32] }), (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), XZR:{ *:[i64] })
/* 31468*/      0, // EndSwitchOpcode
/* 31469*/    /*Scope*/ 48|128,1/*176*/, /*->31647*/
/* 31471*/      OPC_RecordChild0, // #0 = $Ra
/* 31472*/      OPC_MoveChild1,
/* 31473*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 31476*/      OPC_MoveChild0,
/* 31477*/      OPC_SwitchOpcode /*3 cases */, 56, TARGET_VAL(ISD::SIGN_EXTEND),// ->31537
/* 31481*/        OPC_RecordChild0, // #1 = $Rn
/* 31482*/        OPC_MoveParent,
/* 31483*/        OPC_Scope, 32, /*->31517*/ // 2 children in Scope
/* 31485*/          OPC_RecordChild1, // #2 = $C
/* 31486*/          OPC_MoveChild1,
/* 31487*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31490*/          OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 31492*/          OPC_MoveParent,
/* 31493*/          OPC_MoveParent,
/* 31494*/          OPC_CheckType, MVT::i64,
/* 31496*/          OPC_EmitConvertToTarget, 2,
/* 31498*/          OPC_EmitNodeXForm, 2, 3, // trunc_imm
/* 31501*/          OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                        MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/* 31508*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMSUBLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 1, 5, 0, 
                    // Src: (sub:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C)) - Complexity = 18
                    // Dst: (SMSUBLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 31517*/        /*Scope*/ 18, /*->31536*/
/* 31518*/          OPC_MoveChild1,
/* 31519*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 31522*/          OPC_RecordChild0, // #2 = $Rm
/* 31523*/          OPC_MoveParent,
/* 31524*/          OPC_MoveParent,
/* 31525*/          OPC_CheckType, MVT::i64,
/* 31527*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMSUBLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (sub:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm))) - Complexity = 17
                    // Dst: (SMSUBLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, GPR64:{ *:[i64] }:$Ra)
/* 31536*/        0, /*End of Scope*/
/* 31537*/      /*SwitchOpcode*/ 56, TARGET_VAL(ISD::ZERO_EXTEND),// ->31596
/* 31540*/        OPC_RecordChild0, // #1 = $Rn
/* 31541*/        OPC_MoveParent,
/* 31542*/        OPC_Scope, 32, /*->31576*/ // 2 children in Scope
/* 31544*/          OPC_RecordChild1, // #2 = $C
/* 31545*/          OPC_MoveChild1,
/* 31546*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31549*/          OPC_CheckPredicate, 44, // Predicate_i64imm_32bit
/* 31551*/          OPC_MoveParent,
/* 31552*/          OPC_MoveParent,
/* 31553*/          OPC_CheckType, MVT::i64,
/* 31555*/          OPC_EmitConvertToTarget, 2,
/* 31557*/          OPC_EmitNodeXForm, 2, 3, // trunc_imm
/* 31560*/          OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                        MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/* 31567*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMSUBLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 1, 5, 0, 
                    // Src: (sub:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_i64imm_32bit>>:$C)) - Complexity = 18
                    // Dst: (UMSUBLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 31576*/        /*Scope*/ 18, /*->31595*/
/* 31577*/          OPC_MoveChild1,
/* 31578*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 31581*/          OPC_RecordChild0, // #2 = $Rm
/* 31582*/          OPC_MoveParent,
/* 31583*/          OPC_MoveParent,
/* 31584*/          OPC_CheckType, MVT::i64,
/* 31586*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMSUBLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (sub:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm))) - Complexity = 17
                    // Dst: (UMSUBLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, GPR64:{ *:[i64] }:$Ra)
/* 31595*/        0, /*End of Scope*/
/* 31596*/      /*SwitchOpcode*/ 47, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->31646
/* 31599*/        OPC_RecordChild0, // #1 = $Rn
/* 31600*/        OPC_MoveChild1,
/* 31601*/        OPC_CheckValueType, MVT::i32,
/* 31603*/        OPC_MoveParent,
/* 31604*/        OPC_MoveParent,
/* 31605*/        OPC_RecordChild1, // #2 = $C
/* 31606*/        OPC_MoveChild1,
/* 31607*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31610*/        OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 31612*/        OPC_MoveParent,
/* 31613*/        OPC_MoveParent,
/* 31614*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 31617*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 31625*/        OPC_EmitConvertToTarget, 2,
/* 31627*/        OPC_EmitNodeXForm, 2, 5, // trunc_imm
/* 31630*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 31637*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMSUBLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 4, 7, 0, 
                  // Src: (sub:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i32:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C)) - Complexity = 18
                  // Dst: (SMSUBLrrr:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, sub_32:{ *:[i32] }), (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 31646*/      0, // EndSwitchOpcode
/* 31647*/    /*Scope*/ 39, /*->31687*/
/* 31648*/      OPC_CheckChild0Integer, 0, 
/* 31650*/      OPC_MoveChild1,
/* 31651*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 31654*/      OPC_RecordChild0, // #0 = $Rn
/* 31655*/      OPC_RecordChild1, // #1 = $Rm
/* 31656*/      OPC_MoveParent,
/* 31657*/      OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->31672
/* 31660*/        OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 31663*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MSUBWrrr), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sub:{ *:[i32] } 0:{ *:[i32] }, (mul:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)) - Complexity = 16
                  // Dst: (MSUBWrrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, WZR:{ *:[i32] })
/* 31672*/      /*SwitchType*/ 12, MVT::i64,// ->31686
/* 31674*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 31677*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MSUBXrrr), 0,
                      MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, (mul:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)) - Complexity = 16
                  // Dst: (MSUBXrrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, XZR:{ *:[i64] })
/* 31686*/      0, // EndSwitchType
/* 31687*/    /*Scope*/ 122, /*->31810*/
/* 31688*/      OPC_RecordChild0, // #0 = $R2
/* 31689*/      OPC_RecordChild1, // #1 = $R3
/* 31690*/      OPC_SwitchType /*2 cases */, 57, MVT::i32,// ->31750
/* 31693*/        OPC_Scope, 13, /*->31708*/ // 4 children in Scope
/* 31695*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectArithExtendedRegister:$R3 #2 #3
/* 31698*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWrx), 0,
                        MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sub:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3) - Complexity = 13
                    // Dst: (SUBSWrx:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3)
/* 31708*/        /*Scope*/ 12, /*->31721*/
/* 31709*/          OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectNegArithImmed:$imm #2 #3
/* 31712*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDWri), 0,
                        MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sub:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm) - Complexity = 13
                    // Dst: (ADDWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 31721*/        /*Scope*/ 13, /*->31735*/
/* 31722*/          OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectArithImmed:$imm #2 #3
/* 31725*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWri), 0,
                        MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sub:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm) - Complexity = 12
                    // Dst: (SUBSWri:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 31735*/        /*Scope*/ 13, /*->31749*/
/* 31736*/          OPC_CheckComplexPat, /*CP*/33, /*#*/1, // SelectArithShiftedRegister:$Rm #2 #3
/* 31739*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWrs), 0,
                        MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sub:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 12
                    // Dst: (SUBSWrs:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm)
/* 31749*/        0, /*End of Scope*/
/* 31750*/      /*SwitchType*/ 57, MVT::i64,// ->31809
/* 31752*/        OPC_Scope, 13, /*->31767*/ // 4 children in Scope
/* 31754*/          OPC_CheckComplexPat, /*CP*/34, /*#*/1, // SelectArithExtendedRegister:$R3 #2 #3
/* 31757*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXrx), 0,
                        MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sub:{ *:[i64] } GPR64sp:{ *:[i64] }:$R2, anonymous_1082:{ *:[i64] }:$R3) - Complexity = 13
                    // Dst: (SUBSXrx:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$R2, anonymous_1082:{ *:[i64] }:$R3)
/* 31767*/        /*Scope*/ 12, /*->31780*/
/* 31768*/          OPC_CheckComplexPat, /*CP*/35, /*#*/1, // SelectNegArithImmed:$imm #2 #3
/* 31771*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDXri), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sub:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm) - Complexity = 13
                    // Dst: (ADDXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 31780*/        /*Scope*/ 13, /*->31794*/
/* 31781*/          OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectArithImmed:$imm #2 #3
/* 31784*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXri), 0,
                        MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sub:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm) - Complexity = 12
                    // Dst: (SUBSXri:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 31794*/        /*Scope*/ 13, /*->31808*/
/* 31795*/          OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectArithShiftedRegister:$Rm #2 #3
/* 31798*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXrs), 0,
                        MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (sub:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 12
                    // Dst: (SUBSXrs:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm)
/* 31808*/        0, /*End of Scope*/
/* 31809*/      0, // EndSwitchType
/* 31810*/    /*Scope*/ 19, /*->31830*/
/* 31811*/      OPC_MoveChild0,
/* 31812*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 31815*/      OPC_CheckPredicate, 45, // Predicate_immAllZerosV
/* 31817*/      OPC_MoveParent,
/* 31818*/      OPC_RecordChild1, // #0 = $Rn
/* 31819*/      OPC_CheckType, MVT::i64,
/* 31821*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 31823*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv1i64), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (sub:{ *:[i64] } (build_vector:{ *:[i64] })<<P:Predicate_immAllZerosV>>, FPR64:{ *:[i64] }:$Rn) - Complexity = 7
                // Dst: (NEGv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn)
/* 31830*/    /*Scope*/ 59|128,3/*443*/, /*->32275*/
/* 31832*/      OPC_RecordChild0, // #0 = $Rn
/* 31833*/      OPC_Scope, 25, /*->31860*/ // 2 children in Scope
/* 31835*/        OPC_RecordChild1, // #1 = $Rm
/* 31836*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->31848
/* 31839*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWrr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (SUBSWrr:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 31848*/        /*SwitchType*/ 9, MVT::i64,// ->31859
/* 31850*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXrr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (SUBSXrr:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 31859*/        0, // EndSwitchType
/* 31860*/      /*Scope*/ 28|128,3/*412*/, /*->32274*/
/* 31862*/        OPC_MoveChild1,
/* 31863*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 31866*/        OPC_Scope, 73|128,1/*201*/, /*->32070*/ // 2 children in Scope
/* 31869*/          OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 31872*/          OPC_MoveChild1,
/* 31873*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 31876*/          OPC_RecordChild0, // #1 = $Rn
/* 31877*/          OPC_SwitchType /*3 cases */, 77, MVT::v4i16,// ->31957
/* 31880*/            OPC_CheckChild1Integer, 4, 
/* 31882*/            OPC_CheckChild1Type, MVT::i64,
/* 31884*/            OPC_MoveParent,
/* 31885*/            OPC_MoveChild2,
/* 31886*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 31889*/            OPC_Scope, 42, /*->31933*/ // 2 children in Scope
/* 31891*/              OPC_MoveChild0,
/* 31892*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 31895*/              OPC_RecordChild0, // #2 = $Rm
/* 31896*/              OPC_CheckChild0Type, MVT::v8i16,
/* 31898*/              OPC_RecordChild1, // #3 = $idx
/* 31899*/              OPC_MoveChild1,
/* 31900*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31903*/              OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 31905*/              OPC_CheckType, MVT::i64,
/* 31907*/              OPC_MoveParent,
/* 31908*/              OPC_MoveParent,
/* 31909*/              OPC_CheckChild1Integer, 4, 
/* 31911*/              OPC_CheckChild1Type, MVT::i64,
/* 31913*/              OPC_CheckType, MVT::v4i16,
/* 31915*/              OPC_MoveParent,
/* 31916*/              OPC_MoveParent,
/* 31917*/              OPC_CheckType, MVT::v4i32,
/* 31919*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 31921*/              OPC_EmitConvertToTarget, 3,
/* 31923*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv8i16_indexed), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] }))) - Complexity = 34
                        // Dst: (SMLSLv8i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 31933*/            /*Scope*/ 22, /*->31956*/
/* 31934*/              OPC_RecordChild0, // #2 = $Rm
/* 31935*/              OPC_CheckChild1Integer, 4, 
/* 31937*/              OPC_CheckChild1Type, MVT::i64,
/* 31939*/              OPC_CheckType, MVT::v4i16,
/* 31941*/              OPC_MoveParent,
/* 31942*/              OPC_MoveParent,
/* 31943*/              OPC_CheckType, MVT::v4i32,
/* 31945*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 31947*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv8i16_v4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 27
                        // Dst: (SMLSLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 31956*/            0, /*End of Scope*/
/* 31957*/          /*SwitchType*/ 77, MVT::v2i32,// ->32036
/* 31959*/            OPC_CheckChild1Integer, 2, 
/* 31961*/            OPC_CheckChild1Type, MVT::i64,
/* 31963*/            OPC_MoveParent,
/* 31964*/            OPC_MoveChild2,
/* 31965*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 31968*/            OPC_Scope, 42, /*->32012*/ // 2 children in Scope
/* 31970*/              OPC_MoveChild0,
/* 31971*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 31974*/              OPC_RecordChild0, // #2 = $Rm
/* 31975*/              OPC_CheckChild0Type, MVT::v4i32,
/* 31977*/              OPC_RecordChild1, // #3 = $idx
/* 31978*/              OPC_MoveChild1,
/* 31979*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31982*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 31984*/              OPC_CheckType, MVT::i64,
/* 31986*/              OPC_MoveParent,
/* 31987*/              OPC_MoveParent,
/* 31988*/              OPC_CheckChild1Integer, 2, 
/* 31990*/              OPC_CheckChild1Type, MVT::i64,
/* 31992*/              OPC_CheckType, MVT::v2i32,
/* 31994*/              OPC_MoveParent,
/* 31995*/              OPC_MoveParent,
/* 31996*/              OPC_CheckType, MVT::v2i64,
/* 31998*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32000*/              OPC_EmitConvertToTarget, 3,
/* 32002*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv4i32_indexed), 0,
                            MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] }))) - Complexity = 34
                        // Dst: (SMLSLv4i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 32012*/            /*Scope*/ 22, /*->32035*/
/* 32013*/              OPC_RecordChild0, // #2 = $Rm
/* 32014*/              OPC_CheckChild1Integer, 2, 
/* 32016*/              OPC_CheckChild1Type, MVT::i64,
/* 32018*/              OPC_CheckType, MVT::v2i32,
/* 32020*/              OPC_MoveParent,
/* 32021*/              OPC_MoveParent,
/* 32022*/              OPC_CheckType, MVT::v2i64,
/* 32024*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32026*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv4i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 27
                        // Dst: (SMLSLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 32035*/            0, /*End of Scope*/
/* 32036*/          /*SwitchType*/ 31, MVT::v8i8,// ->32069
/* 32038*/            OPC_CheckChild1Integer, 8, 
/* 32040*/            OPC_CheckChild1Type, MVT::i64,
/* 32042*/            OPC_MoveParent,
/* 32043*/            OPC_MoveChild2,
/* 32044*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32047*/            OPC_RecordChild0, // #2 = $Rm
/* 32048*/            OPC_CheckChild1Integer, 8, 
/* 32050*/            OPC_CheckChild1Type, MVT::i64,
/* 32052*/            OPC_CheckType, MVT::v8i8,
/* 32054*/            OPC_MoveParent,
/* 32055*/            OPC_MoveParent,
/* 32056*/            OPC_CheckType, MVT::v8i16,
/* 32058*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32060*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv16i8_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 27
                      // Dst: (SMLSLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 32069*/          0, // EndSwitchType
/* 32070*/        /*Scope*/ 73|128,1/*201*/, /*->32273*/
/* 32072*/          OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 32075*/          OPC_MoveChild1,
/* 32076*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32079*/          OPC_RecordChild0, // #1 = $Rn
/* 32080*/          OPC_SwitchType /*3 cases */, 77, MVT::v4i16,// ->32160
/* 32083*/            OPC_CheckChild1Integer, 4, 
/* 32085*/            OPC_CheckChild1Type, MVT::i64,
/* 32087*/            OPC_MoveParent,
/* 32088*/            OPC_MoveChild2,
/* 32089*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32092*/            OPC_Scope, 42, /*->32136*/ // 2 children in Scope
/* 32094*/              OPC_MoveChild0,
/* 32095*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 32098*/              OPC_RecordChild0, // #2 = $Rm
/* 32099*/              OPC_CheckChild0Type, MVT::v8i16,
/* 32101*/              OPC_RecordChild1, // #3 = $idx
/* 32102*/              OPC_MoveChild1,
/* 32103*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 32106*/              OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 32108*/              OPC_CheckType, MVT::i64,
/* 32110*/              OPC_MoveParent,
/* 32111*/              OPC_MoveParent,
/* 32112*/              OPC_CheckChild1Integer, 4, 
/* 32114*/              OPC_CheckChild1Type, MVT::i64,
/* 32116*/              OPC_CheckType, MVT::v4i16,
/* 32118*/              OPC_MoveParent,
/* 32119*/              OPC_MoveParent,
/* 32120*/              OPC_CheckType, MVT::v4i32,
/* 32122*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32124*/              OPC_EmitConvertToTarget, 3,
/* 32126*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv8i16_indexed), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] }))) - Complexity = 34
                        // Dst: (UMLSLv8i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 32136*/            /*Scope*/ 22, /*->32159*/
/* 32137*/              OPC_RecordChild0, // #2 = $Rm
/* 32138*/              OPC_CheckChild1Integer, 4, 
/* 32140*/              OPC_CheckChild1Type, MVT::i64,
/* 32142*/              OPC_CheckType, MVT::v4i16,
/* 32144*/              OPC_MoveParent,
/* 32145*/              OPC_MoveParent,
/* 32146*/              OPC_CheckType, MVT::v4i32,
/* 32148*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32150*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv8i16_v4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 27
                        // Dst: (UMLSLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 32159*/            0, /*End of Scope*/
/* 32160*/          /*SwitchType*/ 77, MVT::v2i32,// ->32239
/* 32162*/            OPC_CheckChild1Integer, 2, 
/* 32164*/            OPC_CheckChild1Type, MVT::i64,
/* 32166*/            OPC_MoveParent,
/* 32167*/            OPC_MoveChild2,
/* 32168*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32171*/            OPC_Scope, 42, /*->32215*/ // 2 children in Scope
/* 32173*/              OPC_MoveChild0,
/* 32174*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 32177*/              OPC_RecordChild0, // #2 = $Rm
/* 32178*/              OPC_CheckChild0Type, MVT::v4i32,
/* 32180*/              OPC_RecordChild1, // #3 = $idx
/* 32181*/              OPC_MoveChild1,
/* 32182*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 32185*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 32187*/              OPC_CheckType, MVT::i64,
/* 32189*/              OPC_MoveParent,
/* 32190*/              OPC_MoveParent,
/* 32191*/              OPC_CheckChild1Integer, 2, 
/* 32193*/              OPC_CheckChild1Type, MVT::i64,
/* 32195*/              OPC_CheckType, MVT::v2i32,
/* 32197*/              OPC_MoveParent,
/* 32198*/              OPC_MoveParent,
/* 32199*/              OPC_CheckType, MVT::v2i64,
/* 32201*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32203*/              OPC_EmitConvertToTarget, 3,
/* 32205*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv4i32_indexed), 0,
                            MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] }))) - Complexity = 34
                        // Dst: (UMLSLv4i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 32215*/            /*Scope*/ 22, /*->32238*/
/* 32216*/              OPC_RecordChild0, // #2 = $Rm
/* 32217*/              OPC_CheckChild1Integer, 2, 
/* 32219*/              OPC_CheckChild1Type, MVT::i64,
/* 32221*/              OPC_CheckType, MVT::v2i32,
/* 32223*/              OPC_MoveParent,
/* 32224*/              OPC_MoveParent,
/* 32225*/              OPC_CheckType, MVT::v2i64,
/* 32227*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32229*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv4i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 27
                        // Dst: (UMLSLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 32238*/            0, /*End of Scope*/
/* 32239*/          /*SwitchType*/ 31, MVT::v8i8,// ->32272
/* 32241*/            OPC_CheckChild1Integer, 8, 
/* 32243*/            OPC_CheckChild1Type, MVT::i64,
/* 32245*/            OPC_MoveParent,
/* 32246*/            OPC_MoveChild2,
/* 32247*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32250*/            OPC_RecordChild0, // #2 = $Rm
/* 32251*/            OPC_CheckChild1Integer, 8, 
/* 32253*/            OPC_CheckChild1Type, MVT::i64,
/* 32255*/            OPC_CheckType, MVT::v8i8,
/* 32257*/            OPC_MoveParent,
/* 32258*/            OPC_MoveParent,
/* 32259*/            OPC_CheckType, MVT::v8i16,
/* 32261*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32263*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv16i8_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 27
                      // Dst: (UMLSLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 32272*/          0, // EndSwitchType
/* 32273*/        0, /*End of Scope*/
/* 32274*/      0, /*End of Scope*/
/* 32275*/    /*Scope*/ 117|128,1/*245*/, /*->32522*/
/* 32277*/      OPC_MoveChild0,
/* 32278*/      OPC_SwitchOpcode /*2 cases */, 118, TARGET_VAL(ISD::SIGN_EXTEND),// ->32400
/* 32282*/        OPC_MoveChild0,
/* 32283*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32286*/        OPC_RecordChild0, // #0 = $Rn
/* 32287*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i8,// ->32325
/* 32290*/          OPC_CheckChild1Integer, 8, 
/* 32292*/          OPC_CheckChild1Type, MVT::i64,
/* 32294*/          OPC_MoveParent,
/* 32295*/          OPC_MoveParent,
/* 32296*/          OPC_MoveChild1,
/* 32297*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 32300*/          OPC_MoveChild0,
/* 32301*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32304*/          OPC_RecordChild0, // #1 = $Rm
/* 32305*/          OPC_CheckChild1Integer, 8, 
/* 32307*/          OPC_CheckChild1Type, MVT::i64,
/* 32309*/          OPC_CheckType, MVT::v8i8,
/* 32311*/          OPC_MoveParent,
/* 32312*/          OPC_MoveParent,
/* 32313*/          OPC_CheckType, MVT::v8i16,
/* 32315*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32317*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBLv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i16] } (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 25
                    // Dst: (SSUBLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 32325*/        /*SwitchType*/ 35, MVT::v4i16,// ->32362
/* 32327*/          OPC_CheckChild1Integer, 4, 
/* 32329*/          OPC_CheckChild1Type, MVT::i64,
/* 32331*/          OPC_MoveParent,
/* 32332*/          OPC_MoveParent,
/* 32333*/          OPC_MoveChild1,
/* 32334*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 32337*/          OPC_MoveChild0,
/* 32338*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32341*/          OPC_RecordChild0, // #1 = $Rm
/* 32342*/          OPC_CheckChild1Integer, 4, 
/* 32344*/          OPC_CheckChild1Type, MVT::i64,
/* 32346*/          OPC_CheckType, MVT::v4i16,
/* 32348*/          OPC_MoveParent,
/* 32349*/          OPC_MoveParent,
/* 32350*/          OPC_CheckType, MVT::v4i32,
/* 32352*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32354*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBLv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v4i32] } (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 25
                    // Dst: (SSUBLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 32362*/        /*SwitchType*/ 35, MVT::v2i32,// ->32399
/* 32364*/          OPC_CheckChild1Integer, 2, 
/* 32366*/          OPC_CheckChild1Type, MVT::i64,
/* 32368*/          OPC_MoveParent,
/* 32369*/          OPC_MoveParent,
/* 32370*/          OPC_MoveChild1,
/* 32371*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 32374*/          OPC_MoveChild0,
/* 32375*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32378*/          OPC_RecordChild0, // #1 = $Rm
/* 32379*/          OPC_CheckChild1Integer, 2, 
/* 32381*/          OPC_CheckChild1Type, MVT::i64,
/* 32383*/          OPC_CheckType, MVT::v2i32,
/* 32385*/          OPC_MoveParent,
/* 32386*/          OPC_MoveParent,
/* 32387*/          OPC_CheckType, MVT::v2i64,
/* 32389*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32391*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBLv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v2i64] } (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 25
                    // Dst: (SSUBLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 32399*/        0, // EndSwitchType
/* 32400*/      /*SwitchOpcode*/ 118, TARGET_VAL(ISD::ZERO_EXTEND),// ->32521
/* 32403*/        OPC_MoveChild0,
/* 32404*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32407*/        OPC_RecordChild0, // #0 = $Rn
/* 32408*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i8,// ->32446
/* 32411*/          OPC_CheckChild1Integer, 8, 
/* 32413*/          OPC_CheckChild1Type, MVT::i64,
/* 32415*/          OPC_MoveParent,
/* 32416*/          OPC_MoveParent,
/* 32417*/          OPC_MoveChild1,
/* 32418*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 32421*/          OPC_MoveChild0,
/* 32422*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32425*/          OPC_RecordChild0, // #1 = $Rm
/* 32426*/          OPC_CheckChild1Integer, 8, 
/* 32428*/          OPC_CheckChild1Type, MVT::i64,
/* 32430*/          OPC_CheckType, MVT::v8i8,
/* 32432*/          OPC_MoveParent,
/* 32433*/          OPC_MoveParent,
/* 32434*/          OPC_CheckType, MVT::v8i16,
/* 32436*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32438*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBLv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 25
                    // Dst: (USUBLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 32446*/        /*SwitchType*/ 35, MVT::v4i16,// ->32483
/* 32448*/          OPC_CheckChild1Integer, 4, 
/* 32450*/          OPC_CheckChild1Type, MVT::i64,
/* 32452*/          OPC_MoveParent,
/* 32453*/          OPC_MoveParent,
/* 32454*/          OPC_MoveChild1,
/* 32455*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 32458*/          OPC_MoveChild0,
/* 32459*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32462*/          OPC_RecordChild0, // #1 = $Rm
/* 32463*/          OPC_CheckChild1Integer, 4, 
/* 32465*/          OPC_CheckChild1Type, MVT::i64,
/* 32467*/          OPC_CheckType, MVT::v4i16,
/* 32469*/          OPC_MoveParent,
/* 32470*/          OPC_MoveParent,
/* 32471*/          OPC_CheckType, MVT::v4i32,
/* 32473*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32475*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBLv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 25
                    // Dst: (USUBLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 32483*/        /*SwitchType*/ 35, MVT::v2i32,// ->32520
/* 32485*/          OPC_CheckChild1Integer, 2, 
/* 32487*/          OPC_CheckChild1Type, MVT::i64,
/* 32489*/          OPC_MoveParent,
/* 32490*/          OPC_MoveParent,
/* 32491*/          OPC_MoveChild1,
/* 32492*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 32495*/          OPC_MoveChild0,
/* 32496*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32499*/          OPC_RecordChild0, // #1 = $Rm
/* 32500*/          OPC_CheckChild1Integer, 2, 
/* 32502*/          OPC_CheckChild1Type, MVT::i64,
/* 32504*/          OPC_CheckType, MVT::v2i32,
/* 32506*/          OPC_MoveParent,
/* 32507*/          OPC_MoveParent,
/* 32508*/          OPC_CheckType, MVT::v2i64,
/* 32510*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32512*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBLv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 25
                    // Dst: (USUBLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 32520*/        0, // EndSwitchType
/* 32521*/      0, // EndSwitchOpcode
/* 32522*/    /*Scope*/ 35|128,5/*675*/, /*->33199*/
/* 32524*/      OPC_RecordChild0, // #0 = $Rd
/* 32525*/      OPC_MoveChild1,
/* 32526*/      OPC_SwitchOpcode /*4 cases */, 46|128,2/*302*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->32833
/* 32531*/        OPC_Scope, 20|128,1/*148*/, /*->32682*/ // 2 children in Scope
/* 32534*/          OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 32537*/          OPC_RecordChild1, // #1 = $Rn
/* 32538*/          OPC_Scope, 60, /*->32600*/ // 3 children in Scope
/* 32540*/            OPC_CheckChild1Type, MVT::v4i16,
/* 32542*/            OPC_Scope, 37, /*->32581*/ // 2 children in Scope
/* 32544*/              OPC_MoveChild2,
/* 32545*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 32548*/              OPC_RecordChild0, // #2 = $Rm
/* 32549*/              OPC_CheckChild0Type, MVT::v8i16,
/* 32551*/              OPC_RecordChild1, // #3 = $idx
/* 32552*/              OPC_MoveChild1,
/* 32553*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 32556*/              OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 32558*/              OPC_CheckType, MVT::i64,
/* 32560*/              OPC_MoveParent,
/* 32561*/              OPC_CheckType, MVT::v4i16,
/* 32563*/              OPC_MoveParent,
/* 32564*/              OPC_MoveParent,
/* 32565*/              OPC_CheckType, MVT::v4i32,
/* 32567*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32569*/              OPC_EmitConvertToTarget, 3,
/* 32571*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv4i16_indexed), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 18
                        // Dst: (SMLSLv4i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 32581*/            /*Scope*/ 17, /*->32599*/
/* 32582*/              OPC_RecordChild2, // #2 = $Rm
/* 32583*/              OPC_CheckChild2Type, MVT::v4i16,
/* 32585*/              OPC_MoveParent,
/* 32586*/              OPC_CheckType, MVT::v4i32,
/* 32588*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32590*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv4i16_v4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 11
                        // Dst: (SMLSLv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 32599*/            0, /*End of Scope*/
/* 32600*/          /*Scope*/ 60, /*->32661*/
/* 32601*/            OPC_CheckChild1Type, MVT::v2i32,
/* 32603*/            OPC_Scope, 37, /*->32642*/ // 2 children in Scope
/* 32605*/              OPC_MoveChild2,
/* 32606*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 32609*/              OPC_RecordChild0, // #2 = $Rm
/* 32610*/              OPC_CheckChild0Type, MVT::v4i32,
/* 32612*/              OPC_RecordChild1, // #3 = $idx
/* 32613*/              OPC_MoveChild1,
/* 32614*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 32617*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 32619*/              OPC_CheckType, MVT::i64,
/* 32621*/              OPC_MoveParent,
/* 32622*/              OPC_CheckType, MVT::v2i32,
/* 32624*/              OPC_MoveParent,
/* 32625*/              OPC_MoveParent,
/* 32626*/              OPC_CheckType, MVT::v2i64,
/* 32628*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32630*/              OPC_EmitConvertToTarget, 3,
/* 32632*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv2i32_indexed), 0,
                            MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 18
                        // Dst: (SMLSLv2i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 32642*/            /*Scope*/ 17, /*->32660*/
/* 32643*/              OPC_RecordChild2, // #2 = $Rm
/* 32644*/              OPC_CheckChild2Type, MVT::v2i32,
/* 32646*/              OPC_MoveParent,
/* 32647*/              OPC_CheckType, MVT::v2i64,
/* 32649*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32651*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv2i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 11
                        // Dst: (SMLSLv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 32660*/            0, /*End of Scope*/
/* 32661*/          /*Scope*/ 19, /*->32681*/
/* 32662*/            OPC_CheckChild1Type, MVT::v8i8,
/* 32664*/            OPC_RecordChild2, // #2 = $Rm
/* 32665*/            OPC_CheckChild2Type, MVT::v8i8,
/* 32667*/            OPC_MoveParent,
/* 32668*/            OPC_CheckType, MVT::v8i16,
/* 32670*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32672*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv8i8_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 287:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 11
                      // Dst: (SMLSLv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 32681*/          0, /*End of Scope*/
/* 32682*/        /*Scope*/ 20|128,1/*148*/, /*->32832*/
/* 32684*/          OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 32687*/          OPC_RecordChild1, // #1 = $Rn
/* 32688*/          OPC_Scope, 60, /*->32750*/ // 3 children in Scope
/* 32690*/            OPC_CheckChild1Type, MVT::v4i16,
/* 32692*/            OPC_Scope, 37, /*->32731*/ // 2 children in Scope
/* 32694*/              OPC_MoveChild2,
/* 32695*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 32698*/              OPC_RecordChild0, // #2 = $Rm
/* 32699*/              OPC_CheckChild0Type, MVT::v8i16,
/* 32701*/              OPC_RecordChild1, // #3 = $idx
/* 32702*/              OPC_MoveChild1,
/* 32703*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 32706*/              OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 32708*/              OPC_CheckType, MVT::i64,
/* 32710*/              OPC_MoveParent,
/* 32711*/              OPC_CheckType, MVT::v4i16,
/* 32713*/              OPC_MoveParent,
/* 32714*/              OPC_MoveParent,
/* 32715*/              OPC_CheckType, MVT::v4i32,
/* 32717*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32719*/              OPC_EmitConvertToTarget, 3,
/* 32721*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv4i16_indexed), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 18
                        // Dst: (UMLSLv4i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 32731*/            /*Scope*/ 17, /*->32749*/
/* 32732*/              OPC_RecordChild2, // #2 = $Rm
/* 32733*/              OPC_CheckChild2Type, MVT::v4i16,
/* 32735*/              OPC_MoveParent,
/* 32736*/              OPC_CheckType, MVT::v4i32,
/* 32738*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32740*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv4i16_v4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 11
                        // Dst: (UMLSLv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 32749*/            0, /*End of Scope*/
/* 32750*/          /*Scope*/ 60, /*->32811*/
/* 32751*/            OPC_CheckChild1Type, MVT::v2i32,
/* 32753*/            OPC_Scope, 37, /*->32792*/ // 2 children in Scope
/* 32755*/              OPC_MoveChild2,
/* 32756*/              OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 32759*/              OPC_RecordChild0, // #2 = $Rm
/* 32760*/              OPC_CheckChild0Type, MVT::v4i32,
/* 32762*/              OPC_RecordChild1, // #3 = $idx
/* 32763*/              OPC_MoveChild1,
/* 32764*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 32767*/              OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 32769*/              OPC_CheckType, MVT::i64,
/* 32771*/              OPC_MoveParent,
/* 32772*/              OPC_CheckType, MVT::v2i32,
/* 32774*/              OPC_MoveParent,
/* 32775*/              OPC_MoveParent,
/* 32776*/              OPC_CheckType, MVT::v2i64,
/* 32778*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32780*/              OPC_EmitConvertToTarget, 3,
/* 32782*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv2i32_indexed), 0,
                            MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 18
                        // Dst: (UMLSLv2i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 32792*/            /*Scope*/ 17, /*->32810*/
/* 32793*/              OPC_RecordChild2, // #2 = $Rm
/* 32794*/              OPC_CheckChild2Type, MVT::v2i32,
/* 32796*/              OPC_MoveParent,
/* 32797*/              OPC_CheckType, MVT::v2i64,
/* 32799*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32801*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv2i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 11
                        // Dst: (UMLSLv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 32810*/            0, /*End of Scope*/
/* 32811*/          /*Scope*/ 19, /*->32831*/
/* 32812*/            OPC_CheckChild1Type, MVT::v8i8,
/* 32814*/            OPC_RecordChild2, // #2 = $Rm
/* 32815*/            OPC_CheckChild2Type, MVT::v8i8,
/* 32817*/            OPC_MoveParent,
/* 32818*/            OPC_CheckType, MVT::v8i16,
/* 32820*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32822*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv8i8_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 341:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 11
                      // Dst: (UMLSLv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 32831*/          0, /*End of Scope*/
/* 32832*/        0, /*End of Scope*/
/* 32833*/      /*SwitchOpcode*/ 67, TARGET_VAL(ISD::SIGN_EXTEND),// ->32903
/* 32836*/        OPC_MoveChild0,
/* 32837*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32840*/        OPC_RecordChild0, // #1 = $Rm
/* 32841*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->32862
/* 32844*/          OPC_CheckChild1Integer, 8, 
/* 32846*/          OPC_CheckChild1Type, MVT::i64,
/* 32848*/          OPC_MoveParent,
/* 32849*/          OPC_MoveParent,
/* 32850*/          OPC_CheckType, MVT::v8i16,
/* 32852*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32854*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBWv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 14
                    // Dst: (SSUBWv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 32862*/        /*SwitchType*/ 18, MVT::v4i16,// ->32882
/* 32864*/          OPC_CheckChild1Integer, 4, 
/* 32866*/          OPC_CheckChild1Type, MVT::i64,
/* 32868*/          OPC_MoveParent,
/* 32869*/          OPC_MoveParent,
/* 32870*/          OPC_CheckType, MVT::v4i32,
/* 32872*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32874*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBWv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 14
                    // Dst: (SSUBWv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 32882*/        /*SwitchType*/ 18, MVT::v2i32,// ->32902
/* 32884*/          OPC_CheckChild1Integer, 2, 
/* 32886*/          OPC_CheckChild1Type, MVT::i64,
/* 32888*/          OPC_MoveParent,
/* 32889*/          OPC_MoveParent,
/* 32890*/          OPC_CheckType, MVT::v2i64,
/* 32892*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32894*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBWv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 14
                    // Dst: (SSUBWv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 32902*/        0, // EndSwitchType
/* 32903*/      /*SwitchOpcode*/ 67, TARGET_VAL(ISD::ZERO_EXTEND),// ->32973
/* 32906*/        OPC_MoveChild0,
/* 32907*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 32910*/        OPC_RecordChild0, // #1 = $Rm
/* 32911*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->32932
/* 32914*/          OPC_CheckChild1Integer, 8, 
/* 32916*/          OPC_CheckChild1Type, MVT::i64,
/* 32918*/          OPC_MoveParent,
/* 32919*/          OPC_MoveParent,
/* 32920*/          OPC_CheckType, MVT::v8i16,
/* 32922*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32924*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBWv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 14
                    // Dst: (USUBWv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 32932*/        /*SwitchType*/ 18, MVT::v4i16,// ->32952
/* 32934*/          OPC_CheckChild1Integer, 4, 
/* 32936*/          OPC_CheckChild1Type, MVT::i64,
/* 32938*/          OPC_MoveParent,
/* 32939*/          OPC_MoveParent,
/* 32940*/          OPC_CheckType, MVT::v4i32,
/* 32942*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32944*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBWv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 14
                    // Dst: (USUBWv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 32952*/        /*SwitchType*/ 18, MVT::v2i32,// ->32972
/* 32954*/          OPC_CheckChild1Integer, 2, 
/* 32956*/          OPC_CheckChild1Type, MVT::i64,
/* 32958*/          OPC_MoveParent,
/* 32959*/          OPC_MoveParent,
/* 32960*/          OPC_CheckType, MVT::v2i64,
/* 32962*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 32964*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBWv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 14
                    // Dst: (USUBWv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 32972*/        0, // EndSwitchType
/* 32973*/      /*SwitchOpcode*/ 93|128,1/*221*/, TARGET_VAL(ISD::MUL),// ->33198
/* 32977*/        OPC_Scope, 108, /*->33087*/ // 2 children in Scope
/* 32979*/          OPC_RecordChild0, // #1 = $Rn
/* 32980*/          OPC_MoveChild1,
/* 32981*/          OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(AArch64ISD::DUPLANE16),// ->33034
/* 32985*/            OPC_RecordChild0, // #2 = $Rm
/* 32986*/            OPC_CheckChild0Type, MVT::v8i16,
/* 32988*/            OPC_RecordChild1, // #3 = $idx
/* 32989*/            OPC_MoveChild1,
/* 32990*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 32993*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 32995*/            OPC_CheckType, MVT::i64,
/* 32997*/            OPC_MoveParent,
/* 32998*/            OPC_MoveParent,
/* 32999*/            OPC_MoveParent,
/* 33000*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i16,// ->33017
/* 33003*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33005*/              OPC_EmitConvertToTarget, 3,
/* 33007*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv4i16_indexed), 0,
                            MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (mul:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 13
                        // Dst: (MLSv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 33017*/            /*SwitchType*/ 14, MVT::v8i16,// ->33033
/* 33019*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33021*/              OPC_EmitConvertToTarget, 3,
/* 33023*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv8i16_indexed), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (mul:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 13
                        // Dst: (MLSv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 33033*/            0, // EndSwitchType
/* 33034*/          /*SwitchOpcode*/ 49, TARGET_VAL(AArch64ISD::DUPLANE32),// ->33086
/* 33037*/            OPC_RecordChild0, // #2 = $Rm
/* 33038*/            OPC_CheckChild0Type, MVT::v4i32,
/* 33040*/            OPC_RecordChild1, // #3 = $idx
/* 33041*/            OPC_MoveChild1,
/* 33042*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 33045*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 33047*/            OPC_CheckType, MVT::i64,
/* 33049*/            OPC_MoveParent,
/* 33050*/            OPC_MoveParent,
/* 33051*/            OPC_MoveParent,
/* 33052*/            OPC_SwitchType /*2 cases */, 14, MVT::v2i32,// ->33069
/* 33055*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33057*/              OPC_EmitConvertToTarget, 3,
/* 33059*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv2i32_indexed), 0,
                            MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (mul:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 13
                        // Dst: (MLSv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 33069*/            /*SwitchType*/ 14, MVT::v4i32,// ->33085
/* 33071*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33073*/              OPC_EmitConvertToTarget, 3,
/* 33075*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv4i32_indexed), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (mul:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 13
                        // Dst: (MLSv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 33085*/            0, // EndSwitchType
/* 33086*/          0, // EndSwitchOpcode
/* 33087*/        /*Scope*/ 109, /*->33197*/
/* 33088*/          OPC_MoveChild0,
/* 33089*/          OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(AArch64ISD::DUPLANE16),// ->33143
/* 33093*/            OPC_RecordChild0, // #1 = $Rm
/* 33094*/            OPC_CheckChild0Type, MVT::v8i16,
/* 33096*/            OPC_RecordChild1, // #2 = $idx
/* 33097*/            OPC_MoveChild1,
/* 33098*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 33101*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 33103*/            OPC_CheckType, MVT::i64,
/* 33105*/            OPC_MoveParent,
/* 33106*/            OPC_MoveParent,
/* 33107*/            OPC_RecordChild1, // #3 = $Rn
/* 33108*/            OPC_MoveParent,
/* 33109*/            OPC_SwitchType /*2 cases */, 14, MVT::v4i16,// ->33126
/* 33112*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33114*/              OPC_EmitConvertToTarget, 2,
/* 33116*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv4i16_indexed), 0,
                            MVT::v4i16, 4/*#Ops*/, 0, 3, 1, 4, 
                        // Src: (sub:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (mul:{ *:[v4i16] } (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V64:{ *:[v4i16] }:$Rn)) - Complexity = 13
                        // Dst: (MLSv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 33126*/            /*SwitchType*/ 14, MVT::v8i16,// ->33142
/* 33128*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33130*/              OPC_EmitConvertToTarget, 2,
/* 33132*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv8i16_indexed), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 3, 1, 4, 
                        // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (mul:{ *:[v8i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V128:{ *:[v8i16] }:$Rn)) - Complexity = 13
                        // Dst: (MLSv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 33142*/            0, // EndSwitchType
/* 33143*/          /*SwitchOpcode*/ 50, TARGET_VAL(AArch64ISD::DUPLANE32),// ->33196
/* 33146*/            OPC_RecordChild0, // #1 = $Rm
/* 33147*/            OPC_CheckChild0Type, MVT::v4i32,
/* 33149*/            OPC_RecordChild1, // #2 = $idx
/* 33150*/            OPC_MoveChild1,
/* 33151*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 33154*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 33156*/            OPC_CheckType, MVT::i64,
/* 33158*/            OPC_MoveParent,
/* 33159*/            OPC_MoveParent,
/* 33160*/            OPC_RecordChild1, // #3 = $Rn
/* 33161*/            OPC_MoveParent,
/* 33162*/            OPC_SwitchType /*2 cases */, 14, MVT::v2i32,// ->33179
/* 33165*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33167*/              OPC_EmitConvertToTarget, 2,
/* 33169*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv2i32_indexed), 0,
                            MVT::v2i32, 4/*#Ops*/, 0, 3, 1, 4, 
                        // Src: (sub:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (mul:{ *:[v2i32] } (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2i32] }:$Rn)) - Complexity = 13
                        // Dst: (MLSv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 33179*/            /*SwitchType*/ 14, MVT::v4i32,// ->33195
/* 33181*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33183*/              OPC_EmitConvertToTarget, 2,
/* 33185*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv4i32_indexed), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 3, 1, 4, 
                        // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (mul:{ *:[v4i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4i32] }:$Rn)) - Complexity = 13
                        // Dst: (MLSv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 33195*/            0, // EndSwitchType
/* 33196*/          0, // EndSwitchOpcode
/* 33197*/        0, /*End of Scope*/
/* 33198*/      0, // EndSwitchOpcode
/* 33199*/    /*Scope*/ 0|128,2/*256*/, /*->33457*/
/* 33201*/      OPC_MoveChild0,
/* 33202*/      OPC_SwitchOpcode /*3 cases */, 75, TARGET_VAL(ISD::SIGN_EXTEND),// ->33281
/* 33206*/        OPC_RecordChild0, // #0 = $Rn
/* 33207*/        OPC_Scope, 23, /*->33232*/ // 3 children in Scope
/* 33209*/          OPC_CheckChild0Type, MVT::v8i8,
/* 33211*/          OPC_MoveParent,
/* 33212*/          OPC_MoveChild1,
/* 33213*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 33216*/          OPC_RecordChild0, // #1 = $Rm
/* 33217*/          OPC_CheckChild0Type, MVT::v8i8,
/* 33219*/          OPC_MoveParent,
/* 33220*/          OPC_CheckType, MVT::v8i16,
/* 33222*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33224*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBLv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i16] } (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm)) - Complexity = 9
                    // Dst: (SSUBLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 33232*/        /*Scope*/ 23, /*->33256*/
/* 33233*/          OPC_CheckChild0Type, MVT::v4i16,
/* 33235*/          OPC_MoveParent,
/* 33236*/          OPC_MoveChild1,
/* 33237*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 33240*/          OPC_RecordChild0, // #1 = $Rm
/* 33241*/          OPC_CheckChild0Type, MVT::v4i16,
/* 33243*/          OPC_MoveParent,
/* 33244*/          OPC_CheckType, MVT::v4i32,
/* 33246*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33248*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBLv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v4i32] } (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm)) - Complexity = 9
                    // Dst: (SSUBLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 33256*/        /*Scope*/ 23, /*->33280*/
/* 33257*/          OPC_CheckChild0Type, MVT::v2i32,
/* 33259*/          OPC_MoveParent,
/* 33260*/          OPC_MoveChild1,
/* 33261*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 33264*/          OPC_RecordChild0, // #1 = $Rm
/* 33265*/          OPC_CheckChild0Type, MVT::v2i32,
/* 33267*/          OPC_MoveParent,
/* 33268*/          OPC_CheckType, MVT::v2i64,
/* 33270*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33272*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBLv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v2i64] } (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm)) - Complexity = 9
                    // Dst: (SSUBLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 33280*/        0, /*End of Scope*/
/* 33281*/      /*SwitchOpcode*/ 75, TARGET_VAL(ISD::ZERO_EXTEND),// ->33359
/* 33284*/        OPC_RecordChild0, // #0 = $Rn
/* 33285*/        OPC_Scope, 23, /*->33310*/ // 3 children in Scope
/* 33287*/          OPC_CheckChild0Type, MVT::v8i8,
/* 33289*/          OPC_MoveParent,
/* 33290*/          OPC_MoveChild1,
/* 33291*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 33294*/          OPC_RecordChild0, // #1 = $Rm
/* 33295*/          OPC_CheckChild0Type, MVT::v8i8,
/* 33297*/          OPC_MoveParent,
/* 33298*/          OPC_CheckType, MVT::v8i16,
/* 33300*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33302*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBLv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm)) - Complexity = 9
                    // Dst: (USUBLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 33310*/        /*Scope*/ 23, /*->33334*/
/* 33311*/          OPC_CheckChild0Type, MVT::v4i16,
/* 33313*/          OPC_MoveParent,
/* 33314*/          OPC_MoveChild1,
/* 33315*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 33318*/          OPC_RecordChild0, // #1 = $Rm
/* 33319*/          OPC_CheckChild0Type, MVT::v4i16,
/* 33321*/          OPC_MoveParent,
/* 33322*/          OPC_CheckType, MVT::v4i32,
/* 33324*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33326*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBLv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm)) - Complexity = 9
                    // Dst: (USUBLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 33334*/        /*Scope*/ 23, /*->33358*/
/* 33335*/          OPC_CheckChild0Type, MVT::v2i32,
/* 33337*/          OPC_MoveParent,
/* 33338*/          OPC_MoveChild1,
/* 33339*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 33342*/          OPC_RecordChild0, // #1 = $Rm
/* 33343*/          OPC_CheckChild0Type, MVT::v2i32,
/* 33345*/          OPC_MoveParent,
/* 33346*/          OPC_CheckType, MVT::v2i64,
/* 33348*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33350*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBLv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm)) - Complexity = 9
                    // Dst: (USUBLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 33358*/        0, /*End of Scope*/
/* 33359*/      /*SwitchOpcode*/ 94, TARGET_VAL(ISD::BUILD_VECTOR),// ->33456
/* 33362*/        OPC_CheckPredicate, 45, // Predicate_immAllZerosV
/* 33364*/        OPC_MoveParent,
/* 33365*/        OPC_RecordChild1, // #0 = $Rn
/* 33366*/        OPC_SwitchType /*8 cases */, 9, MVT::v8i8,// ->33378
/* 33369*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33371*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (sub:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllZerosV>>, V64:{ *:[v8i8] }:$Rn) - Complexity = 7
                    // Dst: (NEGv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 33378*/        /*SwitchType*/ 9, MVT::v16i8,// ->33389
/* 33380*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33382*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv16i8), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (sub:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllZerosV>>, V128:{ *:[v16i8] }:$Rn) - Complexity = 7
                    // Dst: (NEGv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 33389*/        /*SwitchType*/ 9, MVT::v4i16,// ->33400
/* 33391*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33393*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv4i16), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (sub:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllZerosV>>, V64:{ *:[v4i16] }:$Rn) - Complexity = 7
                    // Dst: (NEGv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 33400*/        /*SwitchType*/ 9, MVT::v8i16,// ->33411
/* 33402*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33404*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv8i16), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (sub:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllZerosV>>, V128:{ *:[v8i16] }:$Rn) - Complexity = 7
                    // Dst: (NEGv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 33411*/        /*SwitchType*/ 9, MVT::v2i32,// ->33422
/* 33413*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33415*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv2i32), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (sub:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllZerosV>>, V64:{ *:[v2i32] }:$Rn) - Complexity = 7
                    // Dst: (NEGv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 33422*/        /*SwitchType*/ 9, MVT::v4i32,// ->33433
/* 33424*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33426*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv4i32), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (sub:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, V128:{ *:[v4i32] }:$Rn) - Complexity = 7
                    // Dst: (NEGv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 33433*/        /*SwitchType*/ 9, MVT::v2i64,// ->33444
/* 33435*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33437*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv2i64), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (sub:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllZerosV>>, V128:{ *:[v2i64] }:$Rn) - Complexity = 7
                    // Dst: (NEGv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 33444*/        /*SwitchType*/ 9, MVT::v1i64,// ->33455
/* 33446*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33448*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv1i64), 0,
                        MVT::v1i64, 1/*#Ops*/, 0, 
                    // Src: (sub:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllZerosV>>, FPR64:{ *:[v1i64] }:$Rn) - Complexity = 7
                    // Dst: (NEGv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 33455*/        0, // EndSwitchType
/* 33456*/      0, // EndSwitchOpcode
/* 33457*/    /*Scope*/ 26|128,3/*410*/, /*->33869*/
/* 33459*/      OPC_RecordChild0, // #0 = $Rd
/* 33460*/      OPC_Scope, 49|128,2/*305*/, /*->33768*/ // 2 children in Scope
/* 33463*/        OPC_MoveChild1,
/* 33464*/        OPC_SwitchOpcode /*5 cases */, 83, TARGET_VAL(ISD::MUL),// ->33551
/* 33468*/          OPC_RecordChild0, // #1 = $Rn
/* 33469*/          OPC_RecordChild1, // #2 = $Rm
/* 33470*/          OPC_MoveParent,
/* 33471*/          OPC_SwitchType /*6 cases */, 11, MVT::v8i8,// ->33485
/* 33474*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33476*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (mul:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                      // Dst: (MLSv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 33485*/          /*SwitchType*/ 11, MVT::v16i8,// ->33498
/* 33487*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33489*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (mul:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)) - Complexity = 6
                      // Dst: (MLSv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 33498*/          /*SwitchType*/ 11, MVT::v4i16,// ->33511
/* 33500*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33502*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv4i16), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (mul:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                      // Dst: (MLSv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 33511*/          /*SwitchType*/ 11, MVT::v8i16,// ->33524
/* 33513*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33515*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (mul:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 6
                      // Dst: (MLSv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 33524*/          /*SwitchType*/ 11, MVT::v2i32,// ->33537
/* 33526*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33528*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv2i32), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (mul:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                      // Dst: (MLSv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 33537*/          /*SwitchType*/ 11, MVT::v4i32,// ->33550
/* 33539*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33541*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLSv4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (mul:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 6
                      // Dst: (MLSv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 33550*/          0, // EndSwitchType
/* 33551*/        /*SwitchOpcode*/ 51, TARGET_VAL(ISD::SIGN_EXTEND),// ->33605
/* 33554*/          OPC_RecordChild0, // #1 = $Rm
/* 33555*/          OPC_Scope, 15, /*->33572*/ // 3 children in Scope
/* 33557*/            OPC_CheckChild0Type, MVT::v8i8,
/* 33559*/            OPC_MoveParent,
/* 33560*/            OPC_CheckType, MVT::v8i16,
/* 33562*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33564*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBWv8i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                      // Dst: (SSUBWv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 33572*/          /*Scope*/ 15, /*->33588*/
/* 33573*/            OPC_CheckChild0Type, MVT::v4i16,
/* 33575*/            OPC_MoveParent,
/* 33576*/            OPC_CheckType, MVT::v4i32,
/* 33578*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33580*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBWv4i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                      // Dst: (SSUBWv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 33588*/          /*Scope*/ 15, /*->33604*/
/* 33589*/            OPC_CheckChild0Type, MVT::v2i32,
/* 33591*/            OPC_MoveParent,
/* 33592*/            OPC_CheckType, MVT::v2i64,
/* 33594*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33596*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSUBWv2i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                      // Dst: (SSUBWv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 33604*/          0, /*End of Scope*/
/* 33605*/        /*SwitchOpcode*/ 51, TARGET_VAL(ISD::ZERO_EXTEND),// ->33659
/* 33608*/          OPC_RecordChild0, // #1 = $Rm
/* 33609*/          OPC_Scope, 15, /*->33626*/ // 3 children in Scope
/* 33611*/            OPC_CheckChild0Type, MVT::v8i8,
/* 33613*/            OPC_MoveParent,
/* 33614*/            OPC_CheckType, MVT::v8i16,
/* 33616*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33618*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBWv8i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                      // Dst: (USUBWv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 33626*/          /*Scope*/ 15, /*->33642*/
/* 33627*/            OPC_CheckChild0Type, MVT::v4i16,
/* 33629*/            OPC_MoveParent,
/* 33630*/            OPC_CheckType, MVT::v4i32,
/* 33632*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33634*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBWv4i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                      // Dst: (USUBWv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 33642*/          /*Scope*/ 15, /*->33658*/
/* 33643*/            OPC_CheckChild0Type, MVT::v2i32,
/* 33645*/            OPC_MoveParent,
/* 33646*/            OPC_CheckType, MVT::v2i64,
/* 33648*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33650*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USUBWv2i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                      // Dst: (USUBWv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 33658*/          0, /*End of Scope*/
/* 33659*/        /*SwitchOpcode*/ 51, TARGET_VAL(AArch64ISD::SMULL),// ->33713
/* 33662*/          OPC_RecordChild0, // #1 = $Rn
/* 33663*/          OPC_Scope, 15, /*->33680*/ // 3 children in Scope
/* 33665*/            OPC_CheckChild0Type, MVT::v8i8,
/* 33667*/            OPC_RecordChild1, // #2 = $Rm
/* 33668*/            OPC_MoveParent,
/* 33669*/            OPC_CheckType, MVT::v8i16,
/* 33671*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv8i8_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (AArch64smull:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                      // Dst: (SMLSLv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 33680*/          /*Scope*/ 15, /*->33696*/
/* 33681*/            OPC_CheckChild0Type, MVT::v4i16,
/* 33683*/            OPC_RecordChild1, // #2 = $Rm
/* 33684*/            OPC_MoveParent,
/* 33685*/            OPC_CheckType, MVT::v4i32,
/* 33687*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv4i16_v4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (AArch64smull:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                      // Dst: (SMLSLv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 33696*/          /*Scope*/ 15, /*->33712*/
/* 33697*/            OPC_CheckChild0Type, MVT::v2i32,
/* 33699*/            OPC_RecordChild1, // #2 = $Rm
/* 33700*/            OPC_MoveParent,
/* 33701*/            OPC_CheckType, MVT::v2i64,
/* 33703*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLSLv2i32_v2i64), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (AArch64smull:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                      // Dst: (SMLSLv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 33712*/          0, /*End of Scope*/
/* 33713*/        /*SwitchOpcode*/ 51, TARGET_VAL(AArch64ISD::UMULL),// ->33767
/* 33716*/          OPC_RecordChild0, // #1 = $Rn
/* 33717*/          OPC_Scope, 15, /*->33734*/ // 3 children in Scope
/* 33719*/            OPC_CheckChild0Type, MVT::v8i8,
/* 33721*/            OPC_RecordChild1, // #2 = $Rm
/* 33722*/            OPC_MoveParent,
/* 33723*/            OPC_CheckType, MVT::v8i16,
/* 33725*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv8i8_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (AArch64umull:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                      // Dst: (UMLSLv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 33734*/          /*Scope*/ 15, /*->33750*/
/* 33735*/            OPC_CheckChild0Type, MVT::v4i16,
/* 33737*/            OPC_RecordChild1, // #2 = $Rm
/* 33738*/            OPC_MoveParent,
/* 33739*/            OPC_CheckType, MVT::v4i32,
/* 33741*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv4i16_v4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (AArch64umull:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                      // Dst: (UMLSLv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 33750*/          /*Scope*/ 15, /*->33766*/
/* 33751*/            OPC_CheckChild0Type, MVT::v2i32,
/* 33753*/            OPC_RecordChild1, // #2 = $Rm
/* 33754*/            OPC_MoveParent,
/* 33755*/            OPC_CheckType, MVT::v2i64,
/* 33757*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLSLv2i32_v2i64), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (AArch64umull:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                      // Dst: (UMLSLv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 33766*/          0, /*End of Scope*/
/* 33767*/        0, // EndSwitchOpcode
/* 33768*/      /*Scope*/ 99, /*->33868*/
/* 33769*/        OPC_RecordChild1, // #1 = $Rm
/* 33770*/        OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->33783
/* 33773*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33775*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBv8i8), 0,
                        MVT::v8i8, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                    // Dst: (SUBv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 33783*/        /*SwitchType*/ 10, MVT::v16i8,// ->33795
/* 33785*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33787*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBv16i8), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                    // Dst: (SUBv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 33795*/        /*SwitchType*/ 10, MVT::v4i16,// ->33807
/* 33797*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33799*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBv4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                    // Dst: (SUBv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 33807*/        /*SwitchType*/ 10, MVT::v8i16,// ->33819
/* 33809*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33811*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBv8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                    // Dst: (SUBv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 33819*/        /*SwitchType*/ 10, MVT::v2i32,// ->33831
/* 33821*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33823*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBv2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                    // Dst: (SUBv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 33831*/        /*SwitchType*/ 10, MVT::v4i32,// ->33843
/* 33833*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33835*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBv4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                    // Dst: (SUBv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 33843*/        /*SwitchType*/ 10, MVT::v2i64,// ->33855
/* 33845*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33847*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBv2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                    // Dst: (SUBv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 33855*/        /*SwitchType*/ 10, MVT::v1i64,// ->33867
/* 33857*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 33859*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBv1i64), 0,
                        MVT::v1i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 3
                    // Dst: (SUBv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 33867*/        0, // EndSwitchType
/* 33868*/      0, /*End of Scope*/
/* 33869*/    0, /*End of Scope*/
/* 33870*/  /*SwitchOpcode*/ 58|128,13/*1722*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->35596
/* 33874*/    OPC_Scope, 65|128,11/*1473*/, /*->35350*/ // 2 children in Scope
/* 33877*/      OPC_MoveChild0,
/* 33878*/      OPC_SwitchOpcode /*7 cases */, 102|128,4/*614*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->34497
/* 33883*/        OPC_MoveChild0,
/* 33884*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 33887*/        OPC_MoveParent,
/* 33888*/        OPC_MoveChild1,
/* 33889*/        OPC_SwitchOpcode /*6 cases */, 98, TARGET_VAL(AArch64ISD::SADDV),// ->33991
/* 33893*/          OPC_RecordChild0, // #0 = $Rn
/* 33894*/          OPC_MoveParent,
/* 33895*/          OPC_CheckChild2Integer, 0, 
/* 33897*/          OPC_CheckChild2Type, MVT::i32,
/* 33899*/          OPC_SwitchType /*2 cases */, 43, MVT::v16i8,// ->33945
/* 33902*/            OPC_MoveParent,
/* 33903*/            OPC_CheckChild1Integer, 0, 
/* 33905*/            OPC_CheckChild1Type, MVT::i64,
/* 33907*/            OPC_CheckType, MVT::i32,
/* 33909*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 33915*/            OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 33922*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 33925*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 33934*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 33937*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64saddv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (ADDVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 33945*/          /*SwitchType*/ 43, MVT::v8i16,// ->33990
/* 33947*/            OPC_MoveParent,
/* 33948*/            OPC_CheckChild1Integer, 0, 
/* 33950*/            OPC_CheckChild1Type, MVT::i64,
/* 33952*/            OPC_CheckType, MVT::i32,
/* 33954*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 33960*/            OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 33967*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 33970*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 33979*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 33982*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64saddv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (ADDVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 33990*/          0, // EndSwitchType
/* 33991*/        /*SwitchOpcode*/ 98, TARGET_VAL(AArch64ISD::UADDV),// ->34092
/* 33994*/          OPC_RecordChild0, // #0 = $Rn
/* 33995*/          OPC_MoveParent,
/* 33996*/          OPC_CheckChild2Integer, 0, 
/* 33998*/          OPC_CheckChild2Type, MVT::i32,
/* 34000*/          OPC_SwitchType /*2 cases */, 43, MVT::v16i8,// ->34046
/* 34003*/            OPC_MoveParent,
/* 34004*/            OPC_CheckChild1Integer, 0, 
/* 34006*/            OPC_CheckChild1Type, MVT::i64,
/* 34008*/            OPC_CheckType, MVT::i32,
/* 34010*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 34016*/            OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34023*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34026*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34035*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34038*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64uaddv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (ADDVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34046*/          /*SwitchType*/ 43, MVT::v8i16,// ->34091
/* 34048*/            OPC_MoveParent,
/* 34049*/            OPC_CheckChild1Integer, 0, 
/* 34051*/            OPC_CheckChild1Type, MVT::i64,
/* 34053*/            OPC_CheckType, MVT::i32,
/* 34055*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 34061*/            OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34068*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34071*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34080*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34083*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64uaddv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (ADDVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34091*/          0, // EndSwitchType
/* 34092*/        /*SwitchOpcode*/ 98, TARGET_VAL(AArch64ISD::SMAXV),// ->34193
/* 34095*/          OPC_RecordChild0, // #0 = $Rn
/* 34096*/          OPC_MoveParent,
/* 34097*/          OPC_CheckChild2Integer, 0, 
/* 34099*/          OPC_CheckChild2Type, MVT::i32,
/* 34101*/          OPC_SwitchType /*2 cases */, 43, MVT::v16i8,// ->34147
/* 34104*/            OPC_MoveParent,
/* 34105*/            OPC_CheckChild1Integer, 0, 
/* 34107*/            OPC_CheckChild1Type, MVT::i64,
/* 34109*/            OPC_CheckType, MVT::i32,
/* 34111*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 34117*/            OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv8i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34124*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34127*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34136*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34139*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64smaxv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (SMAXVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34147*/          /*SwitchType*/ 43, MVT::v8i16,// ->34192
/* 34149*/            OPC_MoveParent,
/* 34150*/            OPC_CheckChild1Integer, 0, 
/* 34152*/            OPC_CheckChild1Type, MVT::i64,
/* 34154*/            OPC_CheckType, MVT::i32,
/* 34156*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 34162*/            OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv4i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34169*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34172*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34181*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34184*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64smaxv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (SMAXVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34192*/          0, // EndSwitchType
/* 34193*/        /*SwitchOpcode*/ 98, TARGET_VAL(AArch64ISD::SMINV),// ->34294
/* 34196*/          OPC_RecordChild0, // #0 = $Rn
/* 34197*/          OPC_MoveParent,
/* 34198*/          OPC_CheckChild2Integer, 0, 
/* 34200*/          OPC_CheckChild2Type, MVT::i32,
/* 34202*/          OPC_SwitchType /*2 cases */, 43, MVT::v16i8,// ->34248
/* 34205*/            OPC_MoveParent,
/* 34206*/            OPC_CheckChild1Integer, 0, 
/* 34208*/            OPC_CheckChild1Type, MVT::i64,
/* 34210*/            OPC_CheckType, MVT::i32,
/* 34212*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 34218*/            OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv8i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34225*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34228*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34237*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34240*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64sminv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (SMINVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34248*/          /*SwitchType*/ 43, MVT::v8i16,// ->34293
/* 34250*/            OPC_MoveParent,
/* 34251*/            OPC_CheckChild1Integer, 0, 
/* 34253*/            OPC_CheckChild1Type, MVT::i64,
/* 34255*/            OPC_CheckType, MVT::i32,
/* 34257*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 34263*/            OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv4i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34270*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34273*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34282*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34285*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64sminv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (SMINVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34293*/          0, // EndSwitchType
/* 34294*/        /*SwitchOpcode*/ 98, TARGET_VAL(AArch64ISD::UMAXV),// ->34395
/* 34297*/          OPC_RecordChild0, // #0 = $Rn
/* 34298*/          OPC_MoveParent,
/* 34299*/          OPC_CheckChild2Integer, 0, 
/* 34301*/          OPC_CheckChild2Type, MVT::i32,
/* 34303*/          OPC_SwitchType /*2 cases */, 43, MVT::v16i8,// ->34349
/* 34306*/            OPC_MoveParent,
/* 34307*/            OPC_CheckChild1Integer, 0, 
/* 34309*/            OPC_CheckChild1Type, MVT::i64,
/* 34311*/            OPC_CheckType, MVT::i32,
/* 34313*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 34319*/            OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv8i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34326*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34329*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34338*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34341*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64umaxv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (UMAXVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34349*/          /*SwitchType*/ 43, MVT::v8i16,// ->34394
/* 34351*/            OPC_MoveParent,
/* 34352*/            OPC_CheckChild1Integer, 0, 
/* 34354*/            OPC_CheckChild1Type, MVT::i64,
/* 34356*/            OPC_CheckType, MVT::i32,
/* 34358*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 34364*/            OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv4i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34371*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34374*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34383*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34386*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64umaxv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (UMAXVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34394*/          0, // EndSwitchType
/* 34395*/        /*SwitchOpcode*/ 98, TARGET_VAL(AArch64ISD::UMINV),// ->34496
/* 34398*/          OPC_RecordChild0, // #0 = $Rn
/* 34399*/          OPC_MoveParent,
/* 34400*/          OPC_CheckChild2Integer, 0, 
/* 34402*/          OPC_CheckChild2Type, MVT::i32,
/* 34404*/          OPC_SwitchType /*2 cases */, 43, MVT::v16i8,// ->34450
/* 34407*/            OPC_MoveParent,
/* 34408*/            OPC_CheckChild1Integer, 0, 
/* 34410*/            OPC_CheckChild1Type, MVT::i64,
/* 34412*/            OPC_CheckType, MVT::i32,
/* 34414*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 34420*/            OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv8i8v), 0,
                          MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34427*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34430*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34439*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34442*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), (AArch64uminv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (UMINVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34450*/          /*SwitchType*/ 43, MVT::v8i16,// ->34495
/* 34452*/            OPC_MoveParent,
/* 34453*/            OPC_CheckChild1Integer, 0, 
/* 34455*/            OPC_CheckChild1Type, MVT::i64,
/* 34457*/            OPC_CheckType, MVT::i32,
/* 34459*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 34465*/            OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv4i16v), 0,
                          MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34472*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34475*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34484*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34487*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 4, 5, 
                      // Src: (vector_extract:{ *:[i32] } (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), (AArch64uminv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn), 0:{ *:[i32] }), 0:{ *:[i64] }) - Complexity = 22
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (UMINVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34495*/          0, // EndSwitchType
/* 34496*/        0, // EndSwitchOpcode
/* 34497*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(AArch64ISD::SADDV),// ->34639
/* 34501*/        OPC_RecordChild0, // #0 = $Rn
/* 34502*/        OPC_SwitchType /*3 cases */, 43, MVT::v16i8,// ->34548
/* 34505*/          OPC_MoveParent,
/* 34506*/          OPC_CheckChild1Integer, 0, 
/* 34508*/          OPC_CheckChild1Type, MVT::i64,
/* 34510*/          OPC_CheckType, MVT::i32,
/* 34512*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 34518*/          OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv16i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34525*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34528*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34537*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34540*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64saddv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34548*/        /*SwitchType*/ 43, MVT::v8i16,// ->34593
/* 34550*/          OPC_MoveParent,
/* 34551*/          OPC_CheckChild1Integer, 0, 
/* 34553*/          OPC_CheckChild1Type, MVT::i64,
/* 34555*/          OPC_CheckType, MVT::i32,
/* 34557*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 34563*/          OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34570*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34573*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34582*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34585*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64saddv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (ADDVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34593*/        /*SwitchType*/ 43, MVT::v4i32,// ->34638
/* 34595*/          OPC_MoveParent,
/* 34596*/          OPC_CheckChild1Integer, 0, 
/* 34598*/          OPC_CheckChild1Type, MVT::i64,
/* 34600*/          OPC_CheckType, MVT::i32,
/* 34602*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 34608*/          OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i32v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 34615*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34618*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34627*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34630*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64saddv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (ADDVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34638*/        0, // EndSwitchType
/* 34639*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(AArch64ISD::UADDV),// ->34781
/* 34643*/        OPC_RecordChild0, // #0 = $Rn
/* 34644*/        OPC_SwitchType /*3 cases */, 43, MVT::v16i8,// ->34690
/* 34647*/          OPC_MoveParent,
/* 34648*/          OPC_CheckChild1Integer, 0, 
/* 34650*/          OPC_CheckChild1Type, MVT::i64,
/* 34652*/          OPC_CheckType, MVT::i32,
/* 34654*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 34660*/          OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv16i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34667*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34670*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34679*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34682*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64uaddv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34690*/        /*SwitchType*/ 43, MVT::v8i16,// ->34735
/* 34692*/          OPC_MoveParent,
/* 34693*/          OPC_CheckChild1Integer, 0, 
/* 34695*/          OPC_CheckChild1Type, MVT::i64,
/* 34697*/          OPC_CheckType, MVT::i32,
/* 34699*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 34705*/          OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34712*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34715*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34724*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34727*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64uaddv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (ADDVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34735*/        /*SwitchType*/ 43, MVT::v4i32,// ->34780
/* 34737*/          OPC_MoveParent,
/* 34738*/          OPC_CheckChild1Integer, 0, 
/* 34740*/          OPC_CheckChild1Type, MVT::i64,
/* 34742*/          OPC_CheckType, MVT::i32,
/* 34744*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 34750*/          OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i32v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 34757*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34760*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34769*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34772*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64uaddv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (ADDVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34780*/        0, // EndSwitchType
/* 34781*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(AArch64ISD::SMAXV),// ->34923
/* 34785*/        OPC_RecordChild0, // #0 = $Rn
/* 34786*/        OPC_SwitchType /*3 cases */, 43, MVT::v16i8,// ->34832
/* 34789*/          OPC_MoveParent,
/* 34790*/          OPC_CheckChild1Integer, 0, 
/* 34792*/          OPC_CheckChild1Type, MVT::i64,
/* 34794*/          OPC_CheckType, MVT::i32,
/* 34796*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 34802*/          OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv16i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34809*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34812*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34821*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34824*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64smaxv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMAXVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34832*/        /*SwitchType*/ 43, MVT::v8i16,// ->34877
/* 34834*/          OPC_MoveParent,
/* 34835*/          OPC_CheckChild1Integer, 0, 
/* 34837*/          OPC_CheckChild1Type, MVT::i64,
/* 34839*/          OPC_CheckType, MVT::i32,
/* 34841*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 34847*/          OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34854*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34857*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34866*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34869*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64smaxv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (SMAXVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34877*/        /*SwitchType*/ 43, MVT::v4i32,// ->34922
/* 34879*/          OPC_MoveParent,
/* 34880*/          OPC_CheckChild1Integer, 0, 
/* 34882*/          OPC_CheckChild1Type, MVT::i64,
/* 34884*/          OPC_CheckType, MVT::i32,
/* 34886*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 34892*/          OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv4i32v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 34899*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34902*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34911*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34914*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64smaxv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (SMAXVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34922*/        0, // EndSwitchType
/* 34923*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(AArch64ISD::SMINV),// ->35065
/* 34927*/        OPC_RecordChild0, // #0 = $Rn
/* 34928*/        OPC_SwitchType /*3 cases */, 43, MVT::v16i8,// ->34974
/* 34931*/          OPC_MoveParent,
/* 34932*/          OPC_CheckChild1Integer, 0, 
/* 34934*/          OPC_CheckChild1Type, MVT::i64,
/* 34936*/          OPC_CheckType, MVT::i32,
/* 34938*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 34944*/          OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv16i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 34951*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 34954*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 34963*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 34966*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64sminv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMINVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 34974*/        /*SwitchType*/ 43, MVT::v8i16,// ->35019
/* 34976*/          OPC_MoveParent,
/* 34977*/          OPC_CheckChild1Integer, 0, 
/* 34979*/          OPC_CheckChild1Type, MVT::i64,
/* 34981*/          OPC_CheckType, MVT::i32,
/* 34983*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 34989*/          OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 34996*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 34999*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 35008*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35011*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64sminv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (SMINVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 35019*/        /*SwitchType*/ 43, MVT::v4i32,// ->35064
/* 35021*/          OPC_MoveParent,
/* 35022*/          OPC_CheckChild1Integer, 0, 
/* 35024*/          OPC_CheckChild1Type, MVT::i64,
/* 35026*/          OPC_CheckType, MVT::i32,
/* 35028*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 35034*/          OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv4i32v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 35041*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35044*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 35053*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35056*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64sminv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (SMINVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 35064*/        0, // EndSwitchType
/* 35065*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(AArch64ISD::UMAXV),// ->35207
/* 35069*/        OPC_RecordChild0, // #0 = $Rn
/* 35070*/        OPC_SwitchType /*3 cases */, 43, MVT::v16i8,// ->35116
/* 35073*/          OPC_MoveParent,
/* 35074*/          OPC_CheckChild1Integer, 0, 
/* 35076*/          OPC_CheckChild1Type, MVT::i64,
/* 35078*/          OPC_CheckType, MVT::i32,
/* 35080*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 35086*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv16i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 35093*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 35096*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 35105*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35108*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64umaxv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMAXVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 35116*/        /*SwitchType*/ 43, MVT::v8i16,// ->35161
/* 35118*/          OPC_MoveParent,
/* 35119*/          OPC_CheckChild1Integer, 0, 
/* 35121*/          OPC_CheckChild1Type, MVT::i64,
/* 35123*/          OPC_CheckType, MVT::i32,
/* 35125*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 35131*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 35138*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 35141*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 35150*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35153*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64umaxv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (UMAXVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 35161*/        /*SwitchType*/ 43, MVT::v4i32,// ->35206
/* 35163*/          OPC_MoveParent,
/* 35164*/          OPC_CheckChild1Integer, 0, 
/* 35166*/          OPC_CheckChild1Type, MVT::i64,
/* 35168*/          OPC_CheckType, MVT::i32,
/* 35170*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 35176*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv4i32v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 35183*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35186*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 35195*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35198*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64umaxv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (UMAXVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 35206*/        0, // EndSwitchType
/* 35207*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(AArch64ISD::UMINV),// ->35349
/* 35211*/        OPC_RecordChild0, // #0 = $Rn
/* 35212*/        OPC_SwitchType /*3 cases */, 43, MVT::v16i8,// ->35258
/* 35215*/          OPC_MoveParent,
/* 35216*/          OPC_CheckChild1Integer, 0, 
/* 35218*/          OPC_CheckChild1Type, MVT::i64,
/* 35220*/          OPC_CheckType, MVT::i32,
/* 35222*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 35228*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv16i8v), 0,
                        MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 35235*/          OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 35238*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 35247*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35250*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64uminv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMINVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 35258*/        /*SwitchType*/ 43, MVT::v8i16,// ->35303
/* 35260*/          OPC_MoveParent,
/* 35261*/          OPC_CheckChild1Integer, 0, 
/* 35263*/          OPC_CheckChild1Type, MVT::i64,
/* 35265*/          OPC_CheckType, MVT::i32,
/* 35267*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 35273*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv8i16v), 0,
                        MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 35280*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 35283*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 35292*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35295*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64uminv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (UMINVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] }), ssub:{ *:[i32] })
/* 35303*/        /*SwitchType*/ 43, MVT::v4i32,// ->35348
/* 35305*/          OPC_MoveParent,
/* 35306*/          OPC_CheckChild1Integer, 0, 
/* 35308*/          OPC_CheckChild1Type, MVT::i64,
/* 35310*/          OPC_CheckType, MVT::i32,
/* 35312*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 35318*/          OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv4i32v), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 35325*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35328*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 35337*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35340*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 4, 5, 
                    // Src: (vector_extract:{ *:[i32] } (AArch64uminv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn), 0:{ *:[i64] }) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (UMINVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] }), ssub:{ *:[i32] })
/* 35348*/        0, // EndSwitchType
/* 35349*/      0, // EndSwitchOpcode
/* 35350*/    /*Scope*/ 115|128,1/*243*/, /*->35595*/
/* 35352*/      OPC_RecordChild0, // #0 = $Rn
/* 35353*/      OPC_Scope, 26, /*->35381*/ // 7 children in Scope
/* 35355*/        OPC_CheckChild0Type, MVT::v16i8,
/* 35357*/        OPC_RecordChild1, // #1 = $idx
/* 35358*/        OPC_MoveChild1,
/* 35359*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35362*/        OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 35364*/        OPC_CheckType, MVT::i64,
/* 35366*/        OPC_MoveParent,
/* 35367*/        OPC_CheckType, MVT::i32,
/* 35369*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 35371*/        OPC_EmitConvertToTarget, 1,
/* 35373*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMOVvi8), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (vector_extract:{ *:[i32] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx) - Complexity = 7
                  // Dst: (UMOVvi8:{ *:[i32] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 35381*/      /*Scope*/ 26, /*->35408*/
/* 35382*/        OPC_CheckChild0Type, MVT::v8i16,
/* 35384*/        OPC_RecordChild1, // #1 = $idx
/* 35385*/        OPC_MoveChild1,
/* 35386*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35389*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 35391*/        OPC_CheckType, MVT::i64,
/* 35393*/        OPC_MoveParent,
/* 35394*/        OPC_CheckType, MVT::i32,
/* 35396*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 35398*/        OPC_EmitConvertToTarget, 1,
/* 35400*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMOVvi16), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (vector_extract:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 7
                  // Dst: (UMOVvi16:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 35408*/      /*Scope*/ 26, /*->35435*/
/* 35409*/        OPC_CheckChild0Type, MVT::v4i32,
/* 35411*/        OPC_RecordChild1, // #1 = $idx
/* 35412*/        OPC_MoveChild1,
/* 35413*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35416*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 35418*/        OPC_CheckType, MVT::i64,
/* 35420*/        OPC_MoveParent,
/* 35421*/        OPC_CheckType, MVT::i32,
/* 35423*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 35425*/        OPC_EmitConvertToTarget, 1,
/* 35427*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMOVvi32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 7
                  // Dst: (UMOVvi32:{ *:[i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 35435*/      /*Scope*/ 26, /*->35462*/
/* 35436*/        OPC_CheckChild0Type, MVT::v2i64,
/* 35438*/        OPC_RecordChild1, // #1 = $idx
/* 35439*/        OPC_MoveChild1,
/* 35440*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35443*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 35445*/        OPC_CheckType, MVT::i64,
/* 35447*/        OPC_MoveParent,
/* 35448*/        OPC_CheckType, MVT::i64,
/* 35450*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 35452*/        OPC_EmitConvertToTarget, 1,
/* 35454*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMOVvi64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (vector_extract:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx) - Complexity = 7
                  // Dst: (UMOVvi64:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 35462*/      /*Scope*/ 43, /*->35506*/
/* 35463*/        OPC_CheckChild0Type, MVT::v2f64,
/* 35465*/        OPC_Scope, 15, /*->35482*/ // 2 children in Scope
/* 35467*/          OPC_CheckChild1Integer, 0, 
/* 35469*/          OPC_CheckType, MVT::f64,
/* 35471*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 35474*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rn, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[f64] } V128:{ *:[v2f64] }:$Rn, dsub:{ *:[i32] })
/* 35482*/        /*Scope*/ 22, /*->35505*/
/* 35483*/          OPC_RecordChild1, // #1 = $idx
/* 35484*/          OPC_MoveChild1,
/* 35485*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35488*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 35490*/          OPC_CheckType, MVT::i64,
/* 35492*/          OPC_MoveParent,
/* 35493*/          OPC_CheckType, MVT::f64,
/* 35495*/          OPC_EmitConvertToTarget, 1,
/* 35497*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CPYi64), 0,
                        MVT::f64, 2/*#Ops*/, 0, 2, 
                    // Src: (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx) - Complexity = 7
                    // Dst: (CPYi64:{ *:[f64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)
/* 35505*/        0, /*End of Scope*/
/* 35506*/      /*Scope*/ 43, /*->35550*/
/* 35507*/        OPC_CheckChild0Type, MVT::v4f32,
/* 35509*/        OPC_Scope, 15, /*->35526*/ // 2 children in Scope
/* 35511*/          OPC_CheckChild1Integer, 0, 
/* 35513*/          OPC_CheckType, MVT::f32,
/* 35515*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 35518*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rn, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[f32] } V128:{ *:[v4f32] }:$Rn, ssub:{ *:[i32] })
/* 35526*/        /*Scope*/ 22, /*->35549*/
/* 35527*/          OPC_RecordChild1, // #1 = $idx
/* 35528*/          OPC_MoveChild1,
/* 35529*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35532*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 35534*/          OPC_CheckType, MVT::i64,
/* 35536*/          OPC_MoveParent,
/* 35537*/          OPC_CheckType, MVT::f32,
/* 35539*/          OPC_EmitConvertToTarget, 1,
/* 35541*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CPYi32), 0,
                        MVT::f32, 2/*#Ops*/, 0, 2, 
                    // Src: (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 7
                    // Dst: (CPYi32:{ *:[f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 35549*/        0, /*End of Scope*/
/* 35550*/      /*Scope*/ 43, /*->35594*/
/* 35551*/        OPC_CheckChild0Type, MVT::v8f16,
/* 35553*/        OPC_Scope, 15, /*->35570*/ // 2 children in Scope
/* 35555*/          OPC_CheckChild1Integer, 0, 
/* 35557*/          OPC_CheckType, MVT::f16,
/* 35559*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 35562*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f16, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_extract:{ *:[f16] } V128:{ *:[v8f16] }:$Rn, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[f16] } V128:{ *:[v8f16] }:$Rn, hsub:{ *:[i32] })
/* 35570*/        /*Scope*/ 22, /*->35593*/
/* 35571*/          OPC_RecordChild1, // #1 = $idx
/* 35572*/          OPC_MoveChild1,
/* 35573*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35576*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 35578*/          OPC_CheckType, MVT::i64,
/* 35580*/          OPC_MoveParent,
/* 35581*/          OPC_CheckType, MVT::f16,
/* 35583*/          OPC_EmitConvertToTarget, 1,
/* 35585*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CPYi16), 0,
                        MVT::f16, 2/*#Ops*/, 0, 2, 
                    // Src: (vector_extract:{ *:[f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 7
                    // Dst: (CPYi16:{ *:[f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)
/* 35593*/        0, /*End of Scope*/
/* 35594*/      0, /*End of Scope*/
/* 35595*/    0, /*End of Scope*/
/* 35596*/  /*SwitchOpcode*/ 74, TARGET_VAL(AArch64ISD::PREFETCH),// ->35673
/* 35599*/    OPC_RecordNode, // #0 = 'AArch64Prefetch' chained node
/* 35600*/    OPC_RecordChild1, // #1 = $Rt
/* 35601*/    OPC_MoveChild1,
/* 35602*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35605*/    OPC_MoveParent,
/* 35606*/    OPC_RecordChild2, // #2 = $ro_Windexed64:Rn:Rm:extend
/* 35607*/    OPC_Scope, 16, /*->35625*/ // 4 children in Scope
/* 35609*/      OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/* 35612*/      OPC_EmitMergeInputChains1_0,
/* 35613*/      OPC_EmitConvertToTarget, 1,
/* 35615*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::PRFMroW), 0|OPFL_Chain,
                    5/*#Ops*/, 7, 3, 4, 5, 6, 
                // Src: (AArch64Prefetch (imm:{ *:[i32] }):$Rt, (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)) - Complexity = 21
                // Dst: (PRFMroW (imm:{ *:[i32] }):$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 35625*/    /*Scope*/ 16, /*->35642*/
/* 35626*/      OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/* 35629*/      OPC_EmitMergeInputChains1_0,
/* 35630*/      OPC_EmitConvertToTarget, 1,
/* 35632*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::PRFMroX), 0|OPFL_Chain,
                    5/*#Ops*/, 7, 3, 4, 5, 6, 
                // Src: (AArch64Prefetch (imm:{ *:[i32] }):$Rt, (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)) - Complexity = 21
                // Dst: (PRFMroX (imm:{ *:[i32] }):$Rt, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 35642*/    /*Scope*/ 14, /*->35657*/
/* 35643*/      OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectAddrModeIndexed64:$ #3 #4
/* 35646*/      OPC_EmitMergeInputChains1_0,
/* 35647*/      OPC_EmitConvertToTarget, 1,
/* 35649*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::PRFMui), 0|OPFL_Chain,
                    3/*#Ops*/, 5, 3, 4, 
                // Src: (AArch64Prefetch (imm:{ *:[i32] }):$Rt, (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)) - Complexity = 15
                // Dst: (PRFMui (imm:{ *:[i32] }):$Rt, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 35657*/    /*Scope*/ 14, /*->35672*/
/* 35658*/      OPC_CheckComplexPat, /*CP*/17, /*#*/2, // SelectAddrModeUnscaled64:$ #3 #4
/* 35661*/      OPC_EmitMergeInputChains1_0,
/* 35662*/      OPC_EmitConvertToTarget, 1,
/* 35664*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::PRFUMi), 0|OPFL_Chain,
                    3/*#Ops*/, 5, 3, 4, 
                // Src: (AArch64Prefetch (imm:{ *:[i32] }):$Rt, (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)) - Complexity = 15
                // Dst: (PRFUMi (imm:{ *:[i32] }):$Rt, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$offset)
/* 35672*/    0, /*End of Scope*/
/* 35673*/  /*SwitchOpcode*/ 81|128,2/*337*/, TARGET_VAL(AArch64ISD::ANDS),// ->36014
/* 35677*/    OPC_Scope, 50, /*->35729*/ // 5 children in Scope
/* 35679*/      OPC_RecordChild0, // #0 = $Rn
/* 35680*/      OPC_MoveChild1,
/* 35681*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 35684*/      OPC_RecordChild0, // #1 = $Rm
/* 35685*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 35696*/      OPC_MoveParent,
/* 35697*/      OPC_SwitchType /*2 cases */, 13, MVT::i32,// ->35713
/* 35700*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 35703*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::BICSWrs), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64and_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 20
                  // Dst: (BICSWrs:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 35713*/      /*SwitchType*/ 13, MVT::i64,// ->35728
/* 35715*/        OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 35718*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::BICSXrs), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64and_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, -1:{ *:[i64] })) - Complexity = 20
                  // Dst: (BICSXrs:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 35728*/      0, // EndSwitchType
/* 35729*/    /*Scope*/ 50, /*->35780*/
/* 35730*/      OPC_MoveChild0,
/* 35731*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 35734*/      OPC_RecordChild0, // #0 = $Rm
/* 35735*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 35746*/      OPC_MoveParent,
/* 35747*/      OPC_RecordChild1, // #1 = $Rn
/* 35748*/      OPC_SwitchType /*2 cases */, 13, MVT::i32,// ->35764
/* 35751*/        OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 35754*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::BICSWrs), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64and_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn) - Complexity = 20
                  // Dst: (BICSWrs:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 35764*/      /*SwitchType*/ 13, MVT::i64,// ->35779
/* 35766*/        OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 35769*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::BICSXrs), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64and_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn) - Complexity = 20
                  // Dst: (BICSXrs:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 35779*/      0, // EndSwitchType
/* 35780*/    /*Scope*/ 113, /*->35894*/
/* 35781*/      OPC_RecordChild0, // #0 = $Rn
/* 35782*/      OPC_Scope, 67, /*->35851*/ // 2 children in Scope
/* 35784*/        OPC_RecordChild1, // #1 = $Rm
/* 35785*/        OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->35818
/* 35788*/          OPC_Scope, 13, /*->35803*/ // 2 children in Scope
/* 35790*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 35793*/            OPC_MorphNodeTo2, TARGET_VAL(AArch64::ANDSWrs), 0,
                          MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (AArch64and_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 12
                      // Dst: (ANDSWrs:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 35803*/          /*Scope*/ 13, /*->35817*/
/* 35804*/            OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 35807*/            OPC_MorphNodeTo2, TARGET_VAL(AArch64::ANDSWrs), 0,
                          MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (AArch64and_flag:{ *:[i32] }:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, GPR32:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (ANDSWrs:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 35817*/          0, /*End of Scope*/
/* 35818*/        /*SwitchType*/ 30, MVT::i64,// ->35850
/* 35820*/          OPC_Scope, 13, /*->35835*/ // 2 children in Scope
/* 35822*/            OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 35825*/            OPC_MorphNodeTo2, TARGET_VAL(AArch64::ANDSXrs), 0,
                          MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (AArch64and_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 12
                      // Dst: (ANDSXrs:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 35835*/          /*Scope*/ 13, /*->35849*/
/* 35836*/            OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 35839*/            OPC_MorphNodeTo2, TARGET_VAL(AArch64::ANDSXrs), 0,
                          MVT::i64, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (AArch64and_flag:{ *:[i64] }:{ *:[i32] } logical_shifted_reg64:{ *:[i64] }:$Rm, GPR64:{ *:[i64] }:$Rn) - Complexity = 12
                      // Dst: (ANDSXrs:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 35849*/          0, /*End of Scope*/
/* 35850*/        0, // EndSwitchType
/* 35851*/      /*Scope*/ 41, /*->35893*/
/* 35852*/        OPC_MoveChild1,
/* 35853*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 35856*/        OPC_RecordChild0, // #1 = $Rm
/* 35857*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 35868*/        OPC_MoveParent,
/* 35869*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->35881
/* 35872*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::BICSWrr), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (AArch64and_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 11
                    // Dst: (BICSWrr:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 35881*/        /*SwitchType*/ 9, MVT::i64,// ->35892
/* 35883*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::BICSXrr), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (AArch64and_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, -1:{ *:[i64] })) - Complexity = 11
                    // Dst: (BICSXrr:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 35892*/        0, // EndSwitchType
/* 35893*/      0, /*End of Scope*/
/* 35894*/    /*Scope*/ 42, /*->35937*/
/* 35895*/      OPC_MoveChild0,
/* 35896*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 35899*/      OPC_RecordChild0, // #0 = $Rm
/* 35900*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 35911*/      OPC_MoveParent,
/* 35912*/      OPC_RecordChild1, // #1 = $Rn
/* 35913*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->35925
/* 35916*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::BICSWrr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (AArch64and_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (BICSWrr:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 35925*/      /*SwitchType*/ 9, MVT::i64,// ->35936
/* 35927*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::BICSXrr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (AArch64and_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn) - Complexity = 11
                  // Dst: (BICSXrr:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 35936*/      0, // EndSwitchType
/* 35937*/    /*Scope*/ 75, /*->36013*/
/* 35938*/      OPC_RecordChild0, // #0 = $Rn
/* 35939*/      OPC_RecordChild1, // #1 = $imm
/* 35940*/      OPC_Scope, 46, /*->35988*/ // 3 children in Scope
/* 35942*/        OPC_MoveChild1,
/* 35943*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35946*/        OPC_Scope, 19, /*->35967*/ // 2 children in Scope
/* 35948*/          OPC_CheckPredicate, 40, // Predicate_logical_imm32
/* 35950*/          OPC_MoveParent,
/* 35951*/          OPC_CheckType, MVT::i32,
/* 35953*/          OPC_EmitConvertToTarget, 1,
/* 35955*/          OPC_EmitNodeXForm, 0, 2, // logical_imm32_XFORM
/* 35958*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::ANDSWri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (AArch64and_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_logical_imm32>><<X:logical_imm32_XFORM>>:$imm) - Complexity = 7
                    // Dst: (ANDSWri:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (logical_imm32_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 35967*/        /*Scope*/ 19, /*->35987*/
/* 35968*/          OPC_CheckPredicate, 41, // Predicate_logical_imm64
/* 35970*/          OPC_MoveParent,
/* 35971*/          OPC_CheckType, MVT::i64,
/* 35973*/          OPC_EmitConvertToTarget, 1,
/* 35975*/          OPC_EmitNodeXForm, 1, 2, // logical_imm64_XFORM
/* 35978*/          OPC_MorphNodeTo2, TARGET_VAL(AArch64::ANDSXri), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (AArch64and_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_logical_imm64>><<X:logical_imm64_XFORM>>:$imm) - Complexity = 7
                    // Dst: (ANDSXri:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, (logical_imm64_XFORM:{ *:[i64] } (imm:{ *:[i64] }):$imm))
/* 35987*/        0, /*End of Scope*/
/* 35988*/      /*Scope*/ 11, /*->36000*/
/* 35989*/        OPC_CheckType, MVT::i32,
/* 35991*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ANDSWrr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64and_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (ANDSWrr:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 36000*/      /*Scope*/ 11, /*->36012*/
/* 36001*/        OPC_CheckType, MVT::i64,
/* 36003*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ANDSXrr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64and_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                  // Dst: (ANDSXrr:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 36012*/      0, /*End of Scope*/
/* 36013*/    0, /*End of Scope*/
/* 36014*/  /*SwitchOpcode*/ 50|128,10/*1330*/, TARGET_VAL(ISD::XOR),// ->37348
/* 36018*/    OPC_Scope, 111, /*->36131*/ // 12 children in Scope
/* 36020*/      OPC_MoveChild0,
/* 36021*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 36024*/      OPC_RecordChild0, // #0 = $Rn
/* 36025*/      OPC_Scope, 59, /*->36086*/ // 2 children in Scope
/* 36027*/        OPC_RecordChild1, // #1 = $Rm
/* 36028*/        OPC_MoveParent,
/* 36029*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36040*/        OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->36071
/* 36043*/          OPC_Scope, 12, /*->36057*/ // 2 children in Scope
/* 36045*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36048*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrs), 0,
                          MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (xor:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm), -1:{ *:[i32] }) - Complexity = 20
                      // Dst: (EONWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 36057*/          /*Scope*/ 12, /*->36070*/
/* 36058*/            OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36061*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrs), 0,
                          MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (xor:{ *:[i32] } (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, GPR32:{ *:[i32] }:$Rn), -1:{ *:[i32] }) - Complexity = 20
                      // Dst: (EONWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 36070*/          0, /*End of Scope*/
/* 36071*/        /*SwitchType*/ 12, MVT::i64,// ->36085
/* 36073*/          OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36076*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrs), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (xor:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm), -1:{ *:[i64] }) - Complexity = 20
                    // Dst: (EONXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 36085*/        0, // EndSwitchType
/* 36086*/      /*Scope*/ 43, /*->36130*/
/* 36087*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36098*/        OPC_MoveParent,
/* 36099*/        OPC_RecordChild1, // #1 = $Rm
/* 36100*/        OPC_CheckType, MVT::i32,
/* 36102*/        OPC_Scope, 12, /*->36116*/ // 2 children in Scope
/* 36104*/          OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36107*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrs), 0,
                        MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (xor:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, -1:{ *:[i32] }), logical_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 20
                    // Dst: (EONWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 36116*/        /*Scope*/ 12, /*->36129*/
/* 36117*/          OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36120*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrs), 0,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (xor:{ *:[i32] } (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn) - Complexity = 20
                    // Dst: (EONWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 36129*/        0, /*End of Scope*/
/* 36130*/      0, /*End of Scope*/
/* 36131*/    /*Scope*/ 48, /*->36180*/
/* 36132*/      OPC_RecordChild0, // #0 = $Rm
/* 36133*/      OPC_MoveChild1,
/* 36134*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 36137*/      OPC_RecordChild0, // #1 = $Rn
/* 36138*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36149*/      OPC_MoveParent,
/* 36150*/      OPC_CheckType, MVT::i32,
/* 36152*/      OPC_Scope, 12, /*->36166*/ // 2 children in Scope
/* 36154*/        OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36157*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrs), 0,
                      MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, -1:{ *:[i32] })) - Complexity = 20
                  // Dst: (EONWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 36166*/      /*Scope*/ 12, /*->36179*/
/* 36167*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36170*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrs), 0,
                      MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 20
                  // Dst: (EONWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 36179*/      0, /*End of Scope*/
/* 36180*/    /*Scope*/ 79, /*->36260*/
/* 36181*/      OPC_MoveChild0,
/* 36182*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 36185*/      OPC_RecordChild0, // #0 = $Rm
/* 36186*/      OPC_Scope, 27, /*->36215*/ // 2 children in Scope
/* 36188*/        OPC_RecordChild1, // #1 = $Rn
/* 36189*/        OPC_MoveParent,
/* 36190*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36201*/        OPC_CheckType, MVT::i64,
/* 36203*/        OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36206*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrs), 0,
                      MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (xor:{ *:[i64] } (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, GPR64:{ *:[i64] }:$Rn), -1:{ *:[i64] }) - Complexity = 20
                  // Dst: (EONXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 36215*/      /*Scope*/ 43, /*->36259*/
/* 36216*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36227*/        OPC_MoveParent,
/* 36228*/        OPC_RecordChild1, // #1 = $Rm
/* 36229*/        OPC_CheckType, MVT::i64,
/* 36231*/        OPC_Scope, 12, /*->36245*/ // 2 children in Scope
/* 36233*/          OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36236*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrs), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (xor:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, -1:{ *:[i64] }), logical_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 20
                    // Dst: (EONXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 36245*/        /*Scope*/ 12, /*->36258*/
/* 36246*/          OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36249*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrs), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (xor:{ *:[i64] } (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn) - Complexity = 20
                    // Dst: (EONXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 36258*/        0, /*End of Scope*/
/* 36259*/      0, /*End of Scope*/
/* 36260*/    /*Scope*/ 34|128,1/*162*/, /*->36424*/
/* 36262*/      OPC_RecordChild0, // #0 = $Rm
/* 36263*/      OPC_Scope, 47, /*->36312*/ // 2 children in Scope
/* 36265*/        OPC_MoveChild1,
/* 36266*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 36269*/        OPC_RecordChild0, // #1 = $Rn
/* 36270*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36281*/        OPC_MoveParent,
/* 36282*/        OPC_CheckType, MVT::i64,
/* 36284*/        OPC_Scope, 12, /*->36298*/ // 2 children in Scope
/* 36286*/          OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36289*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrs), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, -1:{ *:[i64] })) - Complexity = 20
                    // Dst: (EONXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 36298*/        /*Scope*/ 12, /*->36311*/
/* 36299*/          OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36302*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrs), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, -1:{ *:[i64] })) - Complexity = 20
                    // Dst: (EONXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 36311*/        0, /*End of Scope*/
/* 36312*/      /*Scope*/ 110, /*->36423*/
/* 36313*/        OPC_RecordChild1, // #1 = $imm
/* 36314*/        OPC_Scope, 44, /*->36360*/ // 3 children in Scope
/* 36316*/          OPC_MoveChild1,
/* 36317*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 36320*/          OPC_Scope, 18, /*->36340*/ // 2 children in Scope
/* 36322*/            OPC_CheckPredicate, 40, // Predicate_logical_imm32
/* 36324*/            OPC_MoveParent,
/* 36325*/            OPC_CheckType, MVT::i32,
/* 36327*/            OPC_EmitConvertToTarget, 1,
/* 36329*/            OPC_EmitNodeXForm, 0, 2, // logical_imm32_XFORM
/* 36332*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORWri), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_logical_imm32>><<X:logical_imm32_XFORM>>:$imm) - Complexity = 13
                      // Dst: (EORWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (logical_imm32_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 36340*/          /*Scope*/ 18, /*->36359*/
/* 36341*/            OPC_CheckPredicate, 41, // Predicate_logical_imm64
/* 36343*/            OPC_MoveParent,
/* 36344*/            OPC_CheckType, MVT::i64,
/* 36346*/            OPC_EmitConvertToTarget, 1,
/* 36348*/            OPC_EmitNodeXForm, 1, 2, // logical_imm64_XFORM
/* 36351*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORXri), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_logical_imm64>><<X:logical_imm64_XFORM>>:$imm) - Complexity = 13
                      // Dst: (EORXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (logical_imm64_XFORM:{ *:[i64] } (imm:{ *:[i64] }):$imm))
/* 36359*/          0, /*End of Scope*/
/* 36360*/        /*Scope*/ 30, /*->36391*/
/* 36361*/          OPC_CheckType, MVT::i32,
/* 36363*/          OPC_Scope, 12, /*->36377*/ // 2 children in Scope
/* 36365*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36368*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORWrs), 0,
                          MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 12
                      // Dst: (EORWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 36377*/          /*Scope*/ 12, /*->36390*/
/* 36378*/            OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36381*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORWrs), 0,
                          MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, GPR32:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (EORWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 36390*/          0, /*End of Scope*/
/* 36391*/        /*Scope*/ 30, /*->36422*/
/* 36392*/          OPC_CheckType, MVT::i64,
/* 36394*/          OPC_Scope, 12, /*->36408*/ // 2 children in Scope
/* 36396*/            OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36399*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORXrs), 0,
                          MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 12
                      // Dst: (EORXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 36408*/          /*Scope*/ 12, /*->36421*/
/* 36409*/            OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 36412*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORXrs), 0,
                          MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, GPR64:{ *:[i64] }:$Rn) - Complexity = 12
                      // Dst: (EORXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 36421*/          0, /*End of Scope*/
/* 36422*/        0, /*End of Scope*/
/* 36423*/      0, /*End of Scope*/
/* 36424*/    /*Scope*/ 67, /*->36492*/
/* 36425*/      OPC_MoveChild0,
/* 36426*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 36429*/      OPC_RecordChild0, // #0 = $Rn
/* 36430*/      OPC_Scope, 35, /*->36467*/ // 2 children in Scope
/* 36432*/        OPC_RecordChild1, // #1 = $Rm
/* 36433*/        OPC_MoveParent,
/* 36434*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36445*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->36456
/* 36448*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm), -1:{ *:[i32] }) - Complexity = 11
                    // Dst: (EONWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 36456*/        /*SwitchType*/ 8, MVT::i64,// ->36466
/* 36458*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm), -1:{ *:[i64] }) - Complexity = 11
                    // Dst: (EONXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 36466*/        0, // EndSwitchType
/* 36467*/      /*Scope*/ 23, /*->36491*/
/* 36468*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36479*/        OPC_MoveParent,
/* 36480*/        OPC_RecordChild1, // #1 = $Rm
/* 36481*/        OPC_CheckType, MVT::i32,
/* 36483*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rm) - Complexity = 11
                  // Dst: (EONWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 36491*/      0, /*End of Scope*/
/* 36492*/    /*Scope*/ 28, /*->36521*/
/* 36493*/      OPC_RecordChild0, // #0 = $Rm
/* 36494*/      OPC_MoveChild1,
/* 36495*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 36498*/      OPC_RecordChild0, // #1 = $Rn
/* 36499*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36510*/      OPC_MoveParent,
/* 36511*/      OPC_CheckType, MVT::i32,
/* 36513*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONWrr), 0,
                    MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, -1:{ *:[i32] })) - Complexity = 11
                // Dst: (EONWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 36521*/    /*Scope*/ 28, /*->36550*/
/* 36522*/      OPC_MoveChild0,
/* 36523*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 36526*/      OPC_RecordChild0, // #0 = $Rn
/* 36527*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36538*/      OPC_MoveParent,
/* 36539*/      OPC_RecordChild1, // #1 = $Rm
/* 36540*/      OPC_CheckType, MVT::i64,
/* 36542*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrr), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (xor:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rm) - Complexity = 11
                // Dst: (EONXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 36550*/    /*Scope*/ 95, /*->36646*/
/* 36551*/      OPC_RecordChild0, // #0 = $Rm
/* 36552*/      OPC_Scope, 27, /*->36581*/ // 3 children in Scope
/* 36554*/        OPC_MoveChild1,
/* 36555*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 36558*/        OPC_RecordChild0, // #1 = $Rn
/* 36559*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36570*/        OPC_MoveParent,
/* 36571*/        OPC_CheckType, MVT::i64,
/* 36573*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EONXrr), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, -1:{ *:[i64] })) - Complexity = 11
                  // Dst: (EONXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 36581*/      /*Scope*/ 39, /*->36621*/
/* 36582*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 36593*/        OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->36607
/* 36596*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 36599*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 1, 0, 
                    // Src: (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Wm, -1:{ *:[i32] }) - Complexity = 8
                    // Dst: (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Wm)
/* 36607*/        /*SwitchType*/ 11, MVT::i64,// ->36620
/* 36609*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 36612*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNXrr), 0,
                        MVT::i64, 2/*#Ops*/, 1, 0, 
                    // Src: (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Xm, -1:{ *:[i64] }) - Complexity = 8
                    // Dst: (ORNXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Xm)
/* 36620*/        0, // EndSwitchType
/* 36621*/      /*Scope*/ 23, /*->36645*/
/* 36622*/        OPC_RecordChild1, // #1 = $Rm
/* 36623*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->36634
/* 36626*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORWrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (EORWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 36634*/        /*SwitchType*/ 8, MVT::i64,// ->36644
/* 36636*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORXrr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (EORXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 36644*/        0, // EndSwitchType
/* 36645*/      0, /*End of Scope*/
/* 36646*/    /*Scope*/ 58|128,3/*442*/, /*->37090*/
/* 36648*/      OPC_MoveChild0,
/* 36649*/      OPC_SwitchOpcode /*2 cases */, 72|128,1/*200*/, TARGET_VAL(AArch64ISD::VASHR),// ->36854
/* 36654*/        OPC_RecordChild0, // #0 = $src
/* 36655*/        OPC_CheckChild1Integer, 15, 
/* 36657*/        OPC_CheckChild1Type, MVT::i32,
/* 36659*/        OPC_MoveParent,
/* 36660*/        OPC_MoveChild1,
/* 36661*/        OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 36664*/        OPC_MoveChild0,
/* 36665*/        OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(ISD::SUB),// ->36765
/* 36669*/          OPC_MoveChild0,
/* 36670*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36673*/          OPC_Scope, 53, /*->36728*/ // 2 children in Scope
/* 36675*/            OPC_MoveChild0,
/* 36676*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 36679*/            OPC_RecordChild0, // #1 = $opA
/* 36680*/            OPC_CheckChild1Integer, 8, 
/* 36682*/            OPC_CheckChild1Type, MVT::i64,
/* 36684*/            OPC_CheckType, MVT::v8i8,
/* 36686*/            OPC_MoveParent,
/* 36687*/            OPC_MoveParent,
/* 36688*/            OPC_MoveChild1,
/* 36689*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36692*/            OPC_MoveChild0,
/* 36693*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 36696*/            OPC_RecordChild0, // #2 = $opB
/* 36697*/            OPC_CheckChild1Integer, 8, 
/* 36699*/            OPC_CheckChild1Type, MVT::i64,
/* 36701*/            OPC_CheckType, MVT::v8i8,
/* 36703*/            OPC_MoveParent,
/* 36704*/            OPC_MoveParent,
/* 36705*/            OPC_MoveParent,
/* 36706*/            OPC_MoveChild1,
/* 36707*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::VASHR),
/* 36710*/            OPC_CheckChild0Same, 0,
/* 36712*/            OPC_CheckChild1Integer, 15, 
/* 36714*/            OPC_CheckChild1Type, MVT::i32,
/* 36716*/            OPC_MoveParent,
/* 36717*/            OPC_MoveParent,
/* 36718*/            OPC_CheckType, MVT::v8i16,
/* 36720*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv16i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 2, 
                      // Src: (xor:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }), (add:{ *:[v8i16] } (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opA, 8:{ *:[i64] })), (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opB, 8:{ *:[i64] }))), (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }))) - Complexity = 47
                      // Dst: (UABDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$opA, V128:{ *:[v16i8] }:$opB)
/* 36728*/          /*Scope*/ 35, /*->36764*/
/* 36729*/            OPC_RecordChild0, // #1 = $opA
/* 36730*/            OPC_CheckChild0Type, MVT::v8i8,
/* 36732*/            OPC_MoveParent,
/* 36733*/            OPC_MoveChild1,
/* 36734*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36737*/            OPC_RecordChild0, // #2 = $opB
/* 36738*/            OPC_CheckChild0Type, MVT::v8i8,
/* 36740*/            OPC_MoveParent,
/* 36741*/            OPC_MoveParent,
/* 36742*/            OPC_MoveChild1,
/* 36743*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::VASHR),
/* 36746*/            OPC_CheckChild0Same, 0,
/* 36748*/            OPC_CheckChild1Integer, 15, 
/* 36750*/            OPC_CheckChild1Type, MVT::i32,
/* 36752*/            OPC_MoveParent,
/* 36753*/            OPC_MoveParent,
/* 36754*/            OPC_CheckType, MVT::v8i16,
/* 36756*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv8i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 2, 
                      // Src: (xor:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }), (add:{ *:[v8i16] } (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA), (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opB)), (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }))) - Complexity = 31
                      // Dst: (UABDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA, V64:{ *:[v8i8] }:$opB)
/* 36764*/          0, /*End of Scope*/
/* 36765*/        /*SwitchOpcode*/ 85, TARGET_VAL(AArch64ISD::VASHR),// ->36853
/* 36768*/          OPC_CheckChild0Same, 0,
/* 36770*/          OPC_CheckChild1Integer, 15, 
/* 36772*/          OPC_CheckChild1Type, MVT::i32,
/* 36774*/          OPC_MoveParent,
/* 36775*/          OPC_MoveChild1,
/* 36776*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 36779*/          OPC_MoveChild0,
/* 36780*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36783*/          OPC_Scope, 42, /*->36827*/ // 2 children in Scope
/* 36785*/            OPC_MoveChild0,
/* 36786*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 36789*/            OPC_RecordChild0, // #1 = $opA
/* 36790*/            OPC_CheckChild1Integer, 8, 
/* 36792*/            OPC_CheckChild1Type, MVT::i64,
/* 36794*/            OPC_CheckType, MVT::v8i8,
/* 36796*/            OPC_MoveParent,
/* 36797*/            OPC_MoveParent,
/* 36798*/            OPC_MoveChild1,
/* 36799*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36802*/            OPC_MoveChild0,
/* 36803*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 36806*/            OPC_RecordChild0, // #2 = $opB
/* 36807*/            OPC_CheckChild1Integer, 8, 
/* 36809*/            OPC_CheckChild1Type, MVT::i64,
/* 36811*/            OPC_CheckType, MVT::v8i8,
/* 36813*/            OPC_MoveParent,
/* 36814*/            OPC_MoveParent,
/* 36815*/            OPC_MoveParent,
/* 36816*/            OPC_MoveParent,
/* 36817*/            OPC_CheckType, MVT::v8i16,
/* 36819*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv16i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 2, 
                      // Src: (xor:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }), (add:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }), (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opA, 8:{ *:[i64] })), (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opB, 8:{ *:[i64] }))))) - Complexity = 47
                      // Dst: (UABDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$opA, V128:{ *:[v16i8] }:$opB)
/* 36827*/          /*Scope*/ 24, /*->36852*/
/* 36828*/            OPC_RecordChild0, // #1 = $opA
/* 36829*/            OPC_CheckChild0Type, MVT::v8i8,
/* 36831*/            OPC_MoveParent,
/* 36832*/            OPC_MoveChild1,
/* 36833*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36836*/            OPC_RecordChild0, // #2 = $opB
/* 36837*/            OPC_CheckChild0Type, MVT::v8i8,
/* 36839*/            OPC_MoveParent,
/* 36840*/            OPC_MoveParent,
/* 36841*/            OPC_MoveParent,
/* 36842*/            OPC_CheckType, MVT::v8i16,
/* 36844*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv8i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 2, 
                      // Src: (xor:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }), (add:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }), (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA), (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opB)))) - Complexity = 31
                      // Dst: (UABDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA, V64:{ *:[v8i8] }:$opB)
/* 36852*/          0, /*End of Scope*/
/* 36853*/        0, // EndSwitchOpcode
/* 36854*/      /*SwitchOpcode*/ 103|128,1/*231*/, TARGET_VAL(ISD::ADD),// ->37089
/* 36858*/        OPC_MoveChild0,
/* 36859*/        OPC_SwitchOpcode /*2 cases */, 116, TARGET_VAL(ISD::SUB),// ->36979
/* 36863*/          OPC_MoveChild0,
/* 36864*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36867*/          OPC_Scope, 63, /*->36932*/ // 2 children in Scope
/* 36869*/            OPC_MoveChild0,
/* 36870*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 36873*/            OPC_RecordChild0, // #0 = $opA
/* 36874*/            OPC_CheckChild1Integer, 8, 
/* 36876*/            OPC_CheckChild1Type, MVT::i64,
/* 36878*/            OPC_CheckType, MVT::v8i8,
/* 36880*/            OPC_MoveParent,
/* 36881*/            OPC_MoveParent,
/* 36882*/            OPC_MoveChild1,
/* 36883*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36886*/            OPC_MoveChild0,
/* 36887*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 36890*/            OPC_RecordChild0, // #1 = $opB
/* 36891*/            OPC_CheckChild1Integer, 8, 
/* 36893*/            OPC_CheckChild1Type, MVT::i64,
/* 36895*/            OPC_CheckType, MVT::v8i8,
/* 36897*/            OPC_MoveParent,
/* 36898*/            OPC_MoveParent,
/* 36899*/            OPC_MoveParent,
/* 36900*/            OPC_MoveChild1,
/* 36901*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::VASHR),
/* 36904*/            OPC_RecordChild0, // #2 = $src
/* 36905*/            OPC_CheckChild1Integer, 15, 
/* 36907*/            OPC_CheckChild1Type, MVT::i32,
/* 36909*/            OPC_MoveParent,
/* 36910*/            OPC_MoveParent,
/* 36911*/            OPC_MoveChild1,
/* 36912*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::VASHR),
/* 36915*/            OPC_CheckChild0Same, 2,
/* 36917*/            OPC_CheckChild1Integer, 15, 
/* 36919*/            OPC_CheckChild1Type, MVT::i32,
/* 36921*/            OPC_MoveParent,
/* 36922*/            OPC_CheckType, MVT::v8i16,
/* 36924*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv16i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v8i16] } (add:{ *:[v8i16] } (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opA, 8:{ *:[i64] })), (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opB, 8:{ *:[i64] }))), (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] })), (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] })) - Complexity = 47
                      // Dst: (UABDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$opA, V128:{ *:[v16i8] }:$opB)
/* 36932*/          /*Scope*/ 45, /*->36978*/
/* 36933*/            OPC_RecordChild0, // #0 = $opA
/* 36934*/            OPC_CheckChild0Type, MVT::v8i8,
/* 36936*/            OPC_MoveParent,
/* 36937*/            OPC_MoveChild1,
/* 36938*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36941*/            OPC_RecordChild0, // #1 = $opB
/* 36942*/            OPC_CheckChild0Type, MVT::v8i8,
/* 36944*/            OPC_MoveParent,
/* 36945*/            OPC_MoveParent,
/* 36946*/            OPC_MoveChild1,
/* 36947*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::VASHR),
/* 36950*/            OPC_RecordChild0, // #2 = $src
/* 36951*/            OPC_CheckChild1Integer, 15, 
/* 36953*/            OPC_CheckChild1Type, MVT::i32,
/* 36955*/            OPC_MoveParent,
/* 36956*/            OPC_MoveParent,
/* 36957*/            OPC_MoveChild1,
/* 36958*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::VASHR),
/* 36961*/            OPC_CheckChild0Same, 2,
/* 36963*/            OPC_CheckChild1Integer, 15, 
/* 36965*/            OPC_CheckChild1Type, MVT::i32,
/* 36967*/            OPC_MoveParent,
/* 36968*/            OPC_CheckType, MVT::v8i16,
/* 36970*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv8i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v8i16] } (add:{ *:[v8i16] } (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA), (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opB)), (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] })), (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] })) - Complexity = 31
                      // Dst: (UABDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA, V64:{ *:[v8i8] }:$opB)
/* 36978*/          0, /*End of Scope*/
/* 36979*/        /*SwitchOpcode*/ 106, TARGET_VAL(AArch64ISD::VASHR),// ->37088
/* 36982*/          OPC_RecordChild0, // #0 = $src
/* 36983*/          OPC_CheckChild1Integer, 15, 
/* 36985*/          OPC_CheckChild1Type, MVT::i32,
/* 36987*/          OPC_MoveParent,
/* 36988*/          OPC_MoveChild1,
/* 36989*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 36992*/          OPC_MoveChild0,
/* 36993*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 36996*/          OPC_Scope, 53, /*->37051*/ // 2 children in Scope
/* 36998*/            OPC_MoveChild0,
/* 36999*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 37002*/            OPC_RecordChild0, // #1 = $opA
/* 37003*/            OPC_CheckChild1Integer, 8, 
/* 37005*/            OPC_CheckChild1Type, MVT::i64,
/* 37007*/            OPC_CheckType, MVT::v8i8,
/* 37009*/            OPC_MoveParent,
/* 37010*/            OPC_MoveParent,
/* 37011*/            OPC_MoveChild1,
/* 37012*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 37015*/            OPC_MoveChild0,
/* 37016*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 37019*/            OPC_RecordChild0, // #2 = $opB
/* 37020*/            OPC_CheckChild1Integer, 8, 
/* 37022*/            OPC_CheckChild1Type, MVT::i64,
/* 37024*/            OPC_CheckType, MVT::v8i8,
/* 37026*/            OPC_MoveParent,
/* 37027*/            OPC_MoveParent,
/* 37028*/            OPC_MoveParent,
/* 37029*/            OPC_MoveParent,
/* 37030*/            OPC_MoveChild1,
/* 37031*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::VASHR),
/* 37034*/            OPC_CheckChild0Same, 0,
/* 37036*/            OPC_CheckChild1Integer, 15, 
/* 37038*/            OPC_CheckChild1Type, MVT::i32,
/* 37040*/            OPC_MoveParent,
/* 37041*/            OPC_CheckType, MVT::v8i16,
/* 37043*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv16i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 2, 
                      // Src: (xor:{ *:[v8i16] } (add:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }), (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opA, 8:{ *:[i64] })), (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opB, 8:{ *:[i64] })))), (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] })) - Complexity = 47
                      // Dst: (UABDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$opA, V128:{ *:[v16i8] }:$opB)
/* 37051*/          /*Scope*/ 35, /*->37087*/
/* 37052*/            OPC_RecordChild0, // #1 = $opA
/* 37053*/            OPC_CheckChild0Type, MVT::v8i8,
/* 37055*/            OPC_MoveParent,
/* 37056*/            OPC_MoveChild1,
/* 37057*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 37060*/            OPC_RecordChild0, // #2 = $opB
/* 37061*/            OPC_CheckChild0Type, MVT::v8i8,
/* 37063*/            OPC_MoveParent,
/* 37064*/            OPC_MoveParent,
/* 37065*/            OPC_MoveParent,
/* 37066*/            OPC_MoveChild1,
/* 37067*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::VASHR),
/* 37070*/            OPC_CheckChild0Same, 0,
/* 37072*/            OPC_CheckChild1Integer, 15, 
/* 37074*/            OPC_CheckChild1Type, MVT::i32,
/* 37076*/            OPC_MoveParent,
/* 37077*/            OPC_CheckType, MVT::v8i16,
/* 37079*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv8i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 2, 
                      // Src: (xor:{ *:[v8i16] } (add:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] }), (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA), (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opB))), (AArch64vashr:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src, 15:{ *:[i32] })) - Complexity = 31
                      // Dst: (UABDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA, V64:{ *:[v8i8] }:$opB)
/* 37087*/          0, /*End of Scope*/
/* 37088*/        0, // EndSwitchOpcode
/* 37089*/      0, // EndSwitchOpcode
/* 37090*/    /*Scope*/ 77, /*->37168*/
/* 37091*/      OPC_RecordChild0, // #0 = $Rn
/* 37092*/      OPC_MoveChild1,
/* 37093*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37096*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37098*/      OPC_MoveParent,
/* 37099*/      OPC_SwitchType /*7 cases */, 9, MVT::v8i8,// ->37111
/* 37102*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37104*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (NOTv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 37111*/      /*SwitchType*/ 9, MVT::v16i8,// ->37122
/* 37113*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37115*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (NOTv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 37122*/      /*SwitchType*/ 7, MVT::v4i16,// ->37131
/* 37124*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (NOTv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 37131*/      /*SwitchType*/ 7, MVT::v8i16,// ->37140
/* 37133*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (NOTv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 37140*/      /*SwitchType*/ 7, MVT::v2i32,// ->37149
/* 37142*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (NOTv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 37149*/      /*SwitchType*/ 7, MVT::v4i32,// ->37158
/* 37151*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (NOTv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 37158*/      /*SwitchType*/ 7, MVT::v2i64,// ->37167
/* 37160*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>) - Complexity = 7
                  // Dst: (NOTv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 37167*/      0, // EndSwitchType
/* 37168*/    /*Scope*/ 77, /*->37246*/
/* 37169*/      OPC_MoveChild0,
/* 37170*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37173*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37175*/      OPC_MoveParent,
/* 37176*/      OPC_RecordChild1, // #0 = $Rn
/* 37177*/      OPC_SwitchType /*7 cases */, 9, MVT::v8i8,// ->37189
/* 37180*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37182*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rn) - Complexity = 7
                  // Dst: (NOTv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 37189*/      /*SwitchType*/ 9, MVT::v16i8,// ->37200
/* 37191*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37193*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rn) - Complexity = 7
                  // Dst: (NOTv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 37200*/      /*SwitchType*/ 7, MVT::v4i16,// ->37209
/* 37202*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$Rn) - Complexity = 7
                  // Dst: (NOTv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 37209*/      /*SwitchType*/ 7, MVT::v8i16,// ->37218
/* 37211*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$Rn) - Complexity = 7
                  // Dst: (NOTv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 37218*/      /*SwitchType*/ 7, MVT::v2i32,// ->37227
/* 37220*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$Rn) - Complexity = 7
                  // Dst: (NOTv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 37227*/      /*SwitchType*/ 7, MVT::v4i32,// ->37236
/* 37229*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$Rn) - Complexity = 7
                  // Dst: (NOTv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 37236*/      /*SwitchType*/ 7, MVT::v2i64,// ->37245
/* 37238*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$Rn) - Complexity = 7
                  // Dst: (NOTv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 37245*/      0, // EndSwitchType
/* 37246*/    /*Scope*/ 100, /*->37347*/
/* 37247*/      OPC_RecordChild0, // #0 = $Rn
/* 37248*/      OPC_RecordChild1, // #1 = $Rm
/* 37249*/      OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->37262
/* 37252*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37254*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                  // Dst: (EORv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 37262*/      /*SwitchType*/ 10, MVT::v16i8,// ->37274
/* 37264*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37266*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                  // Dst: (EORv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 37274*/      /*SwitchType*/ 10, MVT::v4i16,// ->37286
/* 37276*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37278*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORv8i8), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS) - Complexity = 3
                  // Dst: (EORv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 37286*/      /*SwitchType*/ 10, MVT::v2i32,// ->37298
/* 37288*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37290*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORv8i8), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS) - Complexity = 3
                  // Dst: (EORv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 37298*/      /*SwitchType*/ 10, MVT::v1i64,// ->37310
/* 37300*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37302*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORv8i8), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS) - Complexity = 3
                  // Dst: (EORv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 37310*/      /*SwitchType*/ 10, MVT::v8i16,// ->37322
/* 37312*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37314*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORv16i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS) - Complexity = 3
                  // Dst: (EORv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 37322*/      /*SwitchType*/ 10, MVT::v4i32,// ->37334
/* 37324*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37326*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORv16i8), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS) - Complexity = 3
                  // Dst: (EORv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 37334*/      /*SwitchType*/ 10, MVT::v2i64,// ->37346
/* 37336*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37338*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::EORv16i8), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS) - Complexity = 3
                  // Dst: (EORv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 37346*/      0, // EndSwitchType
/* 37347*/    0, /*End of Scope*/
/* 37348*/  /*SwitchOpcode*/ 23|128,38/*4887*/, TARGET_VAL(ISD::OR),// ->42239
/* 37352*/    OPC_Scope, 48, /*->37402*/ // 23 children in Scope
/* 37354*/      OPC_RecordChild0, // #0 = $Rn
/* 37355*/      OPC_MoveChild1,
/* 37356*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 37359*/      OPC_RecordChild0, // #1 = $Rm
/* 37360*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 37371*/      OPC_MoveParent,
/* 37372*/      OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->37387
/* 37375*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 37378*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNWrs), 0,
                      MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (or:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 20
                  // Dst: (ORNWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 37387*/      /*SwitchType*/ 12, MVT::i64,// ->37401
/* 37389*/        OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 37392*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNXrs), 0,
                      MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (or:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, -1:{ *:[i64] })) - Complexity = 20
                  // Dst: (ORNXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 37401*/      0, // EndSwitchType
/* 37402*/    /*Scope*/ 48, /*->37451*/
/* 37403*/      OPC_MoveChild0,
/* 37404*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 37407*/      OPC_RecordChild0, // #0 = $Rm
/* 37408*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 37419*/      OPC_MoveParent,
/* 37420*/      OPC_RecordChild1, // #1 = $Rn
/* 37421*/      OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->37436
/* 37424*/        OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 37427*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNWrs), 0,
                      MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (or:{ *:[i32] } (xor:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn) - Complexity = 20
                  // Dst: (ORNWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 37436*/      /*SwitchType*/ 12, MVT::i64,// ->37450
/* 37438*/        OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 37441*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNXrs), 0,
                      MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (or:{ *:[i64] } (xor:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn) - Complexity = 20
                  // Dst: (ORNXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 37450*/      0, // EndSwitchType
/* 37451*/    /*Scope*/ 26|128,1/*154*/, /*->37607*/
/* 37453*/      OPC_RecordChild0, // #0 = $Rn
/* 37454*/      OPC_Scope, 110, /*->37566*/ // 2 children in Scope
/* 37456*/        OPC_RecordChild1, // #1 = $imm
/* 37457*/        OPC_Scope, 44, /*->37503*/ // 3 children in Scope
/* 37459*/          OPC_MoveChild1,
/* 37460*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37463*/          OPC_Scope, 18, /*->37483*/ // 2 children in Scope
/* 37465*/            OPC_CheckPredicate, 40, // Predicate_logical_imm32
/* 37467*/            OPC_MoveParent,
/* 37468*/            OPC_CheckType, MVT::i32,
/* 37470*/            OPC_EmitConvertToTarget, 1,
/* 37472*/            OPC_EmitNodeXForm, 0, 2, // logical_imm32_XFORM
/* 37475*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRWri), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (or:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_logical_imm32>><<X:logical_imm32_XFORM>>:$imm) - Complexity = 13
                      // Dst: (ORRWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (logical_imm32_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 37483*/          /*Scope*/ 18, /*->37502*/
/* 37484*/            OPC_CheckPredicate, 41, // Predicate_logical_imm64
/* 37486*/            OPC_MoveParent,
/* 37487*/            OPC_CheckType, MVT::i64,
/* 37489*/            OPC_EmitConvertToTarget, 1,
/* 37491*/            OPC_EmitNodeXForm, 1, 2, // logical_imm64_XFORM
/* 37494*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRXri), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (or:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_logical_imm64>><<X:logical_imm64_XFORM>>:$imm) - Complexity = 13
                      // Dst: (ORRXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (logical_imm64_XFORM:{ *:[i64] } (imm:{ *:[i64] }):$imm))
/* 37502*/          0, /*End of Scope*/
/* 37503*/        /*Scope*/ 30, /*->37534*/
/* 37504*/          OPC_CheckType, MVT::i32,
/* 37506*/          OPC_Scope, 12, /*->37520*/ // 2 children in Scope
/* 37508*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 37511*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRWrs), 0,
                          MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (or:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 12
                      // Dst: (ORRWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 37520*/          /*Scope*/ 12, /*->37533*/
/* 37521*/            OPC_CheckComplexPat, /*CP*/28, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 37524*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRWrs), 0,
                          MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (or:{ *:[i32] } logical_shifted_reg32:{ *:[i32] }:$Rm, GPR32:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (ORRWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, logical_shifted_reg32:{ *:[i32] }:$Rm)
/* 37533*/          0, /*End of Scope*/
/* 37534*/        /*Scope*/ 30, /*->37565*/
/* 37535*/          OPC_CheckType, MVT::i64,
/* 37537*/          OPC_Scope, 12, /*->37551*/ // 2 children in Scope
/* 37539*/            OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 37542*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRXrs), 0,
                          MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (or:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 12
                      // Dst: (ORRXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 37551*/          /*Scope*/ 12, /*->37564*/
/* 37552*/            OPC_CheckComplexPat, /*CP*/29, /*#*/0, // SelectLogicalShiftedRegister:$Rm #2 #3
/* 37555*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRXrs), 0,
                          MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (or:{ *:[i64] } logical_shifted_reg64:{ *:[i64] }:$Rm, GPR64:{ *:[i64] }:$Rn) - Complexity = 12
                      // Dst: (ORRXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, logical_shifted_reg64:{ *:[i64] }:$Rm)
/* 37564*/          0, /*End of Scope*/
/* 37565*/        0, /*End of Scope*/
/* 37566*/      /*Scope*/ 39, /*->37606*/
/* 37567*/        OPC_MoveChild1,
/* 37568*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 37571*/        OPC_RecordChild0, // #1 = $Rm
/* 37572*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 37583*/        OPC_MoveParent,
/* 37584*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->37595
/* 37587*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, -1:{ *:[i32] })) - Complexity = 11
                    // Dst: (ORNWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 37595*/        /*SwitchType*/ 8, MVT::i64,// ->37605
/* 37597*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNXrr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, -1:{ *:[i64] })) - Complexity = 11
                    // Dst: (ORNXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 37605*/        0, // EndSwitchType
/* 37606*/      0, /*End of Scope*/
/* 37607*/    /*Scope*/ 40, /*->37648*/
/* 37608*/      OPC_MoveChild0,
/* 37609*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 37612*/      OPC_RecordChild0, // #0 = $Rm
/* 37613*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 37624*/      OPC_MoveParent,
/* 37625*/      OPC_RecordChild1, // #1 = $Rn
/* 37626*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->37637
/* 37629*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNWrr), 0,
                      MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn) - Complexity = 11
                  // Dst: (ORNWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 37637*/      /*SwitchType*/ 8, MVT::i64,// ->37647
/* 37639*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNXrr), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn) - Complexity = 11
                  // Dst: (ORNXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 37647*/      0, // EndSwitchType
/* 37648*/    /*Scope*/ 24, /*->37673*/
/* 37649*/      OPC_RecordChild0, // #0 = $Rn
/* 37650*/      OPC_RecordChild1, // #1 = $Rm
/* 37651*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->37662
/* 37654*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRWrr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (ORRWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 37662*/      /*SwitchType*/ 8, MVT::i64,// ->37672
/* 37664*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRXrr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                  // Dst: (ORRXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 37672*/      0, // EndSwitchType
/* 37673*/    /*Scope*/ 126|128,28/*3710*/, /*->41385*/
/* 37675*/      OPC_MoveChild0,
/* 37676*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 37679*/      OPC_Scope, 81|128,2/*337*/, /*->38019*/ // 17 children in Scope
/* 37682*/        OPC_RecordChild0, // #0 = $Rd
/* 37683*/        OPC_RecordChild1, // #1 = $Rn
/* 37684*/        OPC_MoveParent,
/* 37685*/        OPC_MoveChild1,
/* 37686*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 37689*/        OPC_Scope, 23|128,1/*151*/, /*->37843*/ // 4 children in Scope
/* 37692*/          OPC_MoveChild0,
/* 37693*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 37696*/          OPC_Scope, 118, /*->37816*/ // 2 children in Scope
/* 37698*/            OPC_CheckChild0Same, 0,
/* 37700*/            OPC_MoveChild1,
/* 37701*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37704*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37706*/            OPC_MoveParent,
/* 37707*/            OPC_MoveParent,
/* 37708*/            OPC_RecordChild1, // #2 = $Rm
/* 37709*/            OPC_MoveParent,
/* 37710*/            OPC_SwitchType /*8 cases */, 11, MVT::v8i8,// ->37724
/* 37713*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37715*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn), (and:{ *:[v8i8] } (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v8i8] }:$Rm)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 37724*/            /*SwitchType*/ 11, MVT::v16i8,// ->37737
/* 37726*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37728*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn), (and:{ *:[v16i8] } (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v16i8] }:$Rm)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 37737*/            /*SwitchType*/ 11, MVT::v4i16,// ->37750
/* 37739*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37741*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS), (and:{ *:[v4i16] } (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v4i16] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 37750*/            /*SwitchType*/ 11, MVT::v2i32,// ->37763
/* 37752*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37754*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS), (and:{ *:[v2i32] } (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v2i32] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 37763*/            /*SwitchType*/ 11, MVT::v1i64,// ->37776
/* 37765*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37767*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS), (and:{ *:[v1i64] } (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v1i64] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 37776*/            /*SwitchType*/ 11, MVT::v8i16,// ->37789
/* 37778*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37780*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS), (and:{ *:[v8i16] } (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v8i16] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 37789*/            /*SwitchType*/ 11, MVT::v4i32,// ->37802
/* 37791*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37793*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v4i32] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 37802*/            /*SwitchType*/ 11, MVT::v2i64,// ->37815
/* 37804*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37806*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS), (and:{ *:[v2i64] } (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v2i64] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 37815*/            0, // EndSwitchType
/* 37816*/          /*Scope*/ 25, /*->37842*/
/* 37817*/            OPC_MoveChild0,
/* 37818*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37821*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37823*/            OPC_MoveParent,
/* 37824*/            OPC_CheckChild1Same, 0,
/* 37826*/            OPC_MoveParent,
/* 37827*/            OPC_RecordChild1, // #2 = $Rm
/* 37828*/            OPC_MoveParent,
/* 37829*/            OPC_CheckType, MVT::v8i8,
/* 37831*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37833*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn), (and:{ *:[v8i8] } (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rd), V64:{ *:[v8i8] }:$Rm)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 37842*/          0, /*End of Scope*/
/* 37843*/        /*Scope*/ 57, /*->37901*/
/* 37844*/          OPC_RecordChild0, // #2 = $Rm
/* 37845*/          OPC_MoveChild1,
/* 37846*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 37849*/          OPC_Scope, 24, /*->37875*/ // 2 children in Scope
/* 37851*/            OPC_CheckChild0Same, 0,
/* 37853*/            OPC_MoveChild1,
/* 37854*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37857*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37859*/            OPC_MoveParent,
/* 37860*/            OPC_MoveParent,
/* 37861*/            OPC_MoveParent,
/* 37862*/            OPC_CheckType, MVT::v8i8,
/* 37864*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37866*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 37875*/          /*Scope*/ 24, /*->37900*/
/* 37876*/            OPC_MoveChild0,
/* 37877*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37880*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37882*/            OPC_MoveParent,
/* 37883*/            OPC_CheckChild1Same, 0,
/* 37885*/            OPC_MoveParent,
/* 37886*/            OPC_MoveParent,
/* 37887*/            OPC_CheckType, MVT::v8i8,
/* 37889*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37891*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rd))) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 37900*/          0, /*End of Scope*/
/* 37901*/        /*Scope*/ 58, /*->37960*/
/* 37902*/          OPC_MoveChild0,
/* 37903*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 37906*/          OPC_Scope, 25, /*->37933*/ // 2 children in Scope
/* 37908*/            OPC_CheckChild0Same, 1,
/* 37910*/            OPC_MoveChild1,
/* 37911*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37914*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37916*/            OPC_MoveParent,
/* 37917*/            OPC_MoveParent,
/* 37918*/            OPC_RecordChild1, // #2 = $Rm
/* 37919*/            OPC_MoveParent,
/* 37920*/            OPC_CheckType, MVT::v8i8,
/* 37922*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37924*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rd), (and:{ *:[v8i8] } (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v8i8] }:$Rm)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 37933*/          /*Scope*/ 25, /*->37959*/
/* 37934*/            OPC_MoveChild0,
/* 37935*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37938*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37940*/            OPC_MoveParent,
/* 37941*/            OPC_CheckChild1Same, 1,
/* 37943*/            OPC_MoveParent,
/* 37944*/            OPC_RecordChild1, // #2 = $Rm
/* 37945*/            OPC_MoveParent,
/* 37946*/            OPC_CheckType, MVT::v8i8,
/* 37948*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37950*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rd), (and:{ *:[v8i8] } (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rd), V64:{ *:[v8i8] }:$Rm)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 37959*/          0, /*End of Scope*/
/* 37960*/        /*Scope*/ 57, /*->38018*/
/* 37961*/          OPC_RecordChild0, // #2 = $Rm
/* 37962*/          OPC_MoveChild1,
/* 37963*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 37966*/          OPC_Scope, 24, /*->37992*/ // 2 children in Scope
/* 37968*/            OPC_CheckChild0Same, 1,
/* 37970*/            OPC_MoveChild1,
/* 37971*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37974*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37976*/            OPC_MoveParent,
/* 37977*/            OPC_MoveParent,
/* 37978*/            OPC_MoveParent,
/* 37979*/            OPC_CheckType, MVT::v8i8,
/* 37981*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 37983*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rd), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 37992*/          /*Scope*/ 24, /*->38017*/
/* 37993*/            OPC_MoveChild0,
/* 37994*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 37997*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 37999*/            OPC_MoveParent,
/* 38000*/            OPC_CheckChild1Same, 1,
/* 38002*/            OPC_MoveParent,
/* 38003*/            OPC_MoveParent,
/* 38004*/            OPC_CheckType, MVT::v8i8,
/* 38006*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38008*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rd), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rd))) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38017*/          0, /*End of Scope*/
/* 38018*/        0, /*End of Scope*/
/* 38019*/      /*Scope*/ 114, /*->38134*/
/* 38020*/        OPC_MoveChild0,
/* 38021*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38024*/        OPC_Scope, 53, /*->38079*/ // 2 children in Scope
/* 38026*/          OPC_RecordChild0, // #0 = $Rd
/* 38027*/          OPC_MoveChild1,
/* 38028*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38031*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38033*/          OPC_MoveParent,
/* 38034*/          OPC_MoveParent,
/* 38035*/          OPC_RecordChild1, // #1 = $Rm
/* 38036*/          OPC_MoveParent,
/* 38037*/          OPC_MoveChild1,
/* 38038*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38041*/          OPC_Scope, 17, /*->38060*/ // 2 children in Scope
/* 38043*/            OPC_CheckChild0Same, 0,
/* 38045*/            OPC_RecordChild1, // #2 = $Rn
/* 38046*/            OPC_MoveParent,
/* 38047*/            OPC_CheckType, MVT::v8i8,
/* 38049*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38051*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v8i8] }:$Rm), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38060*/          /*Scope*/ 17, /*->38078*/
/* 38061*/            OPC_RecordChild0, // #2 = $Rn
/* 38062*/            OPC_CheckChild1Same, 0,
/* 38064*/            OPC_MoveParent,
/* 38065*/            OPC_CheckType, MVT::v8i8,
/* 38067*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38069*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v8i8] }:$Rm), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rd)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38078*/          0, /*End of Scope*/
/* 38079*/        /*Scope*/ 53, /*->38133*/
/* 38080*/          OPC_MoveChild0,
/* 38081*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38084*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38086*/          OPC_MoveParent,
/* 38087*/          OPC_RecordChild1, // #0 = $Rd
/* 38088*/          OPC_MoveParent,
/* 38089*/          OPC_RecordChild1, // #1 = $Rm
/* 38090*/          OPC_MoveParent,
/* 38091*/          OPC_MoveChild1,
/* 38092*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38095*/          OPC_Scope, 17, /*->38114*/ // 2 children in Scope
/* 38097*/            OPC_CheckChild0Same, 0,
/* 38099*/            OPC_RecordChild1, // #2 = $Rn
/* 38100*/            OPC_MoveParent,
/* 38101*/            OPC_CheckType, MVT::v8i8,
/* 38103*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38105*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rd), V64:{ *:[v8i8] }:$Rm), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38114*/          /*Scope*/ 17, /*->38132*/
/* 38115*/            OPC_RecordChild0, // #2 = $Rn
/* 38116*/            OPC_CheckChild1Same, 0,
/* 38118*/            OPC_MoveParent,
/* 38119*/            OPC_CheckType, MVT::v8i8,
/* 38121*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38123*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rd), V64:{ *:[v8i8] }:$Rm), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rd)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38132*/          0, /*End of Scope*/
/* 38133*/        0, /*End of Scope*/
/* 38134*/      /*Scope*/ 75|128,2/*331*/, /*->38467*/
/* 38136*/        OPC_RecordChild0, // #0 = $Rm
/* 38137*/        OPC_Scope, 112, /*->38251*/ // 2 children in Scope
/* 38139*/          OPC_MoveChild1,
/* 38140*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38143*/          OPC_Scope, 52, /*->38197*/ // 2 children in Scope
/* 38145*/            OPC_RecordChild0, // #1 = $Rd
/* 38146*/            OPC_MoveChild1,
/* 38147*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38150*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38152*/            OPC_MoveParent,
/* 38153*/            OPC_MoveParent,
/* 38154*/            OPC_MoveParent,
/* 38155*/            OPC_MoveChild1,
/* 38156*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38159*/            OPC_Scope, 17, /*->38178*/ // 2 children in Scope
/* 38161*/              OPC_CheckChild0Same, 1,
/* 38163*/              OPC_RecordChild1, // #2 = $Rn
/* 38164*/              OPC_MoveParent,
/* 38165*/              OPC_CheckType, MVT::v8i8,
/* 38167*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38169*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v8i8, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38178*/            /*Scope*/ 17, /*->38196*/
/* 38179*/              OPC_RecordChild0, // #2 = $Rn
/* 38180*/              OPC_CheckChild1Same, 1,
/* 38182*/              OPC_MoveParent,
/* 38183*/              OPC_CheckType, MVT::v8i8,
/* 38185*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38187*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v8i8, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rd)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38196*/            0, /*End of Scope*/
/* 38197*/          /*Scope*/ 52, /*->38250*/
/* 38198*/            OPC_MoveChild0,
/* 38199*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38202*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38204*/            OPC_MoveParent,
/* 38205*/            OPC_RecordChild1, // #1 = $Rd
/* 38206*/            OPC_MoveParent,
/* 38207*/            OPC_MoveParent,
/* 38208*/            OPC_MoveChild1,
/* 38209*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38212*/            OPC_Scope, 17, /*->38231*/ // 2 children in Scope
/* 38214*/              OPC_CheckChild0Same, 1,
/* 38216*/              OPC_RecordChild1, // #2 = $Rn
/* 38217*/              OPC_MoveParent,
/* 38218*/              OPC_CheckType, MVT::v8i8,
/* 38220*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38222*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v8i8, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rd)), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38231*/            /*Scope*/ 17, /*->38249*/
/* 38232*/              OPC_RecordChild0, // #2 = $Rn
/* 38233*/              OPC_CheckChild1Same, 1,
/* 38235*/              OPC_MoveParent,
/* 38236*/              OPC_CheckType, MVT::v8i8,
/* 38238*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38240*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v8i8, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rd)), (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rd)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 38249*/            0, /*End of Scope*/
/* 38250*/          0, /*End of Scope*/
/* 38251*/        /*Scope*/ 85|128,1/*213*/, /*->38466*/
/* 38253*/          OPC_RecordChild1, // #1 = $Rn
/* 38254*/          OPC_MoveParent,
/* 38255*/          OPC_MoveChild1,
/* 38256*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38259*/          OPC_Scope, 29, /*->38290*/ // 4 children in Scope
/* 38261*/            OPC_MoveChild0,
/* 38262*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38265*/            OPC_MoveChild0,
/* 38266*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38269*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38271*/            OPC_MoveParent,
/* 38272*/            OPC_CheckChild1Same, 0,
/* 38274*/            OPC_MoveParent,
/* 38275*/            OPC_RecordChild1, // #2 = $Rm
/* 38276*/            OPC_MoveParent,
/* 38277*/            OPC_CheckType, MVT::v16i8,
/* 38279*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38281*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn), (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rd), V128:{ *:[v16i8] }:$Rm)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38290*/          /*Scope*/ 57, /*->38348*/
/* 38291*/            OPC_RecordChild0, // #2 = $Rm
/* 38292*/            OPC_MoveChild1,
/* 38293*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38296*/            OPC_Scope, 24, /*->38322*/ // 2 children in Scope
/* 38298*/              OPC_CheckChild0Same, 0,
/* 38300*/              OPC_MoveChild1,
/* 38301*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38304*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38306*/              OPC_MoveParent,
/* 38307*/              OPC_MoveParent,
/* 38308*/              OPC_MoveParent,
/* 38309*/              OPC_CheckType, MVT::v16i8,
/* 38311*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38313*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38322*/            /*Scope*/ 24, /*->38347*/
/* 38323*/              OPC_MoveChild0,
/* 38324*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38327*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38329*/              OPC_MoveParent,
/* 38330*/              OPC_CheckChild1Same, 0,
/* 38332*/              OPC_MoveParent,
/* 38333*/              OPC_MoveParent,
/* 38334*/              OPC_CheckType, MVT::v16i8,
/* 38336*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38338*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rd))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38347*/            0, /*End of Scope*/
/* 38348*/          /*Scope*/ 58, /*->38407*/
/* 38349*/            OPC_MoveChild0,
/* 38350*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38353*/            OPC_Scope, 25, /*->38380*/ // 2 children in Scope
/* 38355*/              OPC_CheckChild0Same, 1,
/* 38357*/              OPC_MoveChild1,
/* 38358*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38361*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38363*/              OPC_MoveParent,
/* 38364*/              OPC_MoveParent,
/* 38365*/              OPC_RecordChild1, // #2 = $Rm
/* 38366*/              OPC_MoveParent,
/* 38367*/              OPC_CheckType, MVT::v16i8,
/* 38369*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38371*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rd), (and:{ *:[v16i8] } (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v16i8] }:$Rm)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38380*/            /*Scope*/ 25, /*->38406*/
/* 38381*/              OPC_MoveChild0,
/* 38382*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38385*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38387*/              OPC_MoveParent,
/* 38388*/              OPC_CheckChild1Same, 1,
/* 38390*/              OPC_MoveParent,
/* 38391*/              OPC_RecordChild1, // #2 = $Rm
/* 38392*/              OPC_MoveParent,
/* 38393*/              OPC_CheckType, MVT::v16i8,
/* 38395*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38397*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rd), (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rd), V128:{ *:[v16i8] }:$Rm)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38406*/            0, /*End of Scope*/
/* 38407*/          /*Scope*/ 57, /*->38465*/
/* 38408*/            OPC_RecordChild0, // #2 = $Rm
/* 38409*/            OPC_MoveChild1,
/* 38410*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38413*/            OPC_Scope, 24, /*->38439*/ // 2 children in Scope
/* 38415*/              OPC_CheckChild0Same, 1,
/* 38417*/              OPC_MoveChild1,
/* 38418*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38421*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38423*/              OPC_MoveParent,
/* 38424*/              OPC_MoveParent,
/* 38425*/              OPC_MoveParent,
/* 38426*/              OPC_CheckType, MVT::v16i8,
/* 38428*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38430*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rd), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38439*/            /*Scope*/ 24, /*->38464*/
/* 38440*/              OPC_MoveChild0,
/* 38441*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38444*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38446*/              OPC_MoveParent,
/* 38447*/              OPC_CheckChild1Same, 1,
/* 38449*/              OPC_MoveParent,
/* 38450*/              OPC_MoveParent,
/* 38451*/              OPC_CheckType, MVT::v16i8,
/* 38453*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38455*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rd), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rd))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38464*/            0, /*End of Scope*/
/* 38465*/          0, /*End of Scope*/
/* 38466*/        0, /*End of Scope*/
/* 38467*/      /*Scope*/ 114, /*->38582*/
/* 38468*/        OPC_MoveChild0,
/* 38469*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38472*/        OPC_Scope, 53, /*->38527*/ // 2 children in Scope
/* 38474*/          OPC_RecordChild0, // #0 = $Rd
/* 38475*/          OPC_MoveChild1,
/* 38476*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38479*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38481*/          OPC_MoveParent,
/* 38482*/          OPC_MoveParent,
/* 38483*/          OPC_RecordChild1, // #1 = $Rm
/* 38484*/          OPC_MoveParent,
/* 38485*/          OPC_MoveChild1,
/* 38486*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38489*/          OPC_Scope, 17, /*->38508*/ // 2 children in Scope
/* 38491*/            OPC_CheckChild0Same, 0,
/* 38493*/            OPC_RecordChild1, // #2 = $Rn
/* 38494*/            OPC_MoveParent,
/* 38495*/            OPC_CheckType, MVT::v16i8,
/* 38497*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38499*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v16i8] }:$Rm), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38508*/          /*Scope*/ 17, /*->38526*/
/* 38509*/            OPC_RecordChild0, // #2 = $Rn
/* 38510*/            OPC_CheckChild1Same, 0,
/* 38512*/            OPC_MoveParent,
/* 38513*/            OPC_CheckType, MVT::v16i8,
/* 38515*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38517*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v16i8] }:$Rm), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rd)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38526*/          0, /*End of Scope*/
/* 38527*/        /*Scope*/ 53, /*->38581*/
/* 38528*/          OPC_MoveChild0,
/* 38529*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38532*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38534*/          OPC_MoveParent,
/* 38535*/          OPC_RecordChild1, // #0 = $Rd
/* 38536*/          OPC_MoveParent,
/* 38537*/          OPC_RecordChild1, // #1 = $Rm
/* 38538*/          OPC_MoveParent,
/* 38539*/          OPC_MoveChild1,
/* 38540*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38543*/          OPC_Scope, 17, /*->38562*/ // 2 children in Scope
/* 38545*/            OPC_CheckChild0Same, 0,
/* 38547*/            OPC_RecordChild1, // #2 = $Rn
/* 38548*/            OPC_MoveParent,
/* 38549*/            OPC_CheckType, MVT::v16i8,
/* 38551*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38553*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rd), V128:{ *:[v16i8] }:$Rm), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38562*/          /*Scope*/ 17, /*->38580*/
/* 38563*/            OPC_RecordChild0, // #2 = $Rn
/* 38564*/            OPC_CheckChild1Same, 0,
/* 38566*/            OPC_MoveParent,
/* 38567*/            OPC_CheckType, MVT::v16i8,
/* 38569*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38571*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rd), V128:{ *:[v16i8] }:$Rm), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rd)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38580*/          0, /*End of Scope*/
/* 38581*/        0, /*End of Scope*/
/* 38582*/      /*Scope*/ 75|128,2/*331*/, /*->38915*/
/* 38584*/        OPC_RecordChild0, // #0 = $Rm
/* 38585*/        OPC_Scope, 112, /*->38699*/ // 2 children in Scope
/* 38587*/          OPC_MoveChild1,
/* 38588*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38591*/          OPC_Scope, 52, /*->38645*/ // 2 children in Scope
/* 38593*/            OPC_RecordChild0, // #1 = $Rd
/* 38594*/            OPC_MoveChild1,
/* 38595*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38598*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38600*/            OPC_MoveParent,
/* 38601*/            OPC_MoveParent,
/* 38602*/            OPC_MoveParent,
/* 38603*/            OPC_MoveChild1,
/* 38604*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38607*/            OPC_Scope, 17, /*->38626*/ // 2 children in Scope
/* 38609*/              OPC_CheckChild0Same, 1,
/* 38611*/              OPC_RecordChild1, // #2 = $Rn
/* 38612*/              OPC_MoveParent,
/* 38613*/              OPC_CheckType, MVT::v16i8,
/* 38615*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38617*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38626*/            /*Scope*/ 17, /*->38644*/
/* 38627*/              OPC_RecordChild0, // #2 = $Rn
/* 38628*/              OPC_CheckChild1Same, 1,
/* 38630*/              OPC_MoveParent,
/* 38631*/              OPC_CheckType, MVT::v16i8,
/* 38633*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38635*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rd)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38644*/            0, /*End of Scope*/
/* 38645*/          /*Scope*/ 52, /*->38698*/
/* 38646*/            OPC_MoveChild0,
/* 38647*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38650*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38652*/            OPC_MoveParent,
/* 38653*/            OPC_RecordChild1, // #1 = $Rd
/* 38654*/            OPC_MoveParent,
/* 38655*/            OPC_MoveParent,
/* 38656*/            OPC_MoveChild1,
/* 38657*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38660*/            OPC_Scope, 17, /*->38679*/ // 2 children in Scope
/* 38662*/              OPC_CheckChild0Same, 1,
/* 38664*/              OPC_RecordChild1, // #2 = $Rn
/* 38665*/              OPC_MoveParent,
/* 38666*/              OPC_CheckType, MVT::v16i8,
/* 38668*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38670*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rd)), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38679*/            /*Scope*/ 17, /*->38697*/
/* 38680*/              OPC_RecordChild0, // #2 = $Rn
/* 38681*/              OPC_CheckChild1Same, 1,
/* 38683*/              OPC_MoveParent,
/* 38684*/              OPC_CheckType, MVT::v16i8,
/* 38686*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38688*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rd)), (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rd)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 38697*/            0, /*End of Scope*/
/* 38698*/          0, /*End of Scope*/
/* 38699*/        /*Scope*/ 85|128,1/*213*/, /*->38914*/
/* 38701*/          OPC_RecordChild1, // #1 = $MHS
/* 38702*/          OPC_MoveParent,
/* 38703*/          OPC_MoveChild1,
/* 38704*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38707*/          OPC_Scope, 29, /*->38738*/ // 4 children in Scope
/* 38709*/            OPC_MoveChild0,
/* 38710*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38713*/            OPC_MoveChild0,
/* 38714*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38717*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38719*/            OPC_MoveParent,
/* 38720*/            OPC_CheckChild1Same, 0,
/* 38722*/            OPC_MoveParent,
/* 38723*/            OPC_RecordChild1, // #2 = $RHS
/* 38724*/            OPC_MoveParent,
/* 38725*/            OPC_CheckType, MVT::v4i16,
/* 38727*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38729*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS), (and:{ *:[v4i16] } (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$LHS), V64:{ *:[v4i16] }:$RHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38738*/          /*Scope*/ 57, /*->38796*/
/* 38739*/            OPC_RecordChild0, // #2 = $RHS
/* 38740*/            OPC_MoveChild1,
/* 38741*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38744*/            OPC_Scope, 24, /*->38770*/ // 2 children in Scope
/* 38746*/              OPC_CheckChild0Same, 0,
/* 38748*/              OPC_MoveChild1,
/* 38749*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38752*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38754*/              OPC_MoveParent,
/* 38755*/              OPC_MoveParent,
/* 38756*/              OPC_MoveParent,
/* 38757*/              OPC_CheckType, MVT::v4i16,
/* 38759*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38761*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38770*/            /*Scope*/ 24, /*->38795*/
/* 38771*/              OPC_MoveChild0,
/* 38772*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38775*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38777*/              OPC_MoveParent,
/* 38778*/              OPC_CheckChild1Same, 0,
/* 38780*/              OPC_MoveParent,
/* 38781*/              OPC_MoveParent,
/* 38782*/              OPC_CheckType, MVT::v4i16,
/* 38784*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38786*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38795*/            0, /*End of Scope*/
/* 38796*/          /*Scope*/ 58, /*->38855*/
/* 38797*/            OPC_MoveChild0,
/* 38798*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38801*/            OPC_Scope, 25, /*->38828*/ // 2 children in Scope
/* 38803*/              OPC_CheckChild0Same, 1,
/* 38805*/              OPC_MoveChild1,
/* 38806*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38809*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38811*/              OPC_MoveParent,
/* 38812*/              OPC_MoveParent,
/* 38813*/              OPC_RecordChild1, // #2 = $RHS
/* 38814*/              OPC_MoveParent,
/* 38815*/              OPC_CheckType, MVT::v4i16,
/* 38817*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38819*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$LHS), (and:{ *:[v4i16] } (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v4i16] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38828*/            /*Scope*/ 25, /*->38854*/
/* 38829*/              OPC_MoveChild0,
/* 38830*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38833*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38835*/              OPC_MoveParent,
/* 38836*/              OPC_CheckChild1Same, 1,
/* 38838*/              OPC_MoveParent,
/* 38839*/              OPC_RecordChild1, // #2 = $RHS
/* 38840*/              OPC_MoveParent,
/* 38841*/              OPC_CheckType, MVT::v4i16,
/* 38843*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38845*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$LHS), (and:{ *:[v4i16] } (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$LHS), V64:{ *:[v4i16] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38854*/            0, /*End of Scope*/
/* 38855*/          /*Scope*/ 57, /*->38913*/
/* 38856*/            OPC_RecordChild0, // #2 = $RHS
/* 38857*/            OPC_MoveChild1,
/* 38858*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38861*/            OPC_Scope, 24, /*->38887*/ // 2 children in Scope
/* 38863*/              OPC_CheckChild0Same, 1,
/* 38865*/              OPC_MoveChild1,
/* 38866*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38869*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38871*/              OPC_MoveParent,
/* 38872*/              OPC_MoveParent,
/* 38873*/              OPC_MoveParent,
/* 38874*/              OPC_CheckType, MVT::v4i16,
/* 38876*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38878*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$LHS), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38887*/            /*Scope*/ 24, /*->38912*/
/* 38888*/              OPC_MoveChild0,
/* 38889*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38892*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38894*/              OPC_MoveParent,
/* 38895*/              OPC_CheckChild1Same, 1,
/* 38897*/              OPC_MoveParent,
/* 38898*/              OPC_MoveParent,
/* 38899*/              OPC_CheckType, MVT::v4i16,
/* 38901*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38903*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$LHS), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38912*/            0, /*End of Scope*/
/* 38913*/          0, /*End of Scope*/
/* 38914*/        0, /*End of Scope*/
/* 38915*/      /*Scope*/ 114, /*->39030*/
/* 38916*/        OPC_MoveChild0,
/* 38917*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 38920*/        OPC_Scope, 53, /*->38975*/ // 2 children in Scope
/* 38922*/          OPC_RecordChild0, // #0 = $LHS
/* 38923*/          OPC_MoveChild1,
/* 38924*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38927*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38929*/          OPC_MoveParent,
/* 38930*/          OPC_MoveParent,
/* 38931*/          OPC_RecordChild1, // #1 = $RHS
/* 38932*/          OPC_MoveParent,
/* 38933*/          OPC_MoveChild1,
/* 38934*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38937*/          OPC_Scope, 17, /*->38956*/ // 2 children in Scope
/* 38939*/            OPC_CheckChild0Same, 0,
/* 38941*/            OPC_RecordChild1, // #2 = $MHS
/* 38942*/            OPC_MoveParent,
/* 38943*/            OPC_CheckType, MVT::v4i16,
/* 38945*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38947*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v4i16] }:$RHS), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38956*/          /*Scope*/ 17, /*->38974*/
/* 38957*/            OPC_RecordChild0, // #2 = $MHS
/* 38958*/            OPC_CheckChild1Same, 0,
/* 38960*/            OPC_MoveParent,
/* 38961*/            OPC_CheckType, MVT::v4i16,
/* 38963*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 38965*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v4i16] }:$RHS), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 38974*/          0, /*End of Scope*/
/* 38975*/        /*Scope*/ 53, /*->39029*/
/* 38976*/          OPC_MoveChild0,
/* 38977*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 38980*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 38982*/          OPC_MoveParent,
/* 38983*/          OPC_RecordChild1, // #0 = $LHS
/* 38984*/          OPC_MoveParent,
/* 38985*/          OPC_RecordChild1, // #1 = $RHS
/* 38986*/          OPC_MoveParent,
/* 38987*/          OPC_MoveChild1,
/* 38988*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38991*/          OPC_Scope, 17, /*->39010*/ // 2 children in Scope
/* 38993*/            OPC_CheckChild0Same, 0,
/* 38995*/            OPC_RecordChild1, // #2 = $MHS
/* 38996*/            OPC_MoveParent,
/* 38997*/            OPC_CheckType, MVT::v4i16,
/* 38999*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39001*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$LHS), V64:{ *:[v4i16] }:$RHS), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 39010*/          /*Scope*/ 17, /*->39028*/
/* 39011*/            OPC_RecordChild0, // #2 = $MHS
/* 39012*/            OPC_CheckChild1Same, 0,
/* 39014*/            OPC_MoveParent,
/* 39015*/            OPC_CheckType, MVT::v4i16,
/* 39017*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39019*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$LHS), V64:{ *:[v4i16] }:$RHS), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 39028*/          0, /*End of Scope*/
/* 39029*/        0, /*End of Scope*/
/* 39030*/      /*Scope*/ 75|128,2/*331*/, /*->39363*/
/* 39032*/        OPC_RecordChild0, // #0 = $RHS
/* 39033*/        OPC_Scope, 112, /*->39147*/ // 2 children in Scope
/* 39035*/          OPC_MoveChild1,
/* 39036*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39039*/          OPC_Scope, 52, /*->39093*/ // 2 children in Scope
/* 39041*/            OPC_RecordChild0, // #1 = $LHS
/* 39042*/            OPC_MoveChild1,
/* 39043*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39046*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39048*/            OPC_MoveParent,
/* 39049*/            OPC_MoveParent,
/* 39050*/            OPC_MoveParent,
/* 39051*/            OPC_MoveChild1,
/* 39052*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39055*/            OPC_Scope, 17, /*->39074*/ // 2 children in Scope
/* 39057*/              OPC_CheckChild0Same, 1,
/* 39059*/              OPC_RecordChild1, // #2 = $MHS
/* 39060*/              OPC_MoveParent,
/* 39061*/              OPC_CheckType, MVT::v4i16,
/* 39063*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39065*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 39074*/            /*Scope*/ 17, /*->39092*/
/* 39075*/              OPC_RecordChild0, // #2 = $MHS
/* 39076*/              OPC_CheckChild1Same, 1,
/* 39078*/              OPC_MoveParent,
/* 39079*/              OPC_CheckType, MVT::v4i16,
/* 39081*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39083*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 39092*/            0, /*End of Scope*/
/* 39093*/          /*Scope*/ 52, /*->39146*/
/* 39094*/            OPC_MoveChild0,
/* 39095*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39098*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39100*/            OPC_MoveParent,
/* 39101*/            OPC_RecordChild1, // #1 = $LHS
/* 39102*/            OPC_MoveParent,
/* 39103*/            OPC_MoveParent,
/* 39104*/            OPC_MoveChild1,
/* 39105*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39108*/            OPC_Scope, 17, /*->39127*/ // 2 children in Scope
/* 39110*/              OPC_CheckChild0Same, 1,
/* 39112*/              OPC_RecordChild1, // #2 = $MHS
/* 39113*/              OPC_MoveParent,
/* 39114*/              OPC_CheckType, MVT::v4i16,
/* 39116*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39118*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$LHS)), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 39127*/            /*Scope*/ 17, /*->39145*/
/* 39128*/              OPC_RecordChild0, // #2 = $MHS
/* 39129*/              OPC_CheckChild1Same, 1,
/* 39131*/              OPC_MoveParent,
/* 39132*/              OPC_CheckType, MVT::v4i16,
/* 39134*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39136*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v4i16, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$LHS)), (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 39145*/            0, /*End of Scope*/
/* 39146*/          0, /*End of Scope*/
/* 39147*/        /*Scope*/ 85|128,1/*213*/, /*->39362*/
/* 39149*/          OPC_RecordChild1, // #1 = $MHS
/* 39150*/          OPC_MoveParent,
/* 39151*/          OPC_MoveChild1,
/* 39152*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39155*/          OPC_Scope, 29, /*->39186*/ // 4 children in Scope
/* 39157*/            OPC_MoveChild0,
/* 39158*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39161*/            OPC_MoveChild0,
/* 39162*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39165*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39167*/            OPC_MoveParent,
/* 39168*/            OPC_CheckChild1Same, 0,
/* 39170*/            OPC_MoveParent,
/* 39171*/            OPC_RecordChild1, // #2 = $RHS
/* 39172*/            OPC_MoveParent,
/* 39173*/            OPC_CheckType, MVT::v2i32,
/* 39175*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39177*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS), (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$LHS), V64:{ *:[v2i32] }:$RHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39186*/          /*Scope*/ 57, /*->39244*/
/* 39187*/            OPC_RecordChild0, // #2 = $RHS
/* 39188*/            OPC_MoveChild1,
/* 39189*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39192*/            OPC_Scope, 24, /*->39218*/ // 2 children in Scope
/* 39194*/              OPC_CheckChild0Same, 0,
/* 39196*/              OPC_MoveChild1,
/* 39197*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39200*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39202*/              OPC_MoveParent,
/* 39203*/              OPC_MoveParent,
/* 39204*/              OPC_MoveParent,
/* 39205*/              OPC_CheckType, MVT::v2i32,
/* 39207*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39209*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39218*/            /*Scope*/ 24, /*->39243*/
/* 39219*/              OPC_MoveChild0,
/* 39220*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39223*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39225*/              OPC_MoveParent,
/* 39226*/              OPC_CheckChild1Same, 0,
/* 39228*/              OPC_MoveParent,
/* 39229*/              OPC_MoveParent,
/* 39230*/              OPC_CheckType, MVT::v2i32,
/* 39232*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39234*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39243*/            0, /*End of Scope*/
/* 39244*/          /*Scope*/ 58, /*->39303*/
/* 39245*/            OPC_MoveChild0,
/* 39246*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39249*/            OPC_Scope, 25, /*->39276*/ // 2 children in Scope
/* 39251*/              OPC_CheckChild0Same, 1,
/* 39253*/              OPC_MoveChild1,
/* 39254*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39257*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39259*/              OPC_MoveParent,
/* 39260*/              OPC_MoveParent,
/* 39261*/              OPC_RecordChild1, // #2 = $RHS
/* 39262*/              OPC_MoveParent,
/* 39263*/              OPC_CheckType, MVT::v2i32,
/* 39265*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39267*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$LHS), (and:{ *:[v2i32] } (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v2i32] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39276*/            /*Scope*/ 25, /*->39302*/
/* 39277*/              OPC_MoveChild0,
/* 39278*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39281*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39283*/              OPC_MoveParent,
/* 39284*/              OPC_CheckChild1Same, 1,
/* 39286*/              OPC_MoveParent,
/* 39287*/              OPC_RecordChild1, // #2 = $RHS
/* 39288*/              OPC_MoveParent,
/* 39289*/              OPC_CheckType, MVT::v2i32,
/* 39291*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39293*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$LHS), (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$LHS), V64:{ *:[v2i32] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39302*/            0, /*End of Scope*/
/* 39303*/          /*Scope*/ 57, /*->39361*/
/* 39304*/            OPC_RecordChild0, // #2 = $RHS
/* 39305*/            OPC_MoveChild1,
/* 39306*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39309*/            OPC_Scope, 24, /*->39335*/ // 2 children in Scope
/* 39311*/              OPC_CheckChild0Same, 1,
/* 39313*/              OPC_MoveChild1,
/* 39314*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39317*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39319*/              OPC_MoveParent,
/* 39320*/              OPC_MoveParent,
/* 39321*/              OPC_MoveParent,
/* 39322*/              OPC_CheckType, MVT::v2i32,
/* 39324*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39326*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$LHS), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39335*/            /*Scope*/ 24, /*->39360*/
/* 39336*/              OPC_MoveChild0,
/* 39337*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39340*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39342*/              OPC_MoveParent,
/* 39343*/              OPC_CheckChild1Same, 1,
/* 39345*/              OPC_MoveParent,
/* 39346*/              OPC_MoveParent,
/* 39347*/              OPC_CheckType, MVT::v2i32,
/* 39349*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39351*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$LHS), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39360*/            0, /*End of Scope*/
/* 39361*/          0, /*End of Scope*/
/* 39362*/        0, /*End of Scope*/
/* 39363*/      /*Scope*/ 114, /*->39478*/
/* 39364*/        OPC_MoveChild0,
/* 39365*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39368*/        OPC_Scope, 53, /*->39423*/ // 2 children in Scope
/* 39370*/          OPC_RecordChild0, // #0 = $LHS
/* 39371*/          OPC_MoveChild1,
/* 39372*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39375*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39377*/          OPC_MoveParent,
/* 39378*/          OPC_MoveParent,
/* 39379*/          OPC_RecordChild1, // #1 = $RHS
/* 39380*/          OPC_MoveParent,
/* 39381*/          OPC_MoveChild1,
/* 39382*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39385*/          OPC_Scope, 17, /*->39404*/ // 2 children in Scope
/* 39387*/            OPC_CheckChild0Same, 0,
/* 39389*/            OPC_RecordChild1, // #2 = $MHS
/* 39390*/            OPC_MoveParent,
/* 39391*/            OPC_CheckType, MVT::v2i32,
/* 39393*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39395*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v2i32] }:$RHS), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39404*/          /*Scope*/ 17, /*->39422*/
/* 39405*/            OPC_RecordChild0, // #2 = $MHS
/* 39406*/            OPC_CheckChild1Same, 0,
/* 39408*/            OPC_MoveParent,
/* 39409*/            OPC_CheckType, MVT::v2i32,
/* 39411*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39413*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v2i32] }:$RHS), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39422*/          0, /*End of Scope*/
/* 39423*/        /*Scope*/ 53, /*->39477*/
/* 39424*/          OPC_MoveChild0,
/* 39425*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39428*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39430*/          OPC_MoveParent,
/* 39431*/          OPC_RecordChild1, // #0 = $LHS
/* 39432*/          OPC_MoveParent,
/* 39433*/          OPC_RecordChild1, // #1 = $RHS
/* 39434*/          OPC_MoveParent,
/* 39435*/          OPC_MoveChild1,
/* 39436*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39439*/          OPC_Scope, 17, /*->39458*/ // 2 children in Scope
/* 39441*/            OPC_CheckChild0Same, 0,
/* 39443*/            OPC_RecordChild1, // #2 = $MHS
/* 39444*/            OPC_MoveParent,
/* 39445*/            OPC_CheckType, MVT::v2i32,
/* 39447*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39449*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$LHS), V64:{ *:[v2i32] }:$RHS), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39458*/          /*Scope*/ 17, /*->39476*/
/* 39459*/            OPC_RecordChild0, // #2 = $MHS
/* 39460*/            OPC_CheckChild1Same, 0,
/* 39462*/            OPC_MoveParent,
/* 39463*/            OPC_CheckType, MVT::v2i32,
/* 39465*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39467*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$LHS), V64:{ *:[v2i32] }:$RHS), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39476*/          0, /*End of Scope*/
/* 39477*/        0, /*End of Scope*/
/* 39478*/      /*Scope*/ 75|128,2/*331*/, /*->39811*/
/* 39480*/        OPC_RecordChild0, // #0 = $RHS
/* 39481*/        OPC_Scope, 112, /*->39595*/ // 2 children in Scope
/* 39483*/          OPC_MoveChild1,
/* 39484*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39487*/          OPC_Scope, 52, /*->39541*/ // 2 children in Scope
/* 39489*/            OPC_RecordChild0, // #1 = $LHS
/* 39490*/            OPC_MoveChild1,
/* 39491*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39494*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39496*/            OPC_MoveParent,
/* 39497*/            OPC_MoveParent,
/* 39498*/            OPC_MoveParent,
/* 39499*/            OPC_MoveChild1,
/* 39500*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39503*/            OPC_Scope, 17, /*->39522*/ // 2 children in Scope
/* 39505*/              OPC_CheckChild0Same, 1,
/* 39507*/              OPC_RecordChild1, // #2 = $MHS
/* 39508*/              OPC_MoveParent,
/* 39509*/              OPC_CheckType, MVT::v2i32,
/* 39511*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39513*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39522*/            /*Scope*/ 17, /*->39540*/
/* 39523*/              OPC_RecordChild0, // #2 = $MHS
/* 39524*/              OPC_CheckChild1Same, 1,
/* 39526*/              OPC_MoveParent,
/* 39527*/              OPC_CheckType, MVT::v2i32,
/* 39529*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39531*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39540*/            0, /*End of Scope*/
/* 39541*/          /*Scope*/ 52, /*->39594*/
/* 39542*/            OPC_MoveChild0,
/* 39543*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39546*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39548*/            OPC_MoveParent,
/* 39549*/            OPC_RecordChild1, // #1 = $LHS
/* 39550*/            OPC_MoveParent,
/* 39551*/            OPC_MoveParent,
/* 39552*/            OPC_MoveChild1,
/* 39553*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39556*/            OPC_Scope, 17, /*->39575*/ // 2 children in Scope
/* 39558*/              OPC_CheckChild0Same, 1,
/* 39560*/              OPC_RecordChild1, // #2 = $MHS
/* 39561*/              OPC_MoveParent,
/* 39562*/              OPC_CheckType, MVT::v2i32,
/* 39564*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39566*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$LHS)), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39575*/            /*Scope*/ 17, /*->39593*/
/* 39576*/              OPC_RecordChild0, // #2 = $MHS
/* 39577*/              OPC_CheckChild1Same, 1,
/* 39579*/              OPC_MoveParent,
/* 39580*/              OPC_CheckType, MVT::v2i32,
/* 39582*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39584*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v2i32, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$LHS)), (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 39593*/            0, /*End of Scope*/
/* 39594*/          0, /*End of Scope*/
/* 39595*/        /*Scope*/ 85|128,1/*213*/, /*->39810*/
/* 39597*/          OPC_RecordChild1, // #1 = $MHS
/* 39598*/          OPC_MoveParent,
/* 39599*/          OPC_MoveChild1,
/* 39600*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39603*/          OPC_Scope, 29, /*->39634*/ // 4 children in Scope
/* 39605*/            OPC_MoveChild0,
/* 39606*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39609*/            OPC_MoveChild0,
/* 39610*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39613*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39615*/            OPC_MoveParent,
/* 39616*/            OPC_CheckChild1Same, 0,
/* 39618*/            OPC_MoveParent,
/* 39619*/            OPC_RecordChild1, // #2 = $RHS
/* 39620*/            OPC_MoveParent,
/* 39621*/            OPC_CheckType, MVT::v1i64,
/* 39623*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39625*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS), (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$LHS), V64:{ *:[v1i64] }:$RHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39634*/          /*Scope*/ 57, /*->39692*/
/* 39635*/            OPC_RecordChild0, // #2 = $RHS
/* 39636*/            OPC_MoveChild1,
/* 39637*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39640*/            OPC_Scope, 24, /*->39666*/ // 2 children in Scope
/* 39642*/              OPC_CheckChild0Same, 0,
/* 39644*/              OPC_MoveChild1,
/* 39645*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39648*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39650*/              OPC_MoveParent,
/* 39651*/              OPC_MoveParent,
/* 39652*/              OPC_MoveParent,
/* 39653*/              OPC_CheckType, MVT::v1i64,
/* 39655*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39657*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39666*/            /*Scope*/ 24, /*->39691*/
/* 39667*/              OPC_MoveChild0,
/* 39668*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39671*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39673*/              OPC_MoveParent,
/* 39674*/              OPC_CheckChild1Same, 0,
/* 39676*/              OPC_MoveParent,
/* 39677*/              OPC_MoveParent,
/* 39678*/              OPC_CheckType, MVT::v1i64,
/* 39680*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39682*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39691*/            0, /*End of Scope*/
/* 39692*/          /*Scope*/ 58, /*->39751*/
/* 39693*/            OPC_MoveChild0,
/* 39694*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39697*/            OPC_Scope, 25, /*->39724*/ // 2 children in Scope
/* 39699*/              OPC_CheckChild0Same, 1,
/* 39701*/              OPC_MoveChild1,
/* 39702*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39705*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39707*/              OPC_MoveParent,
/* 39708*/              OPC_MoveParent,
/* 39709*/              OPC_RecordChild1, // #2 = $RHS
/* 39710*/              OPC_MoveParent,
/* 39711*/              OPC_CheckType, MVT::v1i64,
/* 39713*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39715*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$LHS), (and:{ *:[v1i64] } (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v1i64] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39724*/            /*Scope*/ 25, /*->39750*/
/* 39725*/              OPC_MoveChild0,
/* 39726*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39729*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39731*/              OPC_MoveParent,
/* 39732*/              OPC_CheckChild1Same, 1,
/* 39734*/              OPC_MoveParent,
/* 39735*/              OPC_RecordChild1, // #2 = $RHS
/* 39736*/              OPC_MoveParent,
/* 39737*/              OPC_CheckType, MVT::v1i64,
/* 39739*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39741*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$LHS), (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$LHS), V64:{ *:[v1i64] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39750*/            0, /*End of Scope*/
/* 39751*/          /*Scope*/ 57, /*->39809*/
/* 39752*/            OPC_RecordChild0, // #2 = $RHS
/* 39753*/            OPC_MoveChild1,
/* 39754*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39757*/            OPC_Scope, 24, /*->39783*/ // 2 children in Scope
/* 39759*/              OPC_CheckChild0Same, 1,
/* 39761*/              OPC_MoveChild1,
/* 39762*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39765*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39767*/              OPC_MoveParent,
/* 39768*/              OPC_MoveParent,
/* 39769*/              OPC_MoveParent,
/* 39770*/              OPC_CheckType, MVT::v1i64,
/* 39772*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39774*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$LHS), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39783*/            /*Scope*/ 24, /*->39808*/
/* 39784*/              OPC_MoveChild0,
/* 39785*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39788*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39790*/              OPC_MoveParent,
/* 39791*/              OPC_CheckChild1Same, 1,
/* 39793*/              OPC_MoveParent,
/* 39794*/              OPC_MoveParent,
/* 39795*/              OPC_CheckType, MVT::v1i64,
/* 39797*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39799*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$LHS), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39808*/            0, /*End of Scope*/
/* 39809*/          0, /*End of Scope*/
/* 39810*/        0, /*End of Scope*/
/* 39811*/      /*Scope*/ 114, /*->39926*/
/* 39812*/        OPC_MoveChild0,
/* 39813*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39816*/        OPC_Scope, 53, /*->39871*/ // 2 children in Scope
/* 39818*/          OPC_RecordChild0, // #0 = $LHS
/* 39819*/          OPC_MoveChild1,
/* 39820*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39823*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39825*/          OPC_MoveParent,
/* 39826*/          OPC_MoveParent,
/* 39827*/          OPC_RecordChild1, // #1 = $RHS
/* 39828*/          OPC_MoveParent,
/* 39829*/          OPC_MoveChild1,
/* 39830*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39833*/          OPC_Scope, 17, /*->39852*/ // 2 children in Scope
/* 39835*/            OPC_CheckChild0Same, 0,
/* 39837*/            OPC_RecordChild1, // #2 = $MHS
/* 39838*/            OPC_MoveParent,
/* 39839*/            OPC_CheckType, MVT::v1i64,
/* 39841*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39843*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v1i64] }:$RHS), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39852*/          /*Scope*/ 17, /*->39870*/
/* 39853*/            OPC_RecordChild0, // #2 = $MHS
/* 39854*/            OPC_CheckChild1Same, 0,
/* 39856*/            OPC_MoveParent,
/* 39857*/            OPC_CheckType, MVT::v1i64,
/* 39859*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39861*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v1i64] }:$RHS), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39870*/          0, /*End of Scope*/
/* 39871*/        /*Scope*/ 53, /*->39925*/
/* 39872*/          OPC_MoveChild0,
/* 39873*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39876*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39878*/          OPC_MoveParent,
/* 39879*/          OPC_RecordChild1, // #0 = $LHS
/* 39880*/          OPC_MoveParent,
/* 39881*/          OPC_RecordChild1, // #1 = $RHS
/* 39882*/          OPC_MoveParent,
/* 39883*/          OPC_MoveChild1,
/* 39884*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39887*/          OPC_Scope, 17, /*->39906*/ // 2 children in Scope
/* 39889*/            OPC_CheckChild0Same, 0,
/* 39891*/            OPC_RecordChild1, // #2 = $MHS
/* 39892*/            OPC_MoveParent,
/* 39893*/            OPC_CheckType, MVT::v1i64,
/* 39895*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39897*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$LHS), V64:{ *:[v1i64] }:$RHS), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39906*/          /*Scope*/ 17, /*->39924*/
/* 39907*/            OPC_RecordChild0, // #2 = $MHS
/* 39908*/            OPC_CheckChild1Same, 0,
/* 39910*/            OPC_MoveParent,
/* 39911*/            OPC_CheckType, MVT::v1i64,
/* 39913*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39915*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$LHS), V64:{ *:[v1i64] }:$RHS), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39924*/          0, /*End of Scope*/
/* 39925*/        0, /*End of Scope*/
/* 39926*/      /*Scope*/ 75|128,2/*331*/, /*->40259*/
/* 39928*/        OPC_RecordChild0, // #0 = $RHS
/* 39929*/        OPC_Scope, 112, /*->40043*/ // 2 children in Scope
/* 39931*/          OPC_MoveChild1,
/* 39932*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 39935*/          OPC_Scope, 52, /*->39989*/ // 2 children in Scope
/* 39937*/            OPC_RecordChild0, // #1 = $LHS
/* 39938*/            OPC_MoveChild1,
/* 39939*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39942*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39944*/            OPC_MoveParent,
/* 39945*/            OPC_MoveParent,
/* 39946*/            OPC_MoveParent,
/* 39947*/            OPC_MoveChild1,
/* 39948*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39951*/            OPC_Scope, 17, /*->39970*/ // 2 children in Scope
/* 39953*/              OPC_CheckChild0Same, 1,
/* 39955*/              OPC_RecordChild1, // #2 = $MHS
/* 39956*/              OPC_MoveParent,
/* 39957*/              OPC_CheckType, MVT::v1i64,
/* 39959*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39961*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39970*/            /*Scope*/ 17, /*->39988*/
/* 39971*/              OPC_RecordChild0, // #2 = $MHS
/* 39972*/              OPC_CheckChild1Same, 1,
/* 39974*/              OPC_MoveParent,
/* 39975*/              OPC_CheckType, MVT::v1i64,
/* 39977*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 39979*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 39988*/            0, /*End of Scope*/
/* 39989*/          /*Scope*/ 52, /*->40042*/
/* 39990*/            OPC_MoveChild0,
/* 39991*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 39994*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 39996*/            OPC_MoveParent,
/* 39997*/            OPC_RecordChild1, // #1 = $LHS
/* 39998*/            OPC_MoveParent,
/* 39999*/            OPC_MoveParent,
/* 40000*/            OPC_MoveChild1,
/* 40001*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40004*/            OPC_Scope, 17, /*->40023*/ // 2 children in Scope
/* 40006*/              OPC_CheckChild0Same, 1,
/* 40008*/              OPC_RecordChild1, // #2 = $MHS
/* 40009*/              OPC_MoveParent,
/* 40010*/              OPC_CheckType, MVT::v1i64,
/* 40012*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40014*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$LHS)), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 40023*/            /*Scope*/ 17, /*->40041*/
/* 40024*/              OPC_RecordChild0, // #2 = $MHS
/* 40025*/              OPC_CheckChild1Same, 1,
/* 40027*/              OPC_MoveParent,
/* 40028*/              OPC_CheckType, MVT::v1i64,
/* 40030*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40032*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                            MVT::v1i64, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v1i64] } (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$LHS)), (and:{ *:[v1i64] } V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 40041*/            0, /*End of Scope*/
/* 40042*/          0, /*End of Scope*/
/* 40043*/        /*Scope*/ 85|128,1/*213*/, /*->40258*/
/* 40045*/          OPC_RecordChild1, // #1 = $MHS
/* 40046*/          OPC_MoveParent,
/* 40047*/          OPC_MoveChild1,
/* 40048*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40051*/          OPC_Scope, 29, /*->40082*/ // 4 children in Scope
/* 40053*/            OPC_MoveChild0,
/* 40054*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40057*/            OPC_MoveChild0,
/* 40058*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40061*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40063*/            OPC_MoveParent,
/* 40064*/            OPC_CheckChild1Same, 0,
/* 40066*/            OPC_MoveParent,
/* 40067*/            OPC_RecordChild1, // #2 = $RHS
/* 40068*/            OPC_MoveParent,
/* 40069*/            OPC_CheckType, MVT::v8i16,
/* 40071*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40073*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS), (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$LHS), V128:{ *:[v8i16] }:$RHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40082*/          /*Scope*/ 57, /*->40140*/
/* 40083*/            OPC_RecordChild0, // #2 = $RHS
/* 40084*/            OPC_MoveChild1,
/* 40085*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40088*/            OPC_Scope, 24, /*->40114*/ // 2 children in Scope
/* 40090*/              OPC_CheckChild0Same, 0,
/* 40092*/              OPC_MoveChild1,
/* 40093*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40096*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40098*/              OPC_MoveParent,
/* 40099*/              OPC_MoveParent,
/* 40100*/              OPC_MoveParent,
/* 40101*/              OPC_CheckType, MVT::v8i16,
/* 40103*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40105*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40114*/            /*Scope*/ 24, /*->40139*/
/* 40115*/              OPC_MoveChild0,
/* 40116*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40119*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40121*/              OPC_MoveParent,
/* 40122*/              OPC_CheckChild1Same, 0,
/* 40124*/              OPC_MoveParent,
/* 40125*/              OPC_MoveParent,
/* 40126*/              OPC_CheckType, MVT::v8i16,
/* 40128*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40130*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40139*/            0, /*End of Scope*/
/* 40140*/          /*Scope*/ 58, /*->40199*/
/* 40141*/            OPC_MoveChild0,
/* 40142*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40145*/            OPC_Scope, 25, /*->40172*/ // 2 children in Scope
/* 40147*/              OPC_CheckChild0Same, 1,
/* 40149*/              OPC_MoveChild1,
/* 40150*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40153*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40155*/              OPC_MoveParent,
/* 40156*/              OPC_MoveParent,
/* 40157*/              OPC_RecordChild1, // #2 = $RHS
/* 40158*/              OPC_MoveParent,
/* 40159*/              OPC_CheckType, MVT::v8i16,
/* 40161*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40163*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$LHS), (and:{ *:[v8i16] } (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v8i16] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40172*/            /*Scope*/ 25, /*->40198*/
/* 40173*/              OPC_MoveChild0,
/* 40174*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40177*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40179*/              OPC_MoveParent,
/* 40180*/              OPC_CheckChild1Same, 1,
/* 40182*/              OPC_MoveParent,
/* 40183*/              OPC_RecordChild1, // #2 = $RHS
/* 40184*/              OPC_MoveParent,
/* 40185*/              OPC_CheckType, MVT::v8i16,
/* 40187*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40189*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$LHS), (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$LHS), V128:{ *:[v8i16] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40198*/            0, /*End of Scope*/
/* 40199*/          /*Scope*/ 57, /*->40257*/
/* 40200*/            OPC_RecordChild0, // #2 = $RHS
/* 40201*/            OPC_MoveChild1,
/* 40202*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40205*/            OPC_Scope, 24, /*->40231*/ // 2 children in Scope
/* 40207*/              OPC_CheckChild0Same, 1,
/* 40209*/              OPC_MoveChild1,
/* 40210*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40213*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40215*/              OPC_MoveParent,
/* 40216*/              OPC_MoveParent,
/* 40217*/              OPC_MoveParent,
/* 40218*/              OPC_CheckType, MVT::v8i16,
/* 40220*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40222*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$LHS), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40231*/            /*Scope*/ 24, /*->40256*/
/* 40232*/              OPC_MoveChild0,
/* 40233*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40236*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40238*/              OPC_MoveParent,
/* 40239*/              OPC_CheckChild1Same, 1,
/* 40241*/              OPC_MoveParent,
/* 40242*/              OPC_MoveParent,
/* 40243*/              OPC_CheckType, MVT::v8i16,
/* 40245*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40247*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$LHS), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40256*/            0, /*End of Scope*/
/* 40257*/          0, /*End of Scope*/
/* 40258*/        0, /*End of Scope*/
/* 40259*/      /*Scope*/ 114, /*->40374*/
/* 40260*/        OPC_MoveChild0,
/* 40261*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40264*/        OPC_Scope, 53, /*->40319*/ // 2 children in Scope
/* 40266*/          OPC_RecordChild0, // #0 = $LHS
/* 40267*/          OPC_MoveChild1,
/* 40268*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40271*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40273*/          OPC_MoveParent,
/* 40274*/          OPC_MoveParent,
/* 40275*/          OPC_RecordChild1, // #1 = $RHS
/* 40276*/          OPC_MoveParent,
/* 40277*/          OPC_MoveChild1,
/* 40278*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40281*/          OPC_Scope, 17, /*->40300*/ // 2 children in Scope
/* 40283*/            OPC_CheckChild0Same, 0,
/* 40285*/            OPC_RecordChild1, // #2 = $MHS
/* 40286*/            OPC_MoveParent,
/* 40287*/            OPC_CheckType, MVT::v8i16,
/* 40289*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40291*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v8i16] }:$RHS), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40300*/          /*Scope*/ 17, /*->40318*/
/* 40301*/            OPC_RecordChild0, // #2 = $MHS
/* 40302*/            OPC_CheckChild1Same, 0,
/* 40304*/            OPC_MoveParent,
/* 40305*/            OPC_CheckType, MVT::v8i16,
/* 40307*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40309*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v8i16] }:$RHS), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40318*/          0, /*End of Scope*/
/* 40319*/        /*Scope*/ 53, /*->40373*/
/* 40320*/          OPC_MoveChild0,
/* 40321*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40324*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40326*/          OPC_MoveParent,
/* 40327*/          OPC_RecordChild1, // #0 = $LHS
/* 40328*/          OPC_MoveParent,
/* 40329*/          OPC_RecordChild1, // #1 = $RHS
/* 40330*/          OPC_MoveParent,
/* 40331*/          OPC_MoveChild1,
/* 40332*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40335*/          OPC_Scope, 17, /*->40354*/ // 2 children in Scope
/* 40337*/            OPC_CheckChild0Same, 0,
/* 40339*/            OPC_RecordChild1, // #2 = $MHS
/* 40340*/            OPC_MoveParent,
/* 40341*/            OPC_CheckType, MVT::v8i16,
/* 40343*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40345*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$LHS), V128:{ *:[v8i16] }:$RHS), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40354*/          /*Scope*/ 17, /*->40372*/
/* 40355*/            OPC_RecordChild0, // #2 = $MHS
/* 40356*/            OPC_CheckChild1Same, 0,
/* 40358*/            OPC_MoveParent,
/* 40359*/            OPC_CheckType, MVT::v8i16,
/* 40361*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40363*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$LHS), V128:{ *:[v8i16] }:$RHS), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40372*/          0, /*End of Scope*/
/* 40373*/        0, /*End of Scope*/
/* 40374*/      /*Scope*/ 75|128,2/*331*/, /*->40707*/
/* 40376*/        OPC_RecordChild0, // #0 = $RHS
/* 40377*/        OPC_Scope, 112, /*->40491*/ // 2 children in Scope
/* 40379*/          OPC_MoveChild1,
/* 40380*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40383*/          OPC_Scope, 52, /*->40437*/ // 2 children in Scope
/* 40385*/            OPC_RecordChild0, // #1 = $LHS
/* 40386*/            OPC_MoveChild1,
/* 40387*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40390*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40392*/            OPC_MoveParent,
/* 40393*/            OPC_MoveParent,
/* 40394*/            OPC_MoveParent,
/* 40395*/            OPC_MoveChild1,
/* 40396*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40399*/            OPC_Scope, 17, /*->40418*/ // 2 children in Scope
/* 40401*/              OPC_CheckChild0Same, 1,
/* 40403*/              OPC_RecordChild1, // #2 = $MHS
/* 40404*/              OPC_MoveParent,
/* 40405*/              OPC_CheckType, MVT::v8i16,
/* 40407*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40409*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40418*/            /*Scope*/ 17, /*->40436*/
/* 40419*/              OPC_RecordChild0, // #2 = $MHS
/* 40420*/              OPC_CheckChild1Same, 1,
/* 40422*/              OPC_MoveParent,
/* 40423*/              OPC_CheckType, MVT::v8i16,
/* 40425*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40427*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40436*/            0, /*End of Scope*/
/* 40437*/          /*Scope*/ 52, /*->40490*/
/* 40438*/            OPC_MoveChild0,
/* 40439*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40442*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40444*/            OPC_MoveParent,
/* 40445*/            OPC_RecordChild1, // #1 = $LHS
/* 40446*/            OPC_MoveParent,
/* 40447*/            OPC_MoveParent,
/* 40448*/            OPC_MoveChild1,
/* 40449*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40452*/            OPC_Scope, 17, /*->40471*/ // 2 children in Scope
/* 40454*/              OPC_CheckChild0Same, 1,
/* 40456*/              OPC_RecordChild1, // #2 = $MHS
/* 40457*/              OPC_MoveParent,
/* 40458*/              OPC_CheckType, MVT::v8i16,
/* 40460*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40462*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$LHS)), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40471*/            /*Scope*/ 17, /*->40489*/
/* 40472*/              OPC_RecordChild0, // #2 = $MHS
/* 40473*/              OPC_CheckChild1Same, 1,
/* 40475*/              OPC_MoveParent,
/* 40476*/              OPC_CheckType, MVT::v8i16,
/* 40478*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40480*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$LHS)), (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 40489*/            0, /*End of Scope*/
/* 40490*/          0, /*End of Scope*/
/* 40491*/        /*Scope*/ 85|128,1/*213*/, /*->40706*/
/* 40493*/          OPC_RecordChild1, // #1 = $MHS
/* 40494*/          OPC_MoveParent,
/* 40495*/          OPC_MoveChild1,
/* 40496*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40499*/          OPC_Scope, 29, /*->40530*/ // 4 children in Scope
/* 40501*/            OPC_MoveChild0,
/* 40502*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40505*/            OPC_MoveChild0,
/* 40506*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40509*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40511*/            OPC_MoveParent,
/* 40512*/            OPC_CheckChild1Same, 0,
/* 40514*/            OPC_MoveParent,
/* 40515*/            OPC_RecordChild1, // #2 = $RHS
/* 40516*/            OPC_MoveParent,
/* 40517*/            OPC_CheckType, MVT::v4i32,
/* 40519*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40521*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$LHS), V128:{ *:[v4i32] }:$RHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40530*/          /*Scope*/ 57, /*->40588*/
/* 40531*/            OPC_RecordChild0, // #2 = $RHS
/* 40532*/            OPC_MoveChild1,
/* 40533*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40536*/            OPC_Scope, 24, /*->40562*/ // 2 children in Scope
/* 40538*/              OPC_CheckChild0Same, 0,
/* 40540*/              OPC_MoveChild1,
/* 40541*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40544*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40546*/              OPC_MoveParent,
/* 40547*/              OPC_MoveParent,
/* 40548*/              OPC_MoveParent,
/* 40549*/              OPC_CheckType, MVT::v4i32,
/* 40551*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40553*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40562*/            /*Scope*/ 24, /*->40587*/
/* 40563*/              OPC_MoveChild0,
/* 40564*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40567*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40569*/              OPC_MoveParent,
/* 40570*/              OPC_CheckChild1Same, 0,
/* 40572*/              OPC_MoveParent,
/* 40573*/              OPC_MoveParent,
/* 40574*/              OPC_CheckType, MVT::v4i32,
/* 40576*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40578*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40587*/            0, /*End of Scope*/
/* 40588*/          /*Scope*/ 58, /*->40647*/
/* 40589*/            OPC_MoveChild0,
/* 40590*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40593*/            OPC_Scope, 25, /*->40620*/ // 2 children in Scope
/* 40595*/              OPC_CheckChild0Same, 1,
/* 40597*/              OPC_MoveChild1,
/* 40598*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40601*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40603*/              OPC_MoveParent,
/* 40604*/              OPC_MoveParent,
/* 40605*/              OPC_RecordChild1, // #2 = $RHS
/* 40606*/              OPC_MoveParent,
/* 40607*/              OPC_CheckType, MVT::v4i32,
/* 40609*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40611*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$LHS), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v4i32] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40620*/            /*Scope*/ 25, /*->40646*/
/* 40621*/              OPC_MoveChild0,
/* 40622*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40625*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40627*/              OPC_MoveParent,
/* 40628*/              OPC_CheckChild1Same, 1,
/* 40630*/              OPC_MoveParent,
/* 40631*/              OPC_RecordChild1, // #2 = $RHS
/* 40632*/              OPC_MoveParent,
/* 40633*/              OPC_CheckType, MVT::v4i32,
/* 40635*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40637*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$LHS), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$LHS), V128:{ *:[v4i32] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40646*/            0, /*End of Scope*/
/* 40647*/          /*Scope*/ 57, /*->40705*/
/* 40648*/            OPC_RecordChild0, // #2 = $RHS
/* 40649*/            OPC_MoveChild1,
/* 40650*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40653*/            OPC_Scope, 24, /*->40679*/ // 2 children in Scope
/* 40655*/              OPC_CheckChild0Same, 1,
/* 40657*/              OPC_MoveChild1,
/* 40658*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40661*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40663*/              OPC_MoveParent,
/* 40664*/              OPC_MoveParent,
/* 40665*/              OPC_MoveParent,
/* 40666*/              OPC_CheckType, MVT::v4i32,
/* 40668*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40670*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$LHS), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40679*/            /*Scope*/ 24, /*->40704*/
/* 40680*/              OPC_MoveChild0,
/* 40681*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40684*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40686*/              OPC_MoveParent,
/* 40687*/              OPC_CheckChild1Same, 1,
/* 40689*/              OPC_MoveParent,
/* 40690*/              OPC_MoveParent,
/* 40691*/              OPC_CheckType, MVT::v4i32,
/* 40693*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40695*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$LHS), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40704*/            0, /*End of Scope*/
/* 40705*/          0, /*End of Scope*/
/* 40706*/        0, /*End of Scope*/
/* 40707*/      /*Scope*/ 114, /*->40822*/
/* 40708*/        OPC_MoveChild0,
/* 40709*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40712*/        OPC_Scope, 53, /*->40767*/ // 2 children in Scope
/* 40714*/          OPC_RecordChild0, // #0 = $LHS
/* 40715*/          OPC_MoveChild1,
/* 40716*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40719*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40721*/          OPC_MoveParent,
/* 40722*/          OPC_MoveParent,
/* 40723*/          OPC_RecordChild1, // #1 = $RHS
/* 40724*/          OPC_MoveParent,
/* 40725*/          OPC_MoveChild1,
/* 40726*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40729*/          OPC_Scope, 17, /*->40748*/ // 2 children in Scope
/* 40731*/            OPC_CheckChild0Same, 0,
/* 40733*/            OPC_RecordChild1, // #2 = $MHS
/* 40734*/            OPC_MoveParent,
/* 40735*/            OPC_CheckType, MVT::v4i32,
/* 40737*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40739*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v4i32] }:$RHS), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40748*/          /*Scope*/ 17, /*->40766*/
/* 40749*/            OPC_RecordChild0, // #2 = $MHS
/* 40750*/            OPC_CheckChild1Same, 0,
/* 40752*/            OPC_MoveParent,
/* 40753*/            OPC_CheckType, MVT::v4i32,
/* 40755*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40757*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v4i32] }:$RHS), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40766*/          0, /*End of Scope*/
/* 40767*/        /*Scope*/ 53, /*->40821*/
/* 40768*/          OPC_MoveChild0,
/* 40769*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40772*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40774*/          OPC_MoveParent,
/* 40775*/          OPC_RecordChild1, // #0 = $LHS
/* 40776*/          OPC_MoveParent,
/* 40777*/          OPC_RecordChild1, // #1 = $RHS
/* 40778*/          OPC_MoveParent,
/* 40779*/          OPC_MoveChild1,
/* 40780*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40783*/          OPC_Scope, 17, /*->40802*/ // 2 children in Scope
/* 40785*/            OPC_CheckChild0Same, 0,
/* 40787*/            OPC_RecordChild1, // #2 = $MHS
/* 40788*/            OPC_MoveParent,
/* 40789*/            OPC_CheckType, MVT::v4i32,
/* 40791*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40793*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$LHS), V128:{ *:[v4i32] }:$RHS), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40802*/          /*Scope*/ 17, /*->40820*/
/* 40803*/            OPC_RecordChild0, // #2 = $MHS
/* 40804*/            OPC_CheckChild1Same, 0,
/* 40806*/            OPC_MoveParent,
/* 40807*/            OPC_CheckType, MVT::v4i32,
/* 40809*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40811*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$LHS), V128:{ *:[v4i32] }:$RHS), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40820*/          0, /*End of Scope*/
/* 40821*/        0, /*End of Scope*/
/* 40822*/      /*Scope*/ 75|128,2/*331*/, /*->41155*/
/* 40824*/        OPC_RecordChild0, // #0 = $RHS
/* 40825*/        OPC_Scope, 112, /*->40939*/ // 2 children in Scope
/* 40827*/          OPC_MoveChild1,
/* 40828*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40831*/          OPC_Scope, 52, /*->40885*/ // 2 children in Scope
/* 40833*/            OPC_RecordChild0, // #1 = $LHS
/* 40834*/            OPC_MoveChild1,
/* 40835*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40838*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40840*/            OPC_MoveParent,
/* 40841*/            OPC_MoveParent,
/* 40842*/            OPC_MoveParent,
/* 40843*/            OPC_MoveChild1,
/* 40844*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40847*/            OPC_Scope, 17, /*->40866*/ // 2 children in Scope
/* 40849*/              OPC_CheckChild0Same, 1,
/* 40851*/              OPC_RecordChild1, // #2 = $MHS
/* 40852*/              OPC_MoveParent,
/* 40853*/              OPC_CheckType, MVT::v4i32,
/* 40855*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40857*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40866*/            /*Scope*/ 17, /*->40884*/
/* 40867*/              OPC_RecordChild0, // #2 = $MHS
/* 40868*/              OPC_CheckChild1Same, 1,
/* 40870*/              OPC_MoveParent,
/* 40871*/              OPC_CheckType, MVT::v4i32,
/* 40873*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40875*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40884*/            0, /*End of Scope*/
/* 40885*/          /*Scope*/ 52, /*->40938*/
/* 40886*/            OPC_MoveChild0,
/* 40887*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40890*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40892*/            OPC_MoveParent,
/* 40893*/            OPC_RecordChild1, // #1 = $LHS
/* 40894*/            OPC_MoveParent,
/* 40895*/            OPC_MoveParent,
/* 40896*/            OPC_MoveChild1,
/* 40897*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40900*/            OPC_Scope, 17, /*->40919*/ // 2 children in Scope
/* 40902*/              OPC_CheckChild0Same, 1,
/* 40904*/              OPC_RecordChild1, // #2 = $MHS
/* 40905*/              OPC_MoveParent,
/* 40906*/              OPC_CheckType, MVT::v4i32,
/* 40908*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40910*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$LHS)), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40919*/            /*Scope*/ 17, /*->40937*/
/* 40920*/              OPC_RecordChild0, // #2 = $MHS
/* 40921*/              OPC_CheckChild1Same, 1,
/* 40923*/              OPC_MoveParent,
/* 40924*/              OPC_CheckType, MVT::v4i32,
/* 40926*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40928*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$LHS)), (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$LHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 40937*/            0, /*End of Scope*/
/* 40938*/          0, /*End of Scope*/
/* 40939*/        /*Scope*/ 85|128,1/*213*/, /*->41154*/
/* 40941*/          OPC_RecordChild1, // #1 = $MHS
/* 40942*/          OPC_MoveParent,
/* 40943*/          OPC_MoveChild1,
/* 40944*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 40947*/          OPC_Scope, 29, /*->40978*/ // 4 children in Scope
/* 40949*/            OPC_MoveChild0,
/* 40950*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40953*/            OPC_MoveChild0,
/* 40954*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40957*/            OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40959*/            OPC_MoveParent,
/* 40960*/            OPC_CheckChild1Same, 0,
/* 40962*/            OPC_MoveParent,
/* 40963*/            OPC_RecordChild1, // #2 = $RHS
/* 40964*/            OPC_MoveParent,
/* 40965*/            OPC_CheckType, MVT::v2i64,
/* 40967*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 40969*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS), (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$LHS), V128:{ *:[v2i64] }:$RHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 40978*/          /*Scope*/ 57, /*->41036*/
/* 40979*/            OPC_RecordChild0, // #2 = $RHS
/* 40980*/            OPC_MoveChild1,
/* 40981*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40984*/            OPC_Scope, 24, /*->41010*/ // 2 children in Scope
/* 40986*/              OPC_CheckChild0Same, 0,
/* 40988*/              OPC_MoveChild1,
/* 40989*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 40992*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 40994*/              OPC_MoveParent,
/* 40995*/              OPC_MoveParent,
/* 40996*/              OPC_MoveParent,
/* 40997*/              OPC_CheckType, MVT::v2i64,
/* 40999*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41001*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41010*/            /*Scope*/ 24, /*->41035*/
/* 41011*/              OPC_MoveChild0,
/* 41012*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41015*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41017*/              OPC_MoveParent,
/* 41018*/              OPC_CheckChild1Same, 0,
/* 41020*/              OPC_MoveParent,
/* 41021*/              OPC_MoveParent,
/* 41022*/              OPC_CheckType, MVT::v2i64,
/* 41024*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41026*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41035*/            0, /*End of Scope*/
/* 41036*/          /*Scope*/ 58, /*->41095*/
/* 41037*/            OPC_MoveChild0,
/* 41038*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41041*/            OPC_Scope, 25, /*->41068*/ // 2 children in Scope
/* 41043*/              OPC_CheckChild0Same, 1,
/* 41045*/              OPC_MoveChild1,
/* 41046*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41049*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41051*/              OPC_MoveParent,
/* 41052*/              OPC_MoveParent,
/* 41053*/              OPC_RecordChild1, // #2 = $RHS
/* 41054*/              OPC_MoveParent,
/* 41055*/              OPC_CheckType, MVT::v2i64,
/* 41057*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41059*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$LHS), (and:{ *:[v2i64] } (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v2i64] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41068*/            /*Scope*/ 25, /*->41094*/
/* 41069*/              OPC_MoveChild0,
/* 41070*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41073*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41075*/              OPC_MoveParent,
/* 41076*/              OPC_CheckChild1Same, 1,
/* 41078*/              OPC_MoveParent,
/* 41079*/              OPC_RecordChild1, // #2 = $RHS
/* 41080*/              OPC_MoveParent,
/* 41081*/              OPC_CheckType, MVT::v2i64,
/* 41083*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41085*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$LHS), (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$LHS), V128:{ *:[v2i64] }:$RHS)) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41094*/            0, /*End of Scope*/
/* 41095*/          /*Scope*/ 57, /*->41153*/
/* 41096*/            OPC_RecordChild0, // #2 = $RHS
/* 41097*/            OPC_MoveChild1,
/* 41098*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41101*/            OPC_Scope, 24, /*->41127*/ // 2 children in Scope
/* 41103*/              OPC_CheckChild0Same, 1,
/* 41105*/              OPC_MoveChild1,
/* 41106*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41109*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41111*/              OPC_MoveParent,
/* 41112*/              OPC_MoveParent,
/* 41113*/              OPC_MoveParent,
/* 41114*/              OPC_CheckType, MVT::v2i64,
/* 41116*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41118*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$LHS), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41127*/            /*Scope*/ 24, /*->41152*/
/* 41128*/              OPC_MoveChild0,
/* 41129*/              OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41132*/              OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41134*/              OPC_MoveParent,
/* 41135*/              OPC_CheckChild1Same, 1,
/* 41137*/              OPC_MoveParent,
/* 41138*/              OPC_MoveParent,
/* 41139*/              OPC_CheckType, MVT::v2i64,
/* 41141*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41143*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                            MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                        // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$LHS), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$LHS))) - Complexity = 16
                        // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41152*/            0, /*End of Scope*/
/* 41153*/          0, /*End of Scope*/
/* 41154*/        0, /*End of Scope*/
/* 41155*/      /*Scope*/ 114, /*->41270*/
/* 41156*/        OPC_MoveChild0,
/* 41157*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41160*/        OPC_Scope, 53, /*->41215*/ // 2 children in Scope
/* 41162*/          OPC_RecordChild0, // #0 = $LHS
/* 41163*/          OPC_MoveChild1,
/* 41164*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41167*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41169*/          OPC_MoveParent,
/* 41170*/          OPC_MoveParent,
/* 41171*/          OPC_RecordChild1, // #1 = $RHS
/* 41172*/          OPC_MoveParent,
/* 41173*/          OPC_MoveChild1,
/* 41174*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 41177*/          OPC_Scope, 17, /*->41196*/ // 2 children in Scope
/* 41179*/            OPC_CheckChild0Same, 0,
/* 41181*/            OPC_RecordChild1, // #2 = $MHS
/* 41182*/            OPC_MoveParent,
/* 41183*/            OPC_CheckType, MVT::v2i64,
/* 41185*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41187*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v2i64] }:$RHS), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41196*/          /*Scope*/ 17, /*->41214*/
/* 41197*/            OPC_RecordChild0, // #2 = $MHS
/* 41198*/            OPC_CheckChild1Same, 0,
/* 41200*/            OPC_MoveParent,
/* 41201*/            OPC_CheckType, MVT::v2i64,
/* 41203*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41205*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v2i64] }:$RHS), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41214*/          0, /*End of Scope*/
/* 41215*/        /*Scope*/ 53, /*->41269*/
/* 41216*/          OPC_MoveChild0,
/* 41217*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41220*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41222*/          OPC_MoveParent,
/* 41223*/          OPC_RecordChild1, // #0 = $LHS
/* 41224*/          OPC_MoveParent,
/* 41225*/          OPC_RecordChild1, // #1 = $RHS
/* 41226*/          OPC_MoveParent,
/* 41227*/          OPC_MoveChild1,
/* 41228*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 41231*/          OPC_Scope, 17, /*->41250*/ // 2 children in Scope
/* 41233*/            OPC_CheckChild0Same, 0,
/* 41235*/            OPC_RecordChild1, // #2 = $MHS
/* 41236*/            OPC_MoveParent,
/* 41237*/            OPC_CheckType, MVT::v2i64,
/* 41239*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41241*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$LHS), V128:{ *:[v2i64] }:$RHS), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41250*/          /*Scope*/ 17, /*->41268*/
/* 41251*/            OPC_RecordChild0, // #2 = $MHS
/* 41252*/            OPC_CheckChild1Same, 0,
/* 41254*/            OPC_MoveParent,
/* 41255*/            OPC_CheckType, MVT::v2i64,
/* 41257*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41259*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$LHS), V128:{ *:[v2i64] }:$RHS), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41268*/          0, /*End of Scope*/
/* 41269*/        0, /*End of Scope*/
/* 41270*/      /*Scope*/ 113, /*->41384*/
/* 41271*/        OPC_RecordChild0, // #0 = $RHS
/* 41272*/        OPC_MoveChild1,
/* 41273*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41276*/        OPC_Scope, 52, /*->41330*/ // 2 children in Scope
/* 41278*/          OPC_RecordChild0, // #1 = $LHS
/* 41279*/          OPC_MoveChild1,
/* 41280*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41283*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41285*/          OPC_MoveParent,
/* 41286*/          OPC_MoveParent,
/* 41287*/          OPC_MoveParent,
/* 41288*/          OPC_MoveChild1,
/* 41289*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 41292*/          OPC_Scope, 17, /*->41311*/ // 2 children in Scope
/* 41294*/            OPC_CheckChild0Same, 1,
/* 41296*/            OPC_RecordChild1, // #2 = $MHS
/* 41297*/            OPC_MoveParent,
/* 41298*/            OPC_CheckType, MVT::v2i64,
/* 41300*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41302*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41311*/          /*Scope*/ 17, /*->41329*/
/* 41312*/            OPC_RecordChild0, // #2 = $MHS
/* 41313*/            OPC_CheckChild1Same, 1,
/* 41315*/            OPC_MoveParent,
/* 41316*/            OPC_CheckType, MVT::v2i64,
/* 41318*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41320*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>)), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41329*/          0, /*End of Scope*/
/* 41330*/        /*Scope*/ 52, /*->41383*/
/* 41331*/          OPC_MoveChild0,
/* 41332*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41335*/          OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41337*/          OPC_MoveParent,
/* 41338*/          OPC_RecordChild1, // #1 = $LHS
/* 41339*/          OPC_MoveParent,
/* 41340*/          OPC_MoveParent,
/* 41341*/          OPC_MoveChild1,
/* 41342*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 41345*/          OPC_Scope, 17, /*->41364*/ // 2 children in Scope
/* 41347*/            OPC_CheckChild0Same, 1,
/* 41349*/            OPC_RecordChild1, // #2 = $MHS
/* 41350*/            OPC_MoveParent,
/* 41351*/            OPC_CheckType, MVT::v2i64,
/* 41353*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41355*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$LHS)), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41364*/          /*Scope*/ 17, /*->41382*/
/* 41365*/            OPC_RecordChild0, // #2 = $MHS
/* 41366*/            OPC_CheckChild1Same, 1,
/* 41368*/            OPC_MoveParent,
/* 41369*/            OPC_CheckType, MVT::v2i64,
/* 41371*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41373*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$LHS)), (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$LHS)) - Complexity = 16
                      // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 41382*/          0, /*End of Scope*/
/* 41383*/        0, /*End of Scope*/
/* 41384*/      0, /*End of Scope*/
/* 41385*/    /*Scope*/ 9|128,1/*137*/, /*->41524*/
/* 41387*/      OPC_RecordChild0, // #0 = $Rn
/* 41388*/      OPC_MoveChild1,
/* 41389*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41392*/      OPC_Scope, 107, /*->41501*/ // 2 children in Scope
/* 41394*/        OPC_RecordChild0, // #1 = $Rm
/* 41395*/        OPC_MoveChild1,
/* 41396*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41399*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41401*/        OPC_MoveParent,
/* 41402*/        OPC_MoveParent,
/* 41403*/        OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->41416
/* 41406*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41408*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                        MVT::v8i8, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (ORNv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 41416*/        /*SwitchType*/ 10, MVT::v16i8,// ->41428
/* 41418*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41420*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (ORNv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 41428*/        /*SwitchType*/ 10, MVT::v4i16,// ->41440
/* 41430*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41432*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (ORNv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 41440*/        /*SwitchType*/ 10, MVT::v2i32,// ->41452
/* 41442*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41444*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (ORNv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 41452*/        /*SwitchType*/ 10, MVT::v1i64,// ->41464
/* 41454*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41456*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                        MVT::v1i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (ORNv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 41464*/        /*SwitchType*/ 10, MVT::v8i16,// ->41476
/* 41466*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41468*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (ORNv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 41476*/        /*SwitchType*/ 10, MVT::v4i32,// ->41488
/* 41478*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41480*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (ORNv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 41488*/        /*SwitchType*/ 10, MVT::v2i64,// ->41500
/* 41490*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41492*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                    // Dst: (ORNv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 41500*/        0, // EndSwitchType
/* 41501*/      /*Scope*/ 21, /*->41523*/
/* 41502*/        OPC_MoveChild0,
/* 41503*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41506*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41508*/        OPC_MoveParent,
/* 41509*/        OPC_RecordChild1, // #1 = $Rm
/* 41510*/        OPC_MoveParent,
/* 41511*/        OPC_CheckType, MVT::v8i8,
/* 41513*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41515*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rm)) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 41523*/      0, /*End of Scope*/
/* 41524*/    /*Scope*/ 52, /*->41577*/
/* 41525*/      OPC_MoveChild0,
/* 41526*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41529*/      OPC_Scope, 22, /*->41553*/ // 2 children in Scope
/* 41531*/        OPC_RecordChild0, // #0 = $Rm
/* 41532*/        OPC_MoveChild1,
/* 41533*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41536*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41538*/        OPC_MoveParent,
/* 41539*/        OPC_MoveParent,
/* 41540*/        OPC_RecordChild1, // #1 = $Rn
/* 41541*/        OPC_CheckType, MVT::v8i8,
/* 41543*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41545*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v8i8] } (xor:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rm, (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v8i8] }:$Rn) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 41553*/      /*Scope*/ 22, /*->41576*/
/* 41554*/        OPC_MoveChild0,
/* 41555*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41558*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41560*/        OPC_MoveParent,
/* 41561*/        OPC_RecordChild1, // #0 = $Rm
/* 41562*/        OPC_MoveParent,
/* 41563*/        OPC_RecordChild1, // #1 = $Rn
/* 41564*/        OPC_CheckType, MVT::v8i8,
/* 41566*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41568*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v8i8] } (xor:{ *:[v8i8] } (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v8i8] }:$Rm), V64:{ *:[v8i8] }:$Rn) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 41576*/      0, /*End of Scope*/
/* 41577*/    /*Scope*/ 26, /*->41604*/
/* 41578*/      OPC_RecordChild0, // #0 = $Rn
/* 41579*/      OPC_MoveChild1,
/* 41580*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41583*/      OPC_MoveChild0,
/* 41584*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41587*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41589*/      OPC_MoveParent,
/* 41590*/      OPC_RecordChild1, // #1 = $Rm
/* 41591*/      OPC_MoveParent,
/* 41592*/      OPC_CheckType, MVT::v16i8,
/* 41594*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41596*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (or:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rm)) - Complexity = 10
                // Dst: (ORNv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 41604*/    /*Scope*/ 52, /*->41657*/
/* 41605*/      OPC_MoveChild0,
/* 41606*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41609*/      OPC_Scope, 22, /*->41633*/ // 2 children in Scope
/* 41611*/        OPC_RecordChild0, // #0 = $Rm
/* 41612*/        OPC_MoveChild1,
/* 41613*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41616*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41618*/        OPC_MoveParent,
/* 41619*/        OPC_MoveParent,
/* 41620*/        OPC_RecordChild1, // #1 = $Rn
/* 41621*/        OPC_CheckType, MVT::v16i8,
/* 41623*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41625*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v16i8] } (xor:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rm, (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v16i8] }:$Rn) - Complexity = 10
                  // Dst: (ORNv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 41633*/      /*Scope*/ 22, /*->41656*/
/* 41634*/        OPC_MoveChild0,
/* 41635*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41638*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41640*/        OPC_MoveParent,
/* 41641*/        OPC_RecordChild1, // #0 = $Rm
/* 41642*/        OPC_MoveParent,
/* 41643*/        OPC_RecordChild1, // #1 = $Rn
/* 41644*/        OPC_CheckType, MVT::v16i8,
/* 41646*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41648*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v16i8] } (xor:{ *:[v16i8] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v16i8] }:$Rm), V128:{ *:[v16i8] }:$Rn) - Complexity = 10
                  // Dst: (ORNv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 41656*/      0, /*End of Scope*/
/* 41657*/    /*Scope*/ 26, /*->41684*/
/* 41658*/      OPC_RecordChild0, // #0 = $LHS
/* 41659*/      OPC_MoveChild1,
/* 41660*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41663*/      OPC_MoveChild0,
/* 41664*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41667*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41669*/      OPC_MoveParent,
/* 41670*/      OPC_RecordChild1, // #1 = $RHS
/* 41671*/      OPC_MoveParent,
/* 41672*/      OPC_CheckType, MVT::v4i16,
/* 41674*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41676*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (or:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$RHS)) - Complexity = 10
                // Dst: (ORNv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 41684*/    /*Scope*/ 52, /*->41737*/
/* 41685*/      OPC_MoveChild0,
/* 41686*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41689*/      OPC_Scope, 22, /*->41713*/ // 2 children in Scope
/* 41691*/        OPC_RecordChild0, // #0 = $RHS
/* 41692*/        OPC_MoveChild1,
/* 41693*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41696*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41698*/        OPC_MoveParent,
/* 41699*/        OPC_MoveParent,
/* 41700*/        OPC_RecordChild1, // #1 = $LHS
/* 41701*/        OPC_CheckType, MVT::v4i16,
/* 41703*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41705*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i16] } (xor:{ *:[v4i16] } V64:{ *:[v4i16] }:$RHS, (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v4i16] }:$LHS) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 41713*/      /*Scope*/ 22, /*->41736*/
/* 41714*/        OPC_MoveChild0,
/* 41715*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41718*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41720*/        OPC_MoveParent,
/* 41721*/        OPC_RecordChild1, // #0 = $RHS
/* 41722*/        OPC_MoveParent,
/* 41723*/        OPC_RecordChild1, // #1 = $LHS
/* 41724*/        OPC_CheckType, MVT::v4i16,
/* 41726*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41728*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i16] } (xor:{ *:[v4i16] } (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v4i16] }:$RHS), V64:{ *:[v4i16] }:$LHS) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 41736*/      0, /*End of Scope*/
/* 41737*/    /*Scope*/ 26, /*->41764*/
/* 41738*/      OPC_RecordChild0, // #0 = $LHS
/* 41739*/      OPC_MoveChild1,
/* 41740*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41743*/      OPC_MoveChild0,
/* 41744*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41747*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41749*/      OPC_MoveParent,
/* 41750*/      OPC_RecordChild1, // #1 = $RHS
/* 41751*/      OPC_MoveParent,
/* 41752*/      OPC_CheckType, MVT::v2i32,
/* 41754*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41756*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (or:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$RHS)) - Complexity = 10
                // Dst: (ORNv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 41764*/    /*Scope*/ 52, /*->41817*/
/* 41765*/      OPC_MoveChild0,
/* 41766*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41769*/      OPC_Scope, 22, /*->41793*/ // 2 children in Scope
/* 41771*/        OPC_RecordChild0, // #0 = $RHS
/* 41772*/        OPC_MoveChild1,
/* 41773*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41776*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41778*/        OPC_MoveParent,
/* 41779*/        OPC_MoveParent,
/* 41780*/        OPC_RecordChild1, // #1 = $LHS
/* 41781*/        OPC_CheckType, MVT::v2i32,
/* 41783*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41785*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v2i32] } (xor:{ *:[v2i32] } V64:{ *:[v2i32] }:$RHS, (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v2i32] }:$LHS) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 41793*/      /*Scope*/ 22, /*->41816*/
/* 41794*/        OPC_MoveChild0,
/* 41795*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41798*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41800*/        OPC_MoveParent,
/* 41801*/        OPC_RecordChild1, // #0 = $RHS
/* 41802*/        OPC_MoveParent,
/* 41803*/        OPC_RecordChild1, // #1 = $LHS
/* 41804*/        OPC_CheckType, MVT::v2i32,
/* 41806*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41808*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v2i32] } (xor:{ *:[v2i32] } (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v2i32] }:$RHS), V64:{ *:[v2i32] }:$LHS) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 41816*/      0, /*End of Scope*/
/* 41817*/    /*Scope*/ 26, /*->41844*/
/* 41818*/      OPC_RecordChild0, // #0 = $LHS
/* 41819*/      OPC_MoveChild1,
/* 41820*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41823*/      OPC_MoveChild0,
/* 41824*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41827*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41829*/      OPC_MoveParent,
/* 41830*/      OPC_RecordChild1, // #1 = $RHS
/* 41831*/      OPC_MoveParent,
/* 41832*/      OPC_CheckType, MVT::v1i64,
/* 41834*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41836*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (or:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$RHS)) - Complexity = 10
                // Dst: (ORNv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 41844*/    /*Scope*/ 52, /*->41897*/
/* 41845*/      OPC_MoveChild0,
/* 41846*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41849*/      OPC_Scope, 22, /*->41873*/ // 2 children in Scope
/* 41851*/        OPC_RecordChild0, // #0 = $RHS
/* 41852*/        OPC_MoveChild1,
/* 41853*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41856*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41858*/        OPC_MoveParent,
/* 41859*/        OPC_MoveParent,
/* 41860*/        OPC_RecordChild1, // #1 = $LHS
/* 41861*/        OPC_CheckType, MVT::v1i64,
/* 41863*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41865*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v1i64, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v1i64] } (xor:{ *:[v1i64] } V64:{ *:[v1i64] }:$RHS, (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>), V64:{ *:[v1i64] }:$LHS) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 41873*/      /*Scope*/ 22, /*->41896*/
/* 41874*/        OPC_MoveChild0,
/* 41875*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41878*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41880*/        OPC_MoveParent,
/* 41881*/        OPC_RecordChild1, // #0 = $RHS
/* 41882*/        OPC_MoveParent,
/* 41883*/        OPC_RecordChild1, // #1 = $LHS
/* 41884*/        OPC_CheckType, MVT::v1i64,
/* 41886*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41888*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv8i8), 0,
                      MVT::v1i64, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v1i64] } (xor:{ *:[v1i64] } (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>>, V64:{ *:[v1i64] }:$RHS), V64:{ *:[v1i64] }:$LHS) - Complexity = 10
                  // Dst: (ORNv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 41896*/      0, /*End of Scope*/
/* 41897*/    /*Scope*/ 26, /*->41924*/
/* 41898*/      OPC_RecordChild0, // #0 = $LHS
/* 41899*/      OPC_MoveChild1,
/* 41900*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41903*/      OPC_MoveChild0,
/* 41904*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41907*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41909*/      OPC_MoveParent,
/* 41910*/      OPC_RecordChild1, // #1 = $RHS
/* 41911*/      OPC_MoveParent,
/* 41912*/      OPC_CheckType, MVT::v8i16,
/* 41914*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41916*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (or:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$RHS)) - Complexity = 10
                // Dst: (ORNv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 41924*/    /*Scope*/ 52, /*->41977*/
/* 41925*/      OPC_MoveChild0,
/* 41926*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41929*/      OPC_Scope, 22, /*->41953*/ // 2 children in Scope
/* 41931*/        OPC_RecordChild0, // #0 = $RHS
/* 41932*/        OPC_MoveChild1,
/* 41933*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41936*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41938*/        OPC_MoveParent,
/* 41939*/        OPC_MoveParent,
/* 41940*/        OPC_RecordChild1, // #1 = $LHS
/* 41941*/        OPC_CheckType, MVT::v8i16,
/* 41943*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41945*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v8i16] } (xor:{ *:[v8i16] } V128:{ *:[v8i16] }:$RHS, (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v8i16] }:$LHS) - Complexity = 10
                  // Dst: (ORNv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 41953*/      /*Scope*/ 22, /*->41976*/
/* 41954*/        OPC_MoveChild0,
/* 41955*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41958*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41960*/        OPC_MoveParent,
/* 41961*/        OPC_RecordChild1, // #0 = $RHS
/* 41962*/        OPC_MoveParent,
/* 41963*/        OPC_RecordChild1, // #1 = $LHS
/* 41964*/        OPC_CheckType, MVT::v8i16,
/* 41966*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41968*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v8i16] } (xor:{ *:[v8i16] } (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v8i16] }:$RHS), V128:{ *:[v8i16] }:$LHS) - Complexity = 10
                  // Dst: (ORNv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 41976*/      0, /*End of Scope*/
/* 41977*/    /*Scope*/ 26, /*->42004*/
/* 41978*/      OPC_RecordChild0, // #0 = $LHS
/* 41979*/      OPC_MoveChild1,
/* 41980*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41983*/      OPC_MoveChild0,
/* 41984*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 41987*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 41989*/      OPC_MoveParent,
/* 41990*/      OPC_RecordChild1, // #1 = $RHS
/* 41991*/      OPC_MoveParent,
/* 41992*/      OPC_CheckType, MVT::v4i32,
/* 41994*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 41996*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (or:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$RHS)) - Complexity = 10
                // Dst: (ORNv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 42004*/    /*Scope*/ 52, /*->42057*/
/* 42005*/      OPC_MoveChild0,
/* 42006*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 42009*/      OPC_Scope, 22, /*->42033*/ // 2 children in Scope
/* 42011*/        OPC_RecordChild0, // #0 = $RHS
/* 42012*/        OPC_MoveChild1,
/* 42013*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 42016*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 42018*/        OPC_MoveParent,
/* 42019*/        OPC_MoveParent,
/* 42020*/        OPC_RecordChild1, // #1 = $LHS
/* 42021*/        OPC_CheckType, MVT::v4i32,
/* 42023*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42025*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } V128:{ *:[v4i32] }:$RHS, (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v4i32] }:$LHS) - Complexity = 10
                  // Dst: (ORNv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 42033*/      /*Scope*/ 22, /*->42056*/
/* 42034*/        OPC_MoveChild0,
/* 42035*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 42038*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 42040*/        OPC_MoveParent,
/* 42041*/        OPC_RecordChild1, // #0 = $RHS
/* 42042*/        OPC_MoveParent,
/* 42043*/        OPC_RecordChild1, // #1 = $LHS
/* 42044*/        OPC_CheckType, MVT::v4i32,
/* 42046*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42048*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v4i32] }:$RHS), V128:{ *:[v4i32] }:$LHS) - Complexity = 10
                  // Dst: (ORNv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 42056*/      0, /*End of Scope*/
/* 42057*/    /*Scope*/ 26, /*->42084*/
/* 42058*/      OPC_RecordChild0, // #0 = $LHS
/* 42059*/      OPC_MoveChild1,
/* 42060*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 42063*/      OPC_MoveChild0,
/* 42064*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 42067*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 42069*/      OPC_MoveParent,
/* 42070*/      OPC_RecordChild1, // #1 = $RHS
/* 42071*/      OPC_MoveParent,
/* 42072*/      OPC_CheckType, MVT::v2i64,
/* 42074*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42076*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (or:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$RHS)) - Complexity = 10
                // Dst: (ORNv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 42084*/    /*Scope*/ 52, /*->42137*/
/* 42085*/      OPC_MoveChild0,
/* 42086*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 42089*/      OPC_Scope, 22, /*->42113*/ // 2 children in Scope
/* 42091*/        OPC_RecordChild0, // #0 = $RHS
/* 42092*/        OPC_MoveChild1,
/* 42093*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 42096*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 42098*/        OPC_MoveParent,
/* 42099*/        OPC_MoveParent,
/* 42100*/        OPC_RecordChild1, // #1 = $LHS
/* 42101*/        OPC_CheckType, MVT::v2i64,
/* 42103*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42105*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v2i64] } (xor:{ *:[v2i64] } V128:{ *:[v2i64] }:$RHS, (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>), V128:{ *:[v2i64] }:$LHS) - Complexity = 10
                  // Dst: (ORNv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 42113*/      /*Scope*/ 22, /*->42136*/
/* 42114*/        OPC_MoveChild0,
/* 42115*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 42118*/        OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 42120*/        OPC_MoveParent,
/* 42121*/        OPC_RecordChild1, // #0 = $RHS
/* 42122*/        OPC_MoveParent,
/* 42123*/        OPC_RecordChild1, // #1 = $LHS
/* 42124*/        OPC_CheckType, MVT::v2i64,
/* 42126*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42128*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORNv16i8), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v2i64] } (xor:{ *:[v2i64] } (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>>, V128:{ *:[v2i64] }:$RHS), V128:{ *:[v2i64] }:$LHS) - Complexity = 10
                  // Dst: (ORNv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 42136*/      0, /*End of Scope*/
/* 42137*/    /*Scope*/ 100, /*->42238*/
/* 42138*/      OPC_RecordChild0, // #0 = $Rn
/* 42139*/      OPC_RecordChild1, // #1 = $Rm
/* 42140*/      OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->42153
/* 42143*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42145*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                  // Dst: (ORRv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 42153*/      /*SwitchType*/ 10, MVT::v16i8,// ->42165
/* 42155*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42157*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                  // Dst: (ORRv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 42165*/      /*SwitchType*/ 10, MVT::v4i16,// ->42177
/* 42167*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42169*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv8i8), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS) - Complexity = 3
                  // Dst: (ORRv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$RHS)
/* 42177*/      /*SwitchType*/ 10, MVT::v2i32,// ->42189
/* 42179*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42181*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv8i8), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS) - Complexity = 3
                  // Dst: (ORRv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$RHS)
/* 42189*/      /*SwitchType*/ 10, MVT::v1i64,// ->42201
/* 42191*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42193*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv8i8), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS) - Complexity = 3
                  // Dst: (ORRv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$RHS)
/* 42201*/      /*SwitchType*/ 10, MVT::v8i16,// ->42213
/* 42203*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42205*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv16i8), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS) - Complexity = 3
                  // Dst: (ORRv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$RHS)
/* 42213*/      /*SwitchType*/ 10, MVT::v4i32,// ->42225
/* 42215*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42217*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv16i8), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS) - Complexity = 3
                  // Dst: (ORRv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$RHS)
/* 42225*/      /*SwitchType*/ 10, MVT::v2i64,// ->42237
/* 42227*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 42229*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv16i8), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS) - Complexity = 3
                  // Dst: (ORRv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$RHS)
/* 42237*/      0, // EndSwitchType
/* 42238*/    0, /*End of Scope*/
/* 42239*/  /*SwitchOpcode*/ 93|128,5/*733*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->42976
/* 42243*/    OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 42244*/    OPC_Scope, 9|128,2/*265*/, /*->42512*/ // 4 children in Scope
/* 42247*/      OPC_CheckChild1Integer, 115|128,2/*371*/, 
/* 42250*/      OPC_Scope, 42|128,1/*170*/, /*->42423*/ // 2 children in Scope
/* 42253*/        OPC_MoveChild2,
/* 42254*/        OPC_Scope, 49, /*->42305*/ // 5 children in Scope
/* 42256*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 42259*/          OPC_MoveChild0,
/* 42260*/          OPC_Scope, 20, /*->42282*/ // 2 children in Scope
/* 42262*/            OPC_CheckAndImm, 127|128,1/*255*/, 
/* 42265*/            OPC_RecordChild0, // #1 = $val
/* 42266*/            OPC_MoveParent,
/* 42267*/            OPC_MoveParent,
/* 42268*/            OPC_RecordChild3, // #2 = $addr
/* 42269*/            OPC_CheckChild3Type, MVT::i64,
/* 42271*/            OPC_CheckPredicate, 37, // Predicate_stxr_1
/* 42273*/            OPC_EmitMergeInputChains1_0,
/* 42274*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRB), 0|OPFL_Chain,
                          MVT::i32, 2/*#Ops*/, 1, 2, 
                      // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, (zext:{ *:[i64] } (and:{ *:[i32] } GPR32:{ *:[i32] }:$val, 255:{ *:[i32] })), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_1>> - Complexity = 20
                      // Dst: (STXRB:{ *:[i32] } GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$addr)
/* 42282*/          /*Scope*/ 21, /*->42304*/
/* 42283*/            OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 42287*/            OPC_RecordChild0, // #1 = $val
/* 42288*/            OPC_MoveParent,
/* 42289*/            OPC_MoveParent,
/* 42290*/            OPC_RecordChild3, // #2 = $addr
/* 42291*/            OPC_CheckChild3Type, MVT::i64,
/* 42293*/            OPC_CheckPredicate, 38, // Predicate_stxr_2
/* 42295*/            OPC_EmitMergeInputChains1_0,
/* 42296*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRH), 0|OPFL_Chain,
                          MVT::i32, 2/*#Ops*/, 1, 2, 
                      // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, (zext:{ *:[i64] } (and:{ *:[i32] } GPR32:{ *:[i32] }:$val, 65535:{ *:[i32] })), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_2>> - Complexity = 20
                      // Dst: (STXRH:{ *:[i32] } GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$addr)
/* 42304*/          0, /*End of Scope*/
/* 42305*/        /*Scope*/ 30, /*->42336*/
/* 42306*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 42309*/          OPC_RecordChild0, // #1 = $val
/* 42310*/          OPC_MoveParent,
/* 42311*/          OPC_RecordChild3, // #2 = $addr
/* 42312*/          OPC_CheckChild3Type, MVT::i64,
/* 42314*/          OPC_CheckPredicate, 37, // Predicate_stxr_1
/* 42316*/          OPC_EmitMergeInputChains1_0,
/* 42317*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42320*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42328*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRB), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, (and:{ *:[i64] } GPR64:{ *:[i64] }:$val, 255:{ *:[i64] }), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_1>> - Complexity = 17
                    // Dst: (STXRB:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42336*/        /*Scope*/ 31, /*->42368*/
/* 42337*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 42341*/          OPC_RecordChild0, // #1 = $val
/* 42342*/          OPC_MoveParent,
/* 42343*/          OPC_RecordChild3, // #2 = $addr
/* 42344*/          OPC_CheckChild3Type, MVT::i64,
/* 42346*/          OPC_CheckPredicate, 38, // Predicate_stxr_2
/* 42348*/          OPC_EmitMergeInputChains1_0,
/* 42349*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42352*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42360*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRH), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, (and:{ *:[i64] } GPR64:{ *:[i64] }:$val, 65535:{ *:[i64] }), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_2>> - Complexity = 17
                    // Dst: (STXRH:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42368*/        /*Scope*/ 33, /*->42402*/
/* 42369*/          OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/* 42375*/          OPC_RecordChild0, // #1 = $val
/* 42376*/          OPC_MoveParent,
/* 42377*/          OPC_RecordChild3, // #2 = $addr
/* 42378*/          OPC_CheckChild3Type, MVT::i64,
/* 42380*/          OPC_CheckPredicate, 39, // Predicate_stxr_4
/* 42382*/          OPC_EmitMergeInputChains1_0,
/* 42383*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42386*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42394*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRW), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, (and:{ *:[i64] } GPR64:{ *:[i64] }:$val, 4294967295:{ *:[i64] }), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_4>> - Complexity = 17
                    // Dst: (STXRW:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42402*/        /*Scope*/ 19, /*->42422*/
/* 42403*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 42406*/          OPC_RecordChild0, // #1 = $val
/* 42407*/          OPC_MoveParent,
/* 42408*/          OPC_RecordChild3, // #2 = $addr
/* 42409*/          OPC_CheckChild3Type, MVT::i64,
/* 42411*/          OPC_CheckPredicate, 39, // Predicate_stxr_4
/* 42413*/          OPC_EmitMergeInputChains1_0,
/* 42414*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRW), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, (zext:{ *:[i64] } GPR32:{ *:[i32] }:$val), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_4>> - Complexity = 12
                    // Dst: (STXRW:{ *:[i32] } GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$addr)
/* 42422*/        0, /*End of Scope*/
/* 42423*/      /*Scope*/ 87, /*->42511*/
/* 42424*/        OPC_RecordChild2, // #1 = $val
/* 42425*/        OPC_RecordChild3, // #2 = $addr
/* 42426*/        OPC_CheckChild3Type, MVT::i64,
/* 42428*/        OPC_Scope, 11, /*->42441*/ // 4 children in Scope
/* 42430*/          OPC_CheckPredicate, 46, // Predicate_stxr_8
/* 42432*/          OPC_EmitMergeInputChains1_0,
/* 42433*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRX), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_8>> - Complexity = 9
                    // Dst: (STXRX:{ *:[i32] } GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)
/* 42441*/        /*Scope*/ 22, /*->42464*/
/* 42442*/          OPC_CheckPredicate, 37, // Predicate_stxr_1
/* 42444*/          OPC_EmitMergeInputChains1_0,
/* 42445*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42448*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42456*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRB), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_1>> - Complexity = 9
                    // Dst: (STXRB:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42464*/        /*Scope*/ 22, /*->42487*/
/* 42465*/          OPC_CheckPredicate, 38, // Predicate_stxr_2
/* 42467*/          OPC_EmitMergeInputChains1_0,
/* 42468*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42471*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42479*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRH), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_2>> - Complexity = 9
                    // Dst: (STXRH:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42487*/        /*Scope*/ 22, /*->42510*/
/* 42488*/          OPC_CheckPredicate, 39, // Predicate_stxr_4
/* 42490*/          OPC_EmitMergeInputChains1_0,
/* 42491*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42494*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42502*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STXRW), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 371:{ *:[iPTR] }, GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stxr_4>> - Complexity = 9
                    // Dst: (STXRW:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42510*/        0, /*End of Scope*/
/* 42511*/      0, /*End of Scope*/
/* 42512*/    /*Scope*/ 9|128,2/*265*/, /*->42779*/
/* 42514*/      OPC_CheckChild1Integer, 113|128,2/*369*/, 
/* 42517*/      OPC_Scope, 42|128,1/*170*/, /*->42690*/ // 2 children in Scope
/* 42520*/        OPC_MoveChild2,
/* 42521*/        OPC_Scope, 49, /*->42572*/ // 5 children in Scope
/* 42523*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 42526*/          OPC_MoveChild0,
/* 42527*/          OPC_Scope, 20, /*->42549*/ // 2 children in Scope
/* 42529*/            OPC_CheckAndImm, 127|128,1/*255*/, 
/* 42532*/            OPC_RecordChild0, // #1 = $val
/* 42533*/            OPC_MoveParent,
/* 42534*/            OPC_MoveParent,
/* 42535*/            OPC_RecordChild3, // #2 = $addr
/* 42536*/            OPC_CheckChild3Type, MVT::i64,
/* 42538*/            OPC_CheckPredicate, 37, // Predicate_stlxr_1
/* 42540*/            OPC_EmitMergeInputChains1_0,
/* 42541*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRB), 0|OPFL_Chain,
                          MVT::i32, 2/*#Ops*/, 1, 2, 
                      // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, (zext:{ *:[i64] } (and:{ *:[i32] } GPR32:{ *:[i32] }:$val, 255:{ *:[i32] })), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_1>> - Complexity = 20
                      // Dst: (STLXRB:{ *:[i32] } GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$addr)
/* 42549*/          /*Scope*/ 21, /*->42571*/
/* 42550*/            OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 42554*/            OPC_RecordChild0, // #1 = $val
/* 42555*/            OPC_MoveParent,
/* 42556*/            OPC_MoveParent,
/* 42557*/            OPC_RecordChild3, // #2 = $addr
/* 42558*/            OPC_CheckChild3Type, MVT::i64,
/* 42560*/            OPC_CheckPredicate, 38, // Predicate_stlxr_2
/* 42562*/            OPC_EmitMergeInputChains1_0,
/* 42563*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRH), 0|OPFL_Chain,
                          MVT::i32, 2/*#Ops*/, 1, 2, 
                      // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, (zext:{ *:[i64] } (and:{ *:[i32] } GPR32:{ *:[i32] }:$val, 65535:{ *:[i32] })), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_2>> - Complexity = 20
                      // Dst: (STLXRH:{ *:[i32] } GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$addr)
/* 42571*/          0, /*End of Scope*/
/* 42572*/        /*Scope*/ 30, /*->42603*/
/* 42573*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 42576*/          OPC_RecordChild0, // #1 = $val
/* 42577*/          OPC_MoveParent,
/* 42578*/          OPC_RecordChild3, // #2 = $addr
/* 42579*/          OPC_CheckChild3Type, MVT::i64,
/* 42581*/          OPC_CheckPredicate, 37, // Predicate_stlxr_1
/* 42583*/          OPC_EmitMergeInputChains1_0,
/* 42584*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42587*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42595*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRB), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, (and:{ *:[i64] } GPR64:{ *:[i64] }:$val, 255:{ *:[i64] }), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_1>> - Complexity = 17
                    // Dst: (STLXRB:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42603*/        /*Scope*/ 31, /*->42635*/
/* 42604*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 42608*/          OPC_RecordChild0, // #1 = $val
/* 42609*/          OPC_MoveParent,
/* 42610*/          OPC_RecordChild3, // #2 = $addr
/* 42611*/          OPC_CheckChild3Type, MVT::i64,
/* 42613*/          OPC_CheckPredicate, 38, // Predicate_stlxr_2
/* 42615*/          OPC_EmitMergeInputChains1_0,
/* 42616*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42619*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42627*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRH), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, (and:{ *:[i64] } GPR64:{ *:[i64] }:$val, 65535:{ *:[i64] }), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_2>> - Complexity = 17
                    // Dst: (STLXRH:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42635*/        /*Scope*/ 33, /*->42669*/
/* 42636*/          OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/* 42642*/          OPC_RecordChild0, // #1 = $val
/* 42643*/          OPC_MoveParent,
/* 42644*/          OPC_RecordChild3, // #2 = $addr
/* 42645*/          OPC_CheckChild3Type, MVT::i64,
/* 42647*/          OPC_CheckPredicate, 39, // Predicate_stlxr_4
/* 42649*/          OPC_EmitMergeInputChains1_0,
/* 42650*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42653*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42661*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRW), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, (and:{ *:[i64] } GPR64:{ *:[i64] }:$val, 4294967295:{ *:[i64] }), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_4>> - Complexity = 17
                    // Dst: (STLXRW:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42669*/        /*Scope*/ 19, /*->42689*/
/* 42670*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 42673*/          OPC_RecordChild0, // #1 = $val
/* 42674*/          OPC_MoveParent,
/* 42675*/          OPC_RecordChild3, // #2 = $addr
/* 42676*/          OPC_CheckChild3Type, MVT::i64,
/* 42678*/          OPC_CheckPredicate, 39, // Predicate_stlxr_4
/* 42680*/          OPC_EmitMergeInputChains1_0,
/* 42681*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRW), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, (zext:{ *:[i64] } GPR32:{ *:[i32] }:$val), GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_4>> - Complexity = 12
                    // Dst: (STLXRW:{ *:[i32] } GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$addr)
/* 42689*/        0, /*End of Scope*/
/* 42690*/      /*Scope*/ 87, /*->42778*/
/* 42691*/        OPC_RecordChild2, // #1 = $val
/* 42692*/        OPC_RecordChild3, // #2 = $addr
/* 42693*/        OPC_CheckChild3Type, MVT::i64,
/* 42695*/        OPC_Scope, 11, /*->42708*/ // 4 children in Scope
/* 42697*/          OPC_CheckPredicate, 46, // Predicate_stlxr_8
/* 42699*/          OPC_EmitMergeInputChains1_0,
/* 42700*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRX), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_8>> - Complexity = 9
                    // Dst: (STLXRX:{ *:[i32] } GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)
/* 42708*/        /*Scope*/ 22, /*->42731*/
/* 42709*/          OPC_CheckPredicate, 37, // Predicate_stlxr_1
/* 42711*/          OPC_EmitMergeInputChains1_0,
/* 42712*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42715*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42723*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRB), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_1>> - Complexity = 9
                    // Dst: (STLXRB:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42731*/        /*Scope*/ 22, /*->42754*/
/* 42732*/          OPC_CheckPredicate, 38, // Predicate_stlxr_2
/* 42734*/          OPC_EmitMergeInputChains1_0,
/* 42735*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42738*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42746*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRH), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_2>> - Complexity = 9
                    // Dst: (STLXRH:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42754*/        /*Scope*/ 22, /*->42777*/
/* 42755*/          OPC_CheckPredicate, 39, // Predicate_stlxr_4
/* 42757*/          OPC_EmitMergeInputChains1_0,
/* 42758*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42761*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 42769*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::STLXRW), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 4, 2, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 369:{ *:[iPTR] }, GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_stlxr_4>> - Complexity = 9
                    // Dst: (STLXRW:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$val, sub_32:{ *:[i32] }), GPR64sp:{ *:[i64] }:$addr)
/* 42777*/        0, /*End of Scope*/
/* 42778*/      0, /*End of Scope*/
/* 42779*/    /*Scope*/ 97, /*->42877*/
/* 42780*/      OPC_CheckChild1Integer, 84|128,1/*212*/, 
/* 42783*/      OPC_RecordChild2, // #1 = $addr
/* 42784*/      OPC_CheckChild2Type, MVT::i64,
/* 42786*/      OPC_Scope, 10, /*->42798*/ // 4 children in Scope
/* 42788*/        OPC_CheckPredicate, 46, // Predicate_ldxr_8
/* 42790*/        OPC_EmitMergeInputChains1_0,
/* 42791*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDXRX), 0|OPFL_Chain,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 212:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldxr_8>> - Complexity = 9
                  // Dst: (LDXRX:{ *:[i64] } GPR64sp:{ *:[i64] }:$addr)
/* 42798*/      /*Scope*/ 25, /*->42824*/
/* 42799*/        OPC_CheckPredicate, 37, // Predicate_ldxr_1
/* 42801*/        OPC_EmitMergeInputChains1_0,
/* 42802*/        OPC_EmitInteger, MVT::i64, 0, 
/* 42805*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDXRB), 0|OPFL_Chain,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 42812*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42815*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 212:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldxr_1>> - Complexity = 9
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDXRB:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 42824*/      /*Scope*/ 25, /*->42850*/
/* 42825*/        OPC_CheckPredicate, 38, // Predicate_ldxr_2
/* 42827*/        OPC_EmitMergeInputChains1_0,
/* 42828*/        OPC_EmitInteger, MVT::i64, 0, 
/* 42831*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDXRH), 0|OPFL_Chain,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 42838*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42841*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 212:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldxr_2>> - Complexity = 9
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDXRH:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 42850*/      /*Scope*/ 25, /*->42876*/
/* 42851*/        OPC_CheckPredicate, 39, // Predicate_ldxr_4
/* 42853*/        OPC_EmitMergeInputChains1_0,
/* 42854*/        OPC_EmitInteger, MVT::i64, 0, 
/* 42857*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDXRW), 0|OPFL_Chain,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 42864*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42867*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 212:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldxr_4>> - Complexity = 9
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDXRW:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 42876*/      0, /*End of Scope*/
/* 42877*/    /*Scope*/ 97, /*->42975*/
/* 42878*/      OPC_CheckChild1Integer, 82|128,1/*210*/, 
/* 42881*/      OPC_RecordChild2, // #1 = $addr
/* 42882*/      OPC_CheckChild2Type, MVT::i64,
/* 42884*/      OPC_Scope, 10, /*->42896*/ // 4 children in Scope
/* 42886*/        OPC_CheckPredicate, 46, // Predicate_ldaxr_8
/* 42888*/        OPC_EmitMergeInputChains1_0,
/* 42889*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDAXRX), 0|OPFL_Chain,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 210:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldaxr_8>> - Complexity = 9
                  // Dst: (LDAXRX:{ *:[i64] } GPR64sp:{ *:[i64] }:$addr)
/* 42896*/      /*Scope*/ 25, /*->42922*/
/* 42897*/        OPC_CheckPredicate, 37, // Predicate_ldaxr_1
/* 42899*/        OPC_EmitMergeInputChains1_0,
/* 42900*/        OPC_EmitInteger, MVT::i64, 0, 
/* 42903*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDAXRB), 0|OPFL_Chain,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 42910*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42913*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 210:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldaxr_1>> - Complexity = 9
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDAXRB:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 42922*/      /*Scope*/ 25, /*->42948*/
/* 42923*/        OPC_CheckPredicate, 38, // Predicate_ldaxr_2
/* 42925*/        OPC_EmitMergeInputChains1_0,
/* 42926*/        OPC_EmitInteger, MVT::i64, 0, 
/* 42929*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDAXRH), 0|OPFL_Chain,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 42936*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42939*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 210:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldaxr_2>> - Complexity = 9
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDAXRH:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 42948*/      /*Scope*/ 25, /*->42974*/
/* 42949*/        OPC_CheckPredicate, 39, // Predicate_ldaxr_4
/* 42951*/        OPC_EmitMergeInputChains1_0,
/* 42952*/        OPC_EmitInteger, MVT::i64, 0, 
/* 42955*/        OPC_EmitNode1, TARGET_VAL(AArch64::LDAXRW), 0|OPFL_Chain,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #3
/* 42962*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 42965*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 210:{ *:[iPTR] }, GPR64sp:{ *:[i64] }:$addr)<<P:Predicate_ldaxr_4>> - Complexity = 9
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDAXRW:{ *:[i32] } GPR64sp:{ *:[i64] }:$addr), sub_32:{ *:[i32] })
/* 42974*/      0, /*End of Scope*/
/* 42975*/    0, /*End of Scope*/
/* 42976*/  /*SwitchOpcode*/ 48|128,60/*7728*/, TARGET_VAL(ISD::ADD),// ->50708
/* 42980*/    OPC_Scope, 61, /*->43043*/ // 34 children in Scope
/* 42982*/      OPC_MoveChild0,
/* 42983*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 42986*/      OPC_RecordChild0, // #0 = $Rn
/* 42987*/      OPC_CheckChild0Type, MVT::v2i64,
/* 42989*/      OPC_Scope, 25, /*->43016*/ // 2 children in Scope
/* 42991*/        OPC_CheckChild1Integer, 0, 
/* 42993*/        OPC_CheckChild1Type, MVT::i64,
/* 42995*/        OPC_MoveParent,
/* 42996*/        OPC_MoveChild1,
/* 42997*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 43000*/        OPC_CheckChild0Same, 0,
/* 43002*/        OPC_CheckChild1Integer, 1, 
/* 43004*/        OPC_CheckChild1Type, MVT::i64,
/* 43006*/        OPC_MoveParent,
/* 43007*/        OPC_CheckType, MVT::i64,
/* 43009*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv2i64p), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (add:{ *:[i64] } (vector_extract:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rn, 0:{ *:[i64] }), (vector_extract:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rn, 1:{ *:[i64] })) - Complexity = 19
                  // Dst: (ADDPv2i64p:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rn)
/* 43016*/      /*Scope*/ 25, /*->43042*/
/* 43017*/        OPC_CheckChild1Integer, 1, 
/* 43019*/        OPC_CheckChild1Type, MVT::i64,
/* 43021*/        OPC_MoveParent,
/* 43022*/        OPC_MoveChild1,
/* 43023*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 43026*/        OPC_CheckChild0Same, 0,
/* 43028*/        OPC_CheckChild1Integer, 0, 
/* 43030*/        OPC_CheckChild1Type, MVT::i64,
/* 43032*/        OPC_MoveParent,
/* 43033*/        OPC_CheckType, MVT::i64,
/* 43035*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv2i64p), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (add:{ *:[i64] } (vector_extract:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rn, 1:{ *:[i64] }), (vector_extract:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rn, 0:{ *:[i64] })) - Complexity = 19
                  // Dst: (ADDPv2i64p:{ *:[i64] } FPR128:{ *:[v2i64] }:$Rn)
/* 43042*/      0, /*End of Scope*/
/* 43043*/    /*Scope*/ 64, /*->43108*/
/* 43044*/      OPC_RecordChild0, // #0 = $Rn
/* 43045*/      OPC_RecordChild1, // #1 = $imm
/* 43046*/      OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->43077
/* 43049*/        OPC_Scope, 12, /*->43063*/ // 2 children in Scope
/* 43051*/          OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectArithImmed:$imm #2 #3
/* 43054*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDWri), 0,
                        MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (add:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm) - Complexity = 18
                    // Dst: (ADDWri:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 43063*/        /*Scope*/ 12, /*->43076*/
/* 43064*/          OPC_CheckComplexPat, /*CP*/32, /*#*/0, // SelectArithImmed:$imm #2 #3
/* 43067*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDWri), 0,
                        MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (add:{ *:[i32] } addsub_shifted_imm32:{ *:[i32] }:$imm, GPR32sp:{ *:[i32] }:$Rn) - Complexity = 18
                    // Dst: (ADDWri:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 43076*/        0, /*End of Scope*/
/* 43077*/      /*SwitchType*/ 28, MVT::i64,// ->43107
/* 43079*/        OPC_Scope, 12, /*->43093*/ // 2 children in Scope
/* 43081*/          OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectArithImmed:$imm #2 #3
/* 43084*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDXri), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                    // Src: (add:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm) - Complexity = 18
                    // Dst: (ADDXri:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 43093*/        /*Scope*/ 12, /*->43106*/
/* 43094*/          OPC_CheckComplexPat, /*CP*/36, /*#*/0, // SelectArithImmed:$imm #2 #3
/* 43097*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDXri), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (add:{ *:[i64] } addsub_shifted_imm64:{ *:[i64] }:$imm, GPR64sp:{ *:[i64] }:$Rn) - Complexity = 18
                    // Dst: (ADDXri:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 43106*/        0, /*End of Scope*/
/* 43107*/      0, // EndSwitchType
/* 43108*/    /*Scope*/ 83, /*->43192*/
/* 43109*/      OPC_MoveChild0,
/* 43110*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 43113*/      OPC_MoveChild0,
/* 43114*/      OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::SIGN_EXTEND),// ->43153
/* 43118*/        OPC_RecordChild0, // #0 = $Rn
/* 43119*/        OPC_MoveParent,
/* 43120*/        OPC_RecordChild1, // #1 = $C
/* 43121*/        OPC_MoveChild1,
/* 43122*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43125*/        OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 43127*/        OPC_MoveParent,
/* 43128*/        OPC_MoveParent,
/* 43129*/        OPC_RecordChild1, // #2 = $Ra
/* 43130*/        OPC_CheckType, MVT::i64,
/* 43132*/        OPC_EmitConvertToTarget, 1,
/* 43134*/        OPC_EmitNodeXForm, 2, 3, // trunc_imm
/* 43137*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/* 43144*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 0, 5, 2, 
                  // Src: (add:{ *:[i64] } (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C), GPR64:{ *:[i64] }:$Ra) - Complexity = 18
                  // Dst: (SMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 43153*/      /*SwitchOpcode*/ 35, TARGET_VAL(ISD::ZERO_EXTEND),// ->43191
/* 43156*/        OPC_RecordChild0, // #0 = $Rn
/* 43157*/        OPC_MoveParent,
/* 43158*/        OPC_RecordChild1, // #1 = $C
/* 43159*/        OPC_MoveChild1,
/* 43160*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43163*/        OPC_CheckPredicate, 44, // Predicate_i64imm_32bit
/* 43165*/        OPC_MoveParent,
/* 43166*/        OPC_MoveParent,
/* 43167*/        OPC_RecordChild1, // #2 = $Ra
/* 43168*/        OPC_CheckType, MVT::i64,
/* 43170*/        OPC_EmitConvertToTarget, 1,
/* 43172*/        OPC_EmitNodeXForm, 2, 3, // trunc_imm
/* 43175*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/* 43182*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 0, 5, 2, 
                  // Src: (add:{ *:[i64] } (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_i64imm_32bit>>:$C), GPR64:{ *:[i64] }:$Ra) - Complexity = 18
                  // Dst: (UMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 43191*/      0, // EndSwitchOpcode
/* 43192*/    /*Scope*/ 82, /*->43275*/
/* 43193*/      OPC_RecordChild0, // #0 = $Ra
/* 43194*/      OPC_MoveChild1,
/* 43195*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 43198*/      OPC_MoveChild0,
/* 43199*/      OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::SIGN_EXTEND),// ->43237
/* 43203*/        OPC_RecordChild0, // #1 = $Rn
/* 43204*/        OPC_MoveParent,
/* 43205*/        OPC_RecordChild1, // #2 = $C
/* 43206*/        OPC_MoveChild1,
/* 43207*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43210*/        OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 43212*/        OPC_MoveParent,
/* 43213*/        OPC_MoveParent,
/* 43214*/        OPC_CheckType, MVT::i64,
/* 43216*/        OPC_EmitConvertToTarget, 2,
/* 43218*/        OPC_EmitNodeXForm, 2, 3, // trunc_imm
/* 43221*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/* 43228*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 1, 5, 0, 
                  // Src: (add:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C)) - Complexity = 18
                  // Dst: (SMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 43237*/      /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ZERO_EXTEND),// ->43274
/* 43240*/        OPC_RecordChild0, // #1 = $Rn
/* 43241*/        OPC_MoveParent,
/* 43242*/        OPC_RecordChild1, // #2 = $C
/* 43243*/        OPC_MoveChild1,
/* 43244*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43247*/        OPC_CheckPredicate, 44, // Predicate_i64imm_32bit
/* 43249*/        OPC_MoveParent,
/* 43250*/        OPC_MoveParent,
/* 43251*/        OPC_CheckType, MVT::i64,
/* 43253*/        OPC_EmitConvertToTarget, 2,
/* 43255*/        OPC_EmitNodeXForm, 2, 3, // trunc_imm
/* 43258*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/* 43265*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 1, 5, 0, 
                  // Src: (add:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_i64imm_32bit>>:$C)) - Complexity = 18
                  // Dst: (UMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 43274*/      0, // EndSwitchOpcode
/* 43275*/    /*Scope*/ 56, /*->43332*/
/* 43276*/      OPC_MoveChild0,
/* 43277*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 43280*/      OPC_MoveChild0,
/* 43281*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 43284*/      OPC_RecordChild0, // #0 = $Rn
/* 43285*/      OPC_MoveChild1,
/* 43286*/      OPC_CheckValueType, MVT::i32,
/* 43288*/      OPC_MoveParent,
/* 43289*/      OPC_MoveParent,
/* 43290*/      OPC_RecordChild1, // #1 = $C
/* 43291*/      OPC_MoveChild1,
/* 43292*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43295*/      OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 43297*/      OPC_MoveParent,
/* 43298*/      OPC_MoveParent,
/* 43299*/      OPC_RecordChild1, // #2 = $Ra
/* 43300*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 43303*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 43311*/      OPC_EmitConvertToTarget, 1,
/* 43313*/      OPC_EmitNodeXForm, 2, 5, // trunc_imm
/* 43316*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 43323*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                    MVT::i64, 3/*#Ops*/, 4, 7, 2, 
                // Src: (add:{ *:[i64] } (mul:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i32:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C), GPR64:{ *:[i64] }:$Ra) - Complexity = 18
                // Dst: (SMADDLrrr:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, sub_32:{ *:[i32] }), (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 43332*/    /*Scope*/ 104, /*->43437*/
/* 43333*/      OPC_RecordChild0, // #0 = $Ra
/* 43334*/      OPC_MoveChild1,
/* 43335*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 43338*/      OPC_MoveChild0,
/* 43339*/      OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->43390
/* 43343*/        OPC_RecordChild0, // #1 = $Rn
/* 43344*/        OPC_MoveChild1,
/* 43345*/        OPC_CheckValueType, MVT::i32,
/* 43347*/        OPC_MoveParent,
/* 43348*/        OPC_MoveParent,
/* 43349*/        OPC_RecordChild1, // #2 = $C
/* 43350*/        OPC_MoveChild1,
/* 43351*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43354*/        OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 43356*/        OPC_MoveParent,
/* 43357*/        OPC_MoveParent,
/* 43358*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 43361*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 43369*/        OPC_EmitConvertToTarget, 2,
/* 43371*/        OPC_EmitNodeXForm, 2, 5, // trunc_imm
/* 43374*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 43381*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 4, 7, 0, 
                  // Src: (add:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i32:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C)) - Complexity = 18
                  // Dst: (SMADDLrrr:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, sub_32:{ *:[i32] }), (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), GPR64:{ *:[i64] }:$Ra)
/* 43390*/      /*SwitchOpcode*/ 20, TARGET_VAL(ISD::SIGN_EXTEND),// ->43413
/* 43393*/        OPC_RecordChild0, // #1 = $Rn
/* 43394*/        OPC_MoveParent,
/* 43395*/        OPC_MoveChild1,
/* 43396*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 43399*/        OPC_RecordChild0, // #2 = $Rm
/* 43400*/        OPC_MoveParent,
/* 43401*/        OPC_MoveParent,
/* 43402*/        OPC_CheckType, MVT::i64,
/* 43404*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (add:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm))) - Complexity = 17
                  // Dst: (SMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, GPR64:{ *:[i64] }:$Ra)
/* 43413*/      /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ZERO_EXTEND),// ->43436
/* 43416*/        OPC_RecordChild0, // #1 = $Rn
/* 43417*/        OPC_MoveParent,
/* 43418*/        OPC_MoveChild1,
/* 43419*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 43422*/        OPC_RecordChild0, // #2 = $Rm
/* 43423*/        OPC_MoveParent,
/* 43424*/        OPC_MoveParent,
/* 43425*/        OPC_CheckType, MVT::i64,
/* 43427*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (add:{ *:[i64] } GPR64:{ *:[i64] }:$Ra, (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm))) - Complexity = 17
                  // Dst: (UMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, GPR64:{ *:[i64] }:$Ra)
/* 43436*/      0, // EndSwitchOpcode
/* 43437*/    /*Scope*/ 55, /*->43493*/
/* 43438*/      OPC_MoveChild0,
/* 43439*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 43442*/      OPC_MoveChild0,
/* 43443*/      OPC_SwitchOpcode /*2 cases */, 21, TARGET_VAL(ISD::SIGN_EXTEND),// ->43468
/* 43447*/        OPC_RecordChild0, // #0 = $Rn
/* 43448*/        OPC_MoveParent,
/* 43449*/        OPC_MoveChild1,
/* 43450*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 43453*/        OPC_RecordChild0, // #1 = $Rm
/* 43454*/        OPC_MoveParent,
/* 43455*/        OPC_MoveParent,
/* 43456*/        OPC_RecordChild1, // #2 = $Ra
/* 43457*/        OPC_CheckType, MVT::i64,
/* 43459*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (add:{ *:[i64] } (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)), GPR64:{ *:[i64] }:$Ra) - Complexity = 17
                  // Dst: (SMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, GPR64:{ *:[i64] }:$Ra)
/* 43468*/      /*SwitchOpcode*/ 21, TARGET_VAL(ISD::ZERO_EXTEND),// ->43492
/* 43471*/        OPC_RecordChild0, // #0 = $Rn
/* 43472*/        OPC_MoveParent,
/* 43473*/        OPC_MoveChild1,
/* 43474*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 43477*/        OPC_RecordChild0, // #1 = $Rm
/* 43478*/        OPC_MoveParent,
/* 43479*/        OPC_MoveParent,
/* 43480*/        OPC_RecordChild1, // #2 = $Ra
/* 43481*/        OPC_CheckType, MVT::i64,
/* 43483*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (add:{ *:[i64] } (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)), GPR64:{ *:[i64] }:$Ra) - Complexity = 17
                  // Dst: (UMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, GPR64:{ *:[i64] }:$Ra)
/* 43492*/      0, // EndSwitchOpcode
/* 43493*/    /*Scope*/ 44|128,2/*300*/, /*->43795*/
/* 43495*/      OPC_RecordChild0, // #0 = $R2
/* 43496*/      OPC_Scope, 43|128,1/*171*/, /*->43670*/ // 2 children in Scope
/* 43499*/        OPC_RecordChild1, // #1 = $R3
/* 43500*/        OPC_SwitchType /*2 cases */, 82, MVT::i32,// ->43585
/* 43503*/          OPC_Scope, 12, /*->43517*/ // 6 children in Scope
/* 43505*/            OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectArithExtendedRegister:$R3 #2 #3
/* 43508*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDWrx), 0,
                          MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (add:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3) - Complexity = 13
                      // Dst: (ADDWrx:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3)
/* 43517*/          /*Scope*/ 13, /*->43531*/
/* 43518*/            OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectNegArithImmed:$imm #2 #3
/* 43521*/            OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWri), 0,
                          MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (add:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm) - Complexity = 13
                      // Dst: (SUBSWri:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 43531*/          /*Scope*/ 12, /*->43544*/
/* 43532*/            OPC_CheckComplexPat, /*CP*/30, /*#*/0, // SelectArithExtendedRegister:$R3 #2 #3
/* 43535*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDWrx), 0,
                          MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (add:{ *:[i32] } anonymous_1081:{ *:[i32] }:$R3, GPR32sp:{ *:[i32] }:$R2) - Complexity = 13
                      // Dst: (ADDWrx:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3)
/* 43544*/          /*Scope*/ 13, /*->43558*/
/* 43545*/            OPC_CheckComplexPat, /*CP*/31, /*#*/0, // SelectNegArithImmed:$imm #2 #3
/* 43548*/            OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWri), 0,
                          MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (add:{ *:[i32] } neg_addsub_shifted_imm32:{ *:[i32] }:$imm, GPR32:{ *:[i32] }:$Rn) - Complexity = 13
                      // Dst: (SUBSWri:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 43558*/          /*Scope*/ 12, /*->43571*/
/* 43559*/            OPC_CheckComplexPat, /*CP*/33, /*#*/1, // SelectArithShiftedRegister:$Rm #2 #3
/* 43562*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDWrs), 0,
                          MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (add:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 12
                      // Dst: (ADDWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm)
/* 43571*/          /*Scope*/ 12, /*->43584*/
/* 43572*/            OPC_CheckComplexPat, /*CP*/33, /*#*/0, // SelectArithShiftedRegister:$Rm #2 #3
/* 43575*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDWrs), 0,
                          MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (add:{ *:[i32] } arith_shifted_reg32:{ *:[i32] }:$Rm, GPR32:{ *:[i32] }:$Rn) - Complexity = 12
                      // Dst: (ADDWrs:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm)
/* 43584*/          0, /*End of Scope*/
/* 43585*/        /*SwitchType*/ 82, MVT::i64,// ->43669
/* 43587*/          OPC_Scope, 12, /*->43601*/ // 6 children in Scope
/* 43589*/            OPC_CheckComplexPat, /*CP*/34, /*#*/1, // SelectArithExtendedRegister:$R3 #2 #3
/* 43592*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDXrx), 0,
                          MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (add:{ *:[i64] } GPR64sp:{ *:[i64] }:$R2, anonymous_1082:{ *:[i64] }:$R3) - Complexity = 13
                      // Dst: (ADDXrx:{ *:[i64] } GPR64sp:{ *:[i64] }:$R2, anonymous_1082:{ *:[i64] }:$R3)
/* 43601*/          /*Scope*/ 13, /*->43615*/
/* 43602*/            OPC_CheckComplexPat, /*CP*/35, /*#*/1, // SelectNegArithImmed:$imm #2 #3
/* 43605*/            OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXri), 0,
                          MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (add:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm) - Complexity = 13
                      // Dst: (SUBSXri:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 43615*/          /*Scope*/ 12, /*->43628*/
/* 43616*/            OPC_CheckComplexPat, /*CP*/34, /*#*/0, // SelectArithExtendedRegister:$R3 #2 #3
/* 43619*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDXrx), 0,
                          MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (add:{ *:[i64] } anonymous_1082:{ *:[i64] }:$R3, GPR64sp:{ *:[i64] }:$R2) - Complexity = 13
                      // Dst: (ADDXrx:{ *:[i64] } GPR64sp:{ *:[i64] }:$R2, anonymous_1082:{ *:[i64] }:$R3)
/* 43628*/          /*Scope*/ 13, /*->43642*/
/* 43629*/            OPC_CheckComplexPat, /*CP*/35, /*#*/0, // SelectNegArithImmed:$imm #2 #3
/* 43632*/            OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXri), 0,
                          MVT::i64, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (add:{ *:[i64] } neg_addsub_shifted_imm64:{ *:[i64] }:$imm, GPR64:{ *:[i64] }:$Rn) - Complexity = 13
                      // Dst: (SUBSXri:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 43642*/          /*Scope*/ 12, /*->43655*/
/* 43643*/            OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectArithShiftedRegister:$Rm #2 #3
/* 43646*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDXrs), 0,
                          MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (add:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 12
                      // Dst: (ADDXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm)
/* 43655*/          /*Scope*/ 12, /*->43668*/
/* 43656*/            OPC_CheckComplexPat, /*CP*/37, /*#*/0, // SelectArithShiftedRegister:$Rm #2 #3
/* 43659*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDXrs), 0,
                          MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (add:{ *:[i64] } arith_shifted_reg64:{ *:[i64] }:$Rm, GPR64:{ *:[i64] }:$Rn) - Complexity = 12
                      // Dst: (ADDXrs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm)
/* 43668*/          0, /*End of Scope*/
/* 43669*/        0, // EndSwitchType
/* 43670*/      /*Scope*/ 123, /*->43794*/
/* 43671*/        OPC_MoveChild1,
/* 43672*/        OPC_SwitchOpcode /*4 cases */, 27, TARGET_VAL(AArch64ISD::SRSHR_I),// ->43703
/* 43676*/          OPC_RecordChild0, // #1 = $Rn
/* 43677*/          OPC_RecordChild1, // #2 = $imm
/* 43678*/          OPC_MoveChild1,
/* 43679*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43682*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 43684*/          OPC_CheckType, MVT::i32,
/* 43686*/          OPC_MoveParent,
/* 43687*/          OPC_MoveParent,
/* 43688*/          OPC_CheckType, MVT::i64,
/* 43690*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 43692*/          OPC_EmitConvertToTarget, 2,
/* 43694*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAd), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, (AArch64srshri:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (SRSRAd:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 43703*/        /*SwitchOpcode*/ 27, TARGET_VAL(AArch64ISD::VASHR),// ->43733
/* 43706*/          OPC_RecordChild0, // #1 = $Rn
/* 43707*/          OPC_RecordChild1, // #2 = $imm
/* 43708*/          OPC_MoveChild1,
/* 43709*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43712*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 43714*/          OPC_CheckType, MVT::i32,
/* 43716*/          OPC_MoveParent,
/* 43717*/          OPC_MoveParent,
/* 43718*/          OPC_CheckType, MVT::i64,
/* 43720*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 43722*/          OPC_EmitConvertToTarget, 2,
/* 43724*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAd), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, (AArch64vashr:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (SSRAd:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 43733*/        /*SwitchOpcode*/ 27, TARGET_VAL(AArch64ISD::URSHR_I),// ->43763
/* 43736*/          OPC_RecordChild0, // #1 = $Rn
/* 43737*/          OPC_RecordChild1, // #2 = $imm
/* 43738*/          OPC_MoveChild1,
/* 43739*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43742*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 43744*/          OPC_CheckType, MVT::i32,
/* 43746*/          OPC_MoveParent,
/* 43747*/          OPC_MoveParent,
/* 43748*/          OPC_CheckType, MVT::i64,
/* 43750*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 43752*/          OPC_EmitConvertToTarget, 2,
/* 43754*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAd), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, (AArch64urshri:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (URSRAd:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 43763*/        /*SwitchOpcode*/ 27, TARGET_VAL(AArch64ISD::VLSHR),// ->43793
/* 43766*/          OPC_RecordChild0, // #1 = $Rn
/* 43767*/          OPC_RecordChild1, // #2 = $imm
/* 43768*/          OPC_MoveChild1,
/* 43769*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43772*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 43774*/          OPC_CheckType, MVT::i32,
/* 43776*/          OPC_MoveParent,
/* 43777*/          OPC_MoveParent,
/* 43778*/          OPC_CheckType, MVT::i64,
/* 43780*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 43782*/          OPC_EmitConvertToTarget, 2,
/* 43784*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAd), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, (AArch64vlshr:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (USRAd:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 43793*/        0, // EndSwitchOpcode
/* 43794*/      0, /*End of Scope*/
/* 43795*/    /*Scope*/ 127, /*->43923*/
/* 43796*/      OPC_MoveChild0,
/* 43797*/      OPC_SwitchOpcode /*4 cases */, 28, TARGET_VAL(AArch64ISD::SRSHR_I),// ->43829
/* 43801*/        OPC_RecordChild0, // #0 = $Rn
/* 43802*/        OPC_RecordChild1, // #1 = $imm
/* 43803*/        OPC_MoveChild1,
/* 43804*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43807*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 43809*/        OPC_CheckType, MVT::i32,
/* 43811*/        OPC_MoveParent,
/* 43812*/        OPC_MoveParent,
/* 43813*/        OPC_RecordChild1, // #2 = $Rd
/* 43814*/        OPC_CheckType, MVT::i64,
/* 43816*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 43818*/        OPC_EmitConvertToTarget, 1,
/* 43820*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAd), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3, 
                  // Src: (add:{ *:[i64] } (AArch64srshri:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), FPR64:{ *:[i64] }:$Rd) - Complexity = 10
                  // Dst: (SRSRAd:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 43829*/      /*SwitchOpcode*/ 28, TARGET_VAL(AArch64ISD::VASHR),// ->43860
/* 43832*/        OPC_RecordChild0, // #0 = $Rn
/* 43833*/        OPC_RecordChild1, // #1 = $imm
/* 43834*/        OPC_MoveChild1,
/* 43835*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43838*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 43840*/        OPC_CheckType, MVT::i32,
/* 43842*/        OPC_MoveParent,
/* 43843*/        OPC_MoveParent,
/* 43844*/        OPC_RecordChild1, // #2 = $Rd
/* 43845*/        OPC_CheckType, MVT::i64,
/* 43847*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 43849*/        OPC_EmitConvertToTarget, 1,
/* 43851*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAd), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3, 
                  // Src: (add:{ *:[i64] } (AArch64vashr:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), FPR64:{ *:[i64] }:$Rd) - Complexity = 10
                  // Dst: (SSRAd:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 43860*/      /*SwitchOpcode*/ 28, TARGET_VAL(AArch64ISD::URSHR_I),// ->43891
/* 43863*/        OPC_RecordChild0, // #0 = $Rn
/* 43864*/        OPC_RecordChild1, // #1 = $imm
/* 43865*/        OPC_MoveChild1,
/* 43866*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43869*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 43871*/        OPC_CheckType, MVT::i32,
/* 43873*/        OPC_MoveParent,
/* 43874*/        OPC_MoveParent,
/* 43875*/        OPC_RecordChild1, // #2 = $Rd
/* 43876*/        OPC_CheckType, MVT::i64,
/* 43878*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 43880*/        OPC_EmitConvertToTarget, 1,
/* 43882*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAd), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3, 
                  // Src: (add:{ *:[i64] } (AArch64urshri:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), FPR64:{ *:[i64] }:$Rd) - Complexity = 10
                  // Dst: (URSRAd:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 43891*/      /*SwitchOpcode*/ 28, TARGET_VAL(AArch64ISD::VLSHR),// ->43922
/* 43894*/        OPC_RecordChild0, // #0 = $Rn
/* 43895*/        OPC_RecordChild1, // #1 = $imm
/* 43896*/        OPC_MoveChild1,
/* 43897*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43900*/        OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 43902*/        OPC_CheckType, MVT::i32,
/* 43904*/        OPC_MoveParent,
/* 43905*/        OPC_MoveParent,
/* 43906*/        OPC_RecordChild1, // #2 = $Rd
/* 43907*/        OPC_CheckType, MVT::i64,
/* 43909*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 43911*/        OPC_EmitConvertToTarget, 1,
/* 43913*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAd), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3, 
                  // Src: (add:{ *:[i64] } (AArch64vlshr:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), FPR64:{ *:[i64] }:$Rd) - Complexity = 10
                  // Dst: (USRAd:{ *:[i64] } FPR64:{ *:[i64] }:$Rd, FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 43922*/      0, // EndSwitchOpcode
/* 43923*/    /*Scope*/ 13|128,2/*269*/, /*->44194*/
/* 43925*/      OPC_RecordChild0, // #0 = $Rn
/* 43926*/      OPC_Scope, 23, /*->43951*/ // 2 children in Scope
/* 43928*/        OPC_RecordChild1, // #1 = $Rm
/* 43929*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->43940
/* 43932*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDWrr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                    // Dst: (ADDWrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 43940*/        /*SwitchType*/ 8, MVT::i64,// ->43950
/* 43942*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDXrr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (ADDXrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 43950*/        0, // EndSwitchType
/* 43951*/      /*Scope*/ 112|128,1/*240*/, /*->44193*/
/* 43953*/        OPC_MoveChild1,
/* 43954*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 43957*/        OPC_Scope, 116, /*->44075*/ // 2 children in Scope
/* 43959*/          OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 43962*/          OPC_MoveChild1,
/* 43963*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 43966*/          OPC_RecordChild0, // #1 = $Rn
/* 43967*/          OPC_SwitchType /*2 cases */, 51, MVT::v4i16,// ->44021
/* 43970*/            OPC_CheckChild1Integer, 4, 
/* 43972*/            OPC_CheckChild1Type, MVT::i64,
/* 43974*/            OPC_MoveParent,
/* 43975*/            OPC_MoveChild2,
/* 43976*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 43979*/            OPC_MoveChild0,
/* 43980*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 43983*/            OPC_RecordChild0, // #2 = $Rm
/* 43984*/            OPC_CheckChild0Type, MVT::v8i16,
/* 43986*/            OPC_RecordChild1, // #3 = $idx
/* 43987*/            OPC_MoveChild1,
/* 43988*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43991*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 43993*/            OPC_CheckType, MVT::i64,
/* 43995*/            OPC_MoveParent,
/* 43996*/            OPC_MoveParent,
/* 43997*/            OPC_CheckChild1Integer, 4, 
/* 43999*/            OPC_CheckChild1Type, MVT::i64,
/* 44001*/            OPC_CheckType, MVT::v4i16,
/* 44003*/            OPC_MoveParent,
/* 44004*/            OPC_MoveParent,
/* 44005*/            OPC_CheckType, MVT::v4i32,
/* 44007*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44009*/            OPC_EmitConvertToTarget, 3,
/* 44011*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv8i16_indexed), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] }))) - Complexity = 34
                      // Dst: (SMLALv8i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 44021*/          /*SwitchType*/ 51, MVT::v2i32,// ->44074
/* 44023*/            OPC_CheckChild1Integer, 2, 
/* 44025*/            OPC_CheckChild1Type, MVT::i64,
/* 44027*/            OPC_MoveParent,
/* 44028*/            OPC_MoveChild2,
/* 44029*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44032*/            OPC_MoveChild0,
/* 44033*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 44036*/            OPC_RecordChild0, // #2 = $Rm
/* 44037*/            OPC_CheckChild0Type, MVT::v4i32,
/* 44039*/            OPC_RecordChild1, // #3 = $idx
/* 44040*/            OPC_MoveChild1,
/* 44041*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44044*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 44046*/            OPC_CheckType, MVT::i64,
/* 44048*/            OPC_MoveParent,
/* 44049*/            OPC_MoveParent,
/* 44050*/            OPC_CheckChild1Integer, 2, 
/* 44052*/            OPC_CheckChild1Type, MVT::i64,
/* 44054*/            OPC_CheckType, MVT::v2i32,
/* 44056*/            OPC_MoveParent,
/* 44057*/            OPC_MoveParent,
/* 44058*/            OPC_CheckType, MVT::v2i64,
/* 44060*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44062*/            OPC_EmitConvertToTarget, 3,
/* 44064*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i32_indexed), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] }))) - Complexity = 34
                      // Dst: (SMLALv4i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 44074*/          0, // EndSwitchType
/* 44075*/        /*Scope*/ 116, /*->44192*/
/* 44076*/          OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 44079*/          OPC_MoveChild1,
/* 44080*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44083*/          OPC_RecordChild0, // #1 = $Rn
/* 44084*/          OPC_SwitchType /*2 cases */, 51, MVT::v4i16,// ->44138
/* 44087*/            OPC_CheckChild1Integer, 4, 
/* 44089*/            OPC_CheckChild1Type, MVT::i64,
/* 44091*/            OPC_MoveParent,
/* 44092*/            OPC_MoveChild2,
/* 44093*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44096*/            OPC_MoveChild0,
/* 44097*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 44100*/            OPC_RecordChild0, // #2 = $Rm
/* 44101*/            OPC_CheckChild0Type, MVT::v8i16,
/* 44103*/            OPC_RecordChild1, // #3 = $idx
/* 44104*/            OPC_MoveChild1,
/* 44105*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44108*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 44110*/            OPC_CheckType, MVT::i64,
/* 44112*/            OPC_MoveParent,
/* 44113*/            OPC_MoveParent,
/* 44114*/            OPC_CheckChild1Integer, 4, 
/* 44116*/            OPC_CheckChild1Type, MVT::i64,
/* 44118*/            OPC_CheckType, MVT::v4i16,
/* 44120*/            OPC_MoveParent,
/* 44121*/            OPC_MoveParent,
/* 44122*/            OPC_CheckType, MVT::v4i32,
/* 44124*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44126*/            OPC_EmitConvertToTarget, 3,
/* 44128*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv8i16_indexed), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] }))) - Complexity = 34
                      // Dst: (UMLALv8i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 44138*/          /*SwitchType*/ 51, MVT::v2i32,// ->44191
/* 44140*/            OPC_CheckChild1Integer, 2, 
/* 44142*/            OPC_CheckChild1Type, MVT::i64,
/* 44144*/            OPC_MoveParent,
/* 44145*/            OPC_MoveChild2,
/* 44146*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44149*/            OPC_MoveChild0,
/* 44150*/            OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 44153*/            OPC_RecordChild0, // #2 = $Rm
/* 44154*/            OPC_CheckChild0Type, MVT::v4i32,
/* 44156*/            OPC_RecordChild1, // #3 = $idx
/* 44157*/            OPC_MoveChild1,
/* 44158*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44161*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 44163*/            OPC_CheckType, MVT::i64,
/* 44165*/            OPC_MoveParent,
/* 44166*/            OPC_MoveParent,
/* 44167*/            OPC_CheckChild1Integer, 2, 
/* 44169*/            OPC_CheckChild1Type, MVT::i64,
/* 44171*/            OPC_CheckType, MVT::v2i32,
/* 44173*/            OPC_MoveParent,
/* 44174*/            OPC_MoveParent,
/* 44175*/            OPC_CheckType, MVT::v2i64,
/* 44177*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44179*/            OPC_EmitConvertToTarget, 3,
/* 44181*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i32_indexed), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] }))) - Complexity = 34
                      // Dst: (UMLALv4i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 44191*/          0, // EndSwitchType
/* 44192*/        0, /*End of Scope*/
/* 44193*/      0, /*End of Scope*/
/* 44194*/    /*Scope*/ 116|128,1/*244*/, /*->44440*/
/* 44196*/      OPC_MoveChild0,
/* 44197*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 44200*/      OPC_Scope, 118, /*->44320*/ // 2 children in Scope
/* 44202*/        OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 44205*/        OPC_MoveChild1,
/* 44206*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44209*/        OPC_RecordChild0, // #0 = $Rn
/* 44210*/        OPC_SwitchType /*2 cases */, 52, MVT::v4i16,// ->44265
/* 44213*/          OPC_CheckChild1Integer, 4, 
/* 44215*/          OPC_CheckChild1Type, MVT::i64,
/* 44217*/          OPC_MoveParent,
/* 44218*/          OPC_MoveChild2,
/* 44219*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44222*/          OPC_MoveChild0,
/* 44223*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 44226*/          OPC_RecordChild0, // #1 = $Rm
/* 44227*/          OPC_CheckChild0Type, MVT::v8i16,
/* 44229*/          OPC_RecordChild1, // #2 = $idx
/* 44230*/          OPC_MoveChild1,
/* 44231*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44234*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 44236*/          OPC_CheckType, MVT::i64,
/* 44238*/          OPC_MoveParent,
/* 44239*/          OPC_MoveParent,
/* 44240*/          OPC_CheckChild1Integer, 4, 
/* 44242*/          OPC_CheckChild1Type, MVT::i64,
/* 44244*/          OPC_CheckType, MVT::v4i16,
/* 44246*/          OPC_MoveParent,
/* 44247*/          OPC_MoveParent,
/* 44248*/          OPC_RecordChild1, // #3 = $Rd
/* 44249*/          OPC_CheckType, MVT::v4i32,
/* 44251*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44253*/          OPC_EmitConvertToTarget, 2,
/* 44255*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv8i16_indexed), 0,
                        MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] })), V128:{ *:[v4i32] }:$Rd) - Complexity = 34
                    // Dst: (SMLALv8i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 44265*/        /*SwitchType*/ 52, MVT::v2i32,// ->44319
/* 44267*/          OPC_CheckChild1Integer, 2, 
/* 44269*/          OPC_CheckChild1Type, MVT::i64,
/* 44271*/          OPC_MoveParent,
/* 44272*/          OPC_MoveChild2,
/* 44273*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44276*/          OPC_MoveChild0,
/* 44277*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 44280*/          OPC_RecordChild0, // #1 = $Rm
/* 44281*/          OPC_CheckChild0Type, MVT::v4i32,
/* 44283*/          OPC_RecordChild1, // #2 = $idx
/* 44284*/          OPC_MoveChild1,
/* 44285*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44288*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 44290*/          OPC_CheckType, MVT::i64,
/* 44292*/          OPC_MoveParent,
/* 44293*/          OPC_MoveParent,
/* 44294*/          OPC_CheckChild1Integer, 2, 
/* 44296*/          OPC_CheckChild1Type, MVT::i64,
/* 44298*/          OPC_CheckType, MVT::v2i32,
/* 44300*/          OPC_MoveParent,
/* 44301*/          OPC_MoveParent,
/* 44302*/          OPC_RecordChild1, // #3 = $Rd
/* 44303*/          OPC_CheckType, MVT::v2i64,
/* 44305*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44307*/          OPC_EmitConvertToTarget, 2,
/* 44309*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i32_indexed), 0,
                        MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] })), V128:{ *:[v2i64] }:$Rd) - Complexity = 34
                    // Dst: (SMLALv4i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 44319*/        0, // EndSwitchType
/* 44320*/      /*Scope*/ 118, /*->44439*/
/* 44321*/        OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 44324*/        OPC_MoveChild1,
/* 44325*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44328*/        OPC_RecordChild0, // #0 = $Rn
/* 44329*/        OPC_SwitchType /*2 cases */, 52, MVT::v4i16,// ->44384
/* 44332*/          OPC_CheckChild1Integer, 4, 
/* 44334*/          OPC_CheckChild1Type, MVT::i64,
/* 44336*/          OPC_MoveParent,
/* 44337*/          OPC_MoveChild2,
/* 44338*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44341*/          OPC_MoveChild0,
/* 44342*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 44345*/          OPC_RecordChild0, // #1 = $Rm
/* 44346*/          OPC_CheckChild0Type, MVT::v8i16,
/* 44348*/          OPC_RecordChild1, // #2 = $idx
/* 44349*/          OPC_MoveChild1,
/* 44350*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44353*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 44355*/          OPC_CheckType, MVT::i64,
/* 44357*/          OPC_MoveParent,
/* 44358*/          OPC_MoveParent,
/* 44359*/          OPC_CheckChild1Integer, 4, 
/* 44361*/          OPC_CheckChild1Type, MVT::i64,
/* 44363*/          OPC_CheckType, MVT::v4i16,
/* 44365*/          OPC_MoveParent,
/* 44366*/          OPC_MoveParent,
/* 44367*/          OPC_RecordChild1, // #3 = $Rd
/* 44368*/          OPC_CheckType, MVT::v4i32,
/* 44370*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44372*/          OPC_EmitConvertToTarget, 2,
/* 44374*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv8i16_indexed), 0,
                        MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), 4:{ *:[i64] })), V128:{ *:[v4i32] }:$Rd) - Complexity = 34
                    // Dst: (UMLALv8i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 44384*/        /*SwitchType*/ 52, MVT::v2i32,// ->44438
/* 44386*/          OPC_CheckChild1Integer, 2, 
/* 44388*/          OPC_CheckChild1Type, MVT::i64,
/* 44390*/          OPC_MoveParent,
/* 44391*/          OPC_MoveChild2,
/* 44392*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44395*/          OPC_MoveChild0,
/* 44396*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 44399*/          OPC_RecordChild0, // #1 = $Rm
/* 44400*/          OPC_CheckChild0Type, MVT::v4i32,
/* 44402*/          OPC_RecordChild1, // #2 = $idx
/* 44403*/          OPC_MoveChild1,
/* 44404*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44407*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 44409*/          OPC_CheckType, MVT::i64,
/* 44411*/          OPC_MoveParent,
/* 44412*/          OPC_MoveParent,
/* 44413*/          OPC_CheckChild1Integer, 2, 
/* 44415*/          OPC_CheckChild1Type, MVT::i64,
/* 44417*/          OPC_CheckType, MVT::v2i32,
/* 44419*/          OPC_MoveParent,
/* 44420*/          OPC_MoveParent,
/* 44421*/          OPC_RecordChild1, // #3 = $Rd
/* 44422*/          OPC_CheckType, MVT::v2i64,
/* 44424*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44426*/          OPC_EmitConvertToTarget, 2,
/* 44428*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i32_indexed), 0,
                        MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), 2:{ *:[i64] })), V128:{ *:[v2i64] }:$Rd) - Complexity = 34
                    // Dst: (UMLALv4i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 44438*/        0, // EndSwitchType
/* 44439*/      0, /*End of Scope*/
/* 44440*/    /*Scope*/ 121|128,1/*249*/, /*->44691*/
/* 44442*/      OPC_RecordChild0, // #0 = $Rd
/* 44443*/      OPC_MoveChild1,
/* 44444*/      OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 44447*/      OPC_MoveChild0,
/* 44448*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 44451*/      OPC_Scope, 118, /*->44571*/ // 2 children in Scope
/* 44453*/        OPC_CheckChild0Integer, 14|128,2/*270*/, 
/* 44456*/        OPC_MoveChild1,
/* 44457*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44460*/        OPC_RecordChild0, // #1 = $Rn
/* 44461*/        OPC_SwitchType /*3 cases */, 34, MVT::v8i8,// ->44498
/* 44464*/          OPC_CheckChild1Integer, 8, 
/* 44466*/          OPC_CheckChild1Type, MVT::i64,
/* 44468*/          OPC_MoveParent,
/* 44469*/          OPC_MoveChild2,
/* 44470*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44473*/          OPC_RecordChild0, // #2 = $Rm
/* 44474*/          OPC_CheckChild1Integer, 8, 
/* 44476*/          OPC_CheckChild1Type, MVT::i64,
/* 44478*/          OPC_CheckType, MVT::v8i8,
/* 44480*/          OPC_MoveParent,
/* 44481*/          OPC_CheckType, MVT::v8i8,
/* 44483*/          OPC_MoveParent,
/* 44484*/          OPC_MoveParent,
/* 44485*/          OPC_CheckType, MVT::v8i16,
/* 44487*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44489*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv16i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })))) - Complexity = 30
                    // Dst: (SABALv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 44498*/        /*SwitchType*/ 34, MVT::v4i16,// ->44534
/* 44500*/          OPC_CheckChild1Integer, 4, 
/* 44502*/          OPC_CheckChild1Type, MVT::i64,
/* 44504*/          OPC_MoveParent,
/* 44505*/          OPC_MoveChild2,
/* 44506*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44509*/          OPC_RecordChild0, // #2 = $Rm
/* 44510*/          OPC_CheckChild1Integer, 4, 
/* 44512*/          OPC_CheckChild1Type, MVT::i64,
/* 44514*/          OPC_CheckType, MVT::v4i16,
/* 44516*/          OPC_MoveParent,
/* 44517*/          OPC_CheckType, MVT::v4i16,
/* 44519*/          OPC_MoveParent,
/* 44520*/          OPC_MoveParent,
/* 44521*/          OPC_CheckType, MVT::v4i32,
/* 44523*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44525*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv8i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })))) - Complexity = 30
                    // Dst: (SABALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 44534*/        /*SwitchType*/ 34, MVT::v2i32,// ->44570
/* 44536*/          OPC_CheckChild1Integer, 2, 
/* 44538*/          OPC_CheckChild1Type, MVT::i64,
/* 44540*/          OPC_MoveParent,
/* 44541*/          OPC_MoveChild2,
/* 44542*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44545*/          OPC_RecordChild0, // #2 = $Rm
/* 44546*/          OPC_CheckChild1Integer, 2, 
/* 44548*/          OPC_CheckChild1Type, MVT::i64,
/* 44550*/          OPC_CheckType, MVT::v2i32,
/* 44552*/          OPC_MoveParent,
/* 44553*/          OPC_CheckType, MVT::v2i32,
/* 44555*/          OPC_MoveParent,
/* 44556*/          OPC_MoveParent,
/* 44557*/          OPC_CheckType, MVT::v2i64,
/* 44559*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44561*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv4i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })))) - Complexity = 30
                    // Dst: (SABALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 44570*/        0, // EndSwitchType
/* 44571*/      /*Scope*/ 118, /*->44690*/
/* 44572*/        OPC_CheckChild0Integer, 72|128,2/*328*/, 
/* 44575*/        OPC_MoveChild1,
/* 44576*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44579*/        OPC_RecordChild0, // #1 = $Rn
/* 44580*/        OPC_SwitchType /*3 cases */, 34, MVT::v8i8,// ->44617
/* 44583*/          OPC_CheckChild1Integer, 8, 
/* 44585*/          OPC_CheckChild1Type, MVT::i64,
/* 44587*/          OPC_MoveParent,
/* 44588*/          OPC_MoveChild2,
/* 44589*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44592*/          OPC_RecordChild0, // #2 = $Rm
/* 44593*/          OPC_CheckChild1Integer, 8, 
/* 44595*/          OPC_CheckChild1Type, MVT::i64,
/* 44597*/          OPC_CheckType, MVT::v8i8,
/* 44599*/          OPC_MoveParent,
/* 44600*/          OPC_CheckType, MVT::v8i8,
/* 44602*/          OPC_MoveParent,
/* 44603*/          OPC_MoveParent,
/* 44604*/          OPC_CheckType, MVT::v8i16,
/* 44606*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44608*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv16i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })))) - Complexity = 30
                    // Dst: (UABALv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 44617*/        /*SwitchType*/ 34, MVT::v4i16,// ->44653
/* 44619*/          OPC_CheckChild1Integer, 4, 
/* 44621*/          OPC_CheckChild1Type, MVT::i64,
/* 44623*/          OPC_MoveParent,
/* 44624*/          OPC_MoveChild2,
/* 44625*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44628*/          OPC_RecordChild0, // #2 = $Rm
/* 44629*/          OPC_CheckChild1Integer, 4, 
/* 44631*/          OPC_CheckChild1Type, MVT::i64,
/* 44633*/          OPC_CheckType, MVT::v4i16,
/* 44635*/          OPC_MoveParent,
/* 44636*/          OPC_CheckType, MVT::v4i16,
/* 44638*/          OPC_MoveParent,
/* 44639*/          OPC_MoveParent,
/* 44640*/          OPC_CheckType, MVT::v4i32,
/* 44642*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44644*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv8i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })))) - Complexity = 30
                    // Dst: (UABALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 44653*/        /*SwitchType*/ 34, MVT::v2i32,// ->44689
/* 44655*/          OPC_CheckChild1Integer, 2, 
/* 44657*/          OPC_CheckChild1Type, MVT::i64,
/* 44659*/          OPC_MoveParent,
/* 44660*/          OPC_MoveChild2,
/* 44661*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44664*/          OPC_RecordChild0, // #2 = $Rm
/* 44665*/          OPC_CheckChild1Integer, 2, 
/* 44667*/          OPC_CheckChild1Type, MVT::i64,
/* 44669*/          OPC_CheckType, MVT::v2i32,
/* 44671*/          OPC_MoveParent,
/* 44672*/          OPC_CheckType, MVT::v2i32,
/* 44674*/          OPC_MoveParent,
/* 44675*/          OPC_MoveParent,
/* 44676*/          OPC_CheckType, MVT::v2i64,
/* 44678*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44680*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv4i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })))) - Complexity = 30
                    // Dst: (UABALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 44689*/        0, // EndSwitchType
/* 44690*/      0, /*End of Scope*/
/* 44691*/    /*Scope*/ 126|128,1/*254*/, /*->44947*/
/* 44693*/      OPC_MoveChild0,
/* 44694*/      OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 44697*/      OPC_MoveChild0,
/* 44698*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 44701*/      OPC_Scope, 121, /*->44824*/ // 2 children in Scope
/* 44703*/        OPC_CheckChild0Integer, 14|128,2/*270*/, 
/* 44706*/        OPC_MoveChild1,
/* 44707*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44710*/        OPC_RecordChild0, // #0 = $Rn
/* 44711*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i8,// ->44749
/* 44714*/          OPC_CheckChild1Integer, 8, 
/* 44716*/          OPC_CheckChild1Type, MVT::i64,
/* 44718*/          OPC_MoveParent,
/* 44719*/          OPC_MoveChild2,
/* 44720*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44723*/          OPC_RecordChild0, // #1 = $Rm
/* 44724*/          OPC_CheckChild1Integer, 8, 
/* 44726*/          OPC_CheckChild1Type, MVT::i64,
/* 44728*/          OPC_CheckType, MVT::v8i8,
/* 44730*/          OPC_MoveParent,
/* 44731*/          OPC_CheckType, MVT::v8i8,
/* 44733*/          OPC_MoveParent,
/* 44734*/          OPC_MoveParent,
/* 44735*/          OPC_RecordChild1, // #2 = $Rd
/* 44736*/          OPC_CheckType, MVT::v8i16,
/* 44738*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44740*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv16i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))), V128:{ *:[v8i16] }:$Rd) - Complexity = 30
                    // Dst: (SABALv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 44749*/        /*SwitchType*/ 35, MVT::v4i16,// ->44786
/* 44751*/          OPC_CheckChild1Integer, 4, 
/* 44753*/          OPC_CheckChild1Type, MVT::i64,
/* 44755*/          OPC_MoveParent,
/* 44756*/          OPC_MoveChild2,
/* 44757*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44760*/          OPC_RecordChild0, // #1 = $Rm
/* 44761*/          OPC_CheckChild1Integer, 4, 
/* 44763*/          OPC_CheckChild1Type, MVT::i64,
/* 44765*/          OPC_CheckType, MVT::v4i16,
/* 44767*/          OPC_MoveParent,
/* 44768*/          OPC_CheckType, MVT::v4i16,
/* 44770*/          OPC_MoveParent,
/* 44771*/          OPC_MoveParent,
/* 44772*/          OPC_RecordChild1, // #2 = $Rd
/* 44773*/          OPC_CheckType, MVT::v4i32,
/* 44775*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44777*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv8i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))), V128:{ *:[v4i32] }:$Rd) - Complexity = 30
                    // Dst: (SABALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 44786*/        /*SwitchType*/ 35, MVT::v2i32,// ->44823
/* 44788*/          OPC_CheckChild1Integer, 2, 
/* 44790*/          OPC_CheckChild1Type, MVT::i64,
/* 44792*/          OPC_MoveParent,
/* 44793*/          OPC_MoveChild2,
/* 44794*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44797*/          OPC_RecordChild0, // #1 = $Rm
/* 44798*/          OPC_CheckChild1Integer, 2, 
/* 44800*/          OPC_CheckChild1Type, MVT::i64,
/* 44802*/          OPC_CheckType, MVT::v2i32,
/* 44804*/          OPC_MoveParent,
/* 44805*/          OPC_CheckType, MVT::v2i32,
/* 44807*/          OPC_MoveParent,
/* 44808*/          OPC_MoveParent,
/* 44809*/          OPC_RecordChild1, // #2 = $Rd
/* 44810*/          OPC_CheckType, MVT::v2i64,
/* 44812*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44814*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv4i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))), V128:{ *:[v2i64] }:$Rd) - Complexity = 30
                    // Dst: (SABALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 44823*/        0, // EndSwitchType
/* 44824*/      /*Scope*/ 121, /*->44946*/
/* 44825*/        OPC_CheckChild0Integer, 72|128,2/*328*/, 
/* 44828*/        OPC_MoveChild1,
/* 44829*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44832*/        OPC_RecordChild0, // #0 = $Rn
/* 44833*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i8,// ->44871
/* 44836*/          OPC_CheckChild1Integer, 8, 
/* 44838*/          OPC_CheckChild1Type, MVT::i64,
/* 44840*/          OPC_MoveParent,
/* 44841*/          OPC_MoveChild2,
/* 44842*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44845*/          OPC_RecordChild0, // #1 = $Rm
/* 44846*/          OPC_CheckChild1Integer, 8, 
/* 44848*/          OPC_CheckChild1Type, MVT::i64,
/* 44850*/          OPC_CheckType, MVT::v8i8,
/* 44852*/          OPC_MoveParent,
/* 44853*/          OPC_CheckType, MVT::v8i8,
/* 44855*/          OPC_MoveParent,
/* 44856*/          OPC_MoveParent,
/* 44857*/          OPC_RecordChild1, // #2 = $Rd
/* 44858*/          OPC_CheckType, MVT::v8i16,
/* 44860*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44862*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv16i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))), V128:{ *:[v8i16] }:$Rd) - Complexity = 30
                    // Dst: (UABALv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 44871*/        /*SwitchType*/ 35, MVT::v4i16,// ->44908
/* 44873*/          OPC_CheckChild1Integer, 4, 
/* 44875*/          OPC_CheckChild1Type, MVT::i64,
/* 44877*/          OPC_MoveParent,
/* 44878*/          OPC_MoveChild2,
/* 44879*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44882*/          OPC_RecordChild0, // #1 = $Rm
/* 44883*/          OPC_CheckChild1Integer, 4, 
/* 44885*/          OPC_CheckChild1Type, MVT::i64,
/* 44887*/          OPC_CheckType, MVT::v4i16,
/* 44889*/          OPC_MoveParent,
/* 44890*/          OPC_CheckType, MVT::v4i16,
/* 44892*/          OPC_MoveParent,
/* 44893*/          OPC_MoveParent,
/* 44894*/          OPC_RecordChild1, // #2 = $Rd
/* 44895*/          OPC_CheckType, MVT::v4i32,
/* 44897*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44899*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv8i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))), V128:{ *:[v4i32] }:$Rd) - Complexity = 30
                    // Dst: (UABALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 44908*/        /*SwitchType*/ 35, MVT::v2i32,// ->44945
/* 44910*/          OPC_CheckChild1Integer, 2, 
/* 44912*/          OPC_CheckChild1Type, MVT::i64,
/* 44914*/          OPC_MoveParent,
/* 44915*/          OPC_MoveChild2,
/* 44916*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44919*/          OPC_RecordChild0, // #1 = $Rm
/* 44920*/          OPC_CheckChild1Integer, 2, 
/* 44922*/          OPC_CheckChild1Type, MVT::i64,
/* 44924*/          OPC_CheckType, MVT::v2i32,
/* 44926*/          OPC_MoveParent,
/* 44927*/          OPC_CheckType, MVT::v2i32,
/* 44929*/          OPC_MoveParent,
/* 44930*/          OPC_MoveParent,
/* 44931*/          OPC_RecordChild1, // #2 = $Rd
/* 44932*/          OPC_CheckType, MVT::v2i64,
/* 44934*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44936*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv4i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))), V128:{ *:[v2i64] }:$Rd) - Complexity = 30
                    // Dst: (UABALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 44945*/        0, // EndSwitchType
/* 44946*/      0, /*End of Scope*/
/* 44947*/    /*Scope*/ 99|128,1/*227*/, /*->45176*/
/* 44949*/      OPC_RecordChild0, // #0 = $Rd
/* 44950*/      OPC_MoveChild1,
/* 44951*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 44954*/      OPC_Scope, 109, /*->45065*/ // 2 children in Scope
/* 44956*/        OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 44959*/        OPC_MoveChild1,
/* 44960*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44963*/        OPC_RecordChild0, // #1 = $Rn
/* 44964*/        OPC_SwitchType /*3 cases */, 31, MVT::v8i8,// ->44998
/* 44967*/          OPC_CheckChild1Integer, 8, 
/* 44969*/          OPC_CheckChild1Type, MVT::i64,
/* 44971*/          OPC_MoveParent,
/* 44972*/          OPC_MoveChild2,
/* 44973*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 44976*/          OPC_RecordChild0, // #2 = $Rm
/* 44977*/          OPC_CheckChild1Integer, 8, 
/* 44979*/          OPC_CheckChild1Type, MVT::i64,
/* 44981*/          OPC_CheckType, MVT::v8i8,
/* 44983*/          OPC_MoveParent,
/* 44984*/          OPC_MoveParent,
/* 44985*/          OPC_CheckType, MVT::v8i16,
/* 44987*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 44989*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv16i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 27
                    // Dst: (SMLALv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 44998*/        /*SwitchType*/ 31, MVT::v4i16,// ->45031
/* 45000*/          OPC_CheckChild1Integer, 4, 
/* 45002*/          OPC_CheckChild1Type, MVT::i64,
/* 45004*/          OPC_MoveParent,
/* 45005*/          OPC_MoveChild2,
/* 45006*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45009*/          OPC_RecordChild0, // #2 = $Rm
/* 45010*/          OPC_CheckChild1Integer, 4, 
/* 45012*/          OPC_CheckChild1Type, MVT::i64,
/* 45014*/          OPC_CheckType, MVT::v4i16,
/* 45016*/          OPC_MoveParent,
/* 45017*/          OPC_MoveParent,
/* 45018*/          OPC_CheckType, MVT::v4i32,
/* 45020*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45022*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv8i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 27
                    // Dst: (SMLALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 45031*/        /*SwitchType*/ 31, MVT::v2i32,// ->45064
/* 45033*/          OPC_CheckChild1Integer, 2, 
/* 45035*/          OPC_CheckChild1Type, MVT::i64,
/* 45037*/          OPC_MoveParent,
/* 45038*/          OPC_MoveChild2,
/* 45039*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45042*/          OPC_RecordChild0, // #2 = $Rm
/* 45043*/          OPC_CheckChild1Integer, 2, 
/* 45045*/          OPC_CheckChild1Type, MVT::i64,
/* 45047*/          OPC_CheckType, MVT::v2i32,
/* 45049*/          OPC_MoveParent,
/* 45050*/          OPC_MoveParent,
/* 45051*/          OPC_CheckType, MVT::v2i64,
/* 45053*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45055*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 27
                    // Dst: (SMLALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 45064*/        0, // EndSwitchType
/* 45065*/      /*Scope*/ 109, /*->45175*/
/* 45066*/        OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 45069*/        OPC_MoveChild1,
/* 45070*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45073*/        OPC_RecordChild0, // #1 = $Rn
/* 45074*/        OPC_SwitchType /*3 cases */, 31, MVT::v8i8,// ->45108
/* 45077*/          OPC_CheckChild1Integer, 8, 
/* 45079*/          OPC_CheckChild1Type, MVT::i64,
/* 45081*/          OPC_MoveParent,
/* 45082*/          OPC_MoveChild2,
/* 45083*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45086*/          OPC_RecordChild0, // #2 = $Rm
/* 45087*/          OPC_CheckChild1Integer, 8, 
/* 45089*/          OPC_CheckChild1Type, MVT::i64,
/* 45091*/          OPC_CheckType, MVT::v8i8,
/* 45093*/          OPC_MoveParent,
/* 45094*/          OPC_MoveParent,
/* 45095*/          OPC_CheckType, MVT::v8i16,
/* 45097*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45099*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv16i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 27
                    // Dst: (UMLALv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 45108*/        /*SwitchType*/ 31, MVT::v4i16,// ->45141
/* 45110*/          OPC_CheckChild1Integer, 4, 
/* 45112*/          OPC_CheckChild1Type, MVT::i64,
/* 45114*/          OPC_MoveParent,
/* 45115*/          OPC_MoveChild2,
/* 45116*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45119*/          OPC_RecordChild0, // #2 = $Rm
/* 45120*/          OPC_CheckChild1Integer, 4, 
/* 45122*/          OPC_CheckChild1Type, MVT::i64,
/* 45124*/          OPC_CheckType, MVT::v4i16,
/* 45126*/          OPC_MoveParent,
/* 45127*/          OPC_MoveParent,
/* 45128*/          OPC_CheckType, MVT::v4i32,
/* 45130*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45132*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv8i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 27
                    // Dst: (UMLALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 45141*/        /*SwitchType*/ 31, MVT::v2i32,// ->45174
/* 45143*/          OPC_CheckChild1Integer, 2, 
/* 45145*/          OPC_CheckChild1Type, MVT::i64,
/* 45147*/          OPC_MoveParent,
/* 45148*/          OPC_MoveChild2,
/* 45149*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45152*/          OPC_RecordChild0, // #2 = $Rm
/* 45153*/          OPC_CheckChild1Integer, 2, 
/* 45155*/          OPC_CheckChild1Type, MVT::i64,
/* 45157*/          OPC_CheckType, MVT::v2i32,
/* 45159*/          OPC_MoveParent,
/* 45160*/          OPC_MoveParent,
/* 45161*/          OPC_CheckType, MVT::v2i64,
/* 45163*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45165*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 27
                    // Dst: (UMLALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 45174*/        0, // EndSwitchType
/* 45175*/      0, /*End of Scope*/
/* 45176*/    /*Scope*/ 93|128,3/*477*/, /*->45655*/
/* 45178*/      OPC_MoveChild0,
/* 45179*/      OPC_SwitchOpcode /*3 cases */, 100|128,1/*228*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->45412
/* 45184*/        OPC_Scope, 112, /*->45298*/ // 2 children in Scope
/* 45186*/          OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 45189*/          OPC_MoveChild1,
/* 45190*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45193*/          OPC_RecordChild0, // #0 = $Rn
/* 45194*/          OPC_SwitchType /*3 cases */, 32, MVT::v8i8,// ->45229
/* 45197*/            OPC_CheckChild1Integer, 8, 
/* 45199*/            OPC_CheckChild1Type, MVT::i64,
/* 45201*/            OPC_MoveParent,
/* 45202*/            OPC_MoveChild2,
/* 45203*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45206*/            OPC_RecordChild0, // #1 = $Rm
/* 45207*/            OPC_CheckChild1Integer, 8, 
/* 45209*/            OPC_CheckChild1Type, MVT::i64,
/* 45211*/            OPC_CheckType, MVT::v8i8,
/* 45213*/            OPC_MoveParent,
/* 45214*/            OPC_MoveParent,
/* 45215*/            OPC_RecordChild1, // #2 = $Rd
/* 45216*/            OPC_CheckType, MVT::v8i16,
/* 45218*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45220*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv16i8_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })), V128:{ *:[v8i16] }:$Rd) - Complexity = 27
                      // Dst: (SMLALv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 45229*/          /*SwitchType*/ 32, MVT::v4i16,// ->45263
/* 45231*/            OPC_CheckChild1Integer, 4, 
/* 45233*/            OPC_CheckChild1Type, MVT::i64,
/* 45235*/            OPC_MoveParent,
/* 45236*/            OPC_MoveChild2,
/* 45237*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45240*/            OPC_RecordChild0, // #1 = $Rm
/* 45241*/            OPC_CheckChild1Integer, 4, 
/* 45243*/            OPC_CheckChild1Type, MVT::i64,
/* 45245*/            OPC_CheckType, MVT::v4i16,
/* 45247*/            OPC_MoveParent,
/* 45248*/            OPC_MoveParent,
/* 45249*/            OPC_RecordChild1, // #2 = $Rd
/* 45250*/            OPC_CheckType, MVT::v4i32,
/* 45252*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45254*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv8i16_v4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })), V128:{ *:[v4i32] }:$Rd) - Complexity = 27
                      // Dst: (SMLALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 45263*/          /*SwitchType*/ 32, MVT::v2i32,// ->45297
/* 45265*/            OPC_CheckChild1Integer, 2, 
/* 45267*/            OPC_CheckChild1Type, MVT::i64,
/* 45269*/            OPC_MoveParent,
/* 45270*/            OPC_MoveChild2,
/* 45271*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45274*/            OPC_RecordChild0, // #1 = $Rm
/* 45275*/            OPC_CheckChild1Integer, 2, 
/* 45277*/            OPC_CheckChild1Type, MVT::i64,
/* 45279*/            OPC_CheckType, MVT::v2i32,
/* 45281*/            OPC_MoveParent,
/* 45282*/            OPC_MoveParent,
/* 45283*/            OPC_RecordChild1, // #2 = $Rd
/* 45284*/            OPC_CheckType, MVT::v2i64,
/* 45286*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45288*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i32_v2i64), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })), V128:{ *:[v2i64] }:$Rd) - Complexity = 27
                      // Dst: (SMLALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 45297*/          0, // EndSwitchType
/* 45298*/        /*Scope*/ 112, /*->45411*/
/* 45299*/          OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 45302*/          OPC_MoveChild1,
/* 45303*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45306*/          OPC_RecordChild0, // #0 = $Rn
/* 45307*/          OPC_SwitchType /*3 cases */, 32, MVT::v8i8,// ->45342
/* 45310*/            OPC_CheckChild1Integer, 8, 
/* 45312*/            OPC_CheckChild1Type, MVT::i64,
/* 45314*/            OPC_MoveParent,
/* 45315*/            OPC_MoveChild2,
/* 45316*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45319*/            OPC_RecordChild0, // #1 = $Rm
/* 45320*/            OPC_CheckChild1Integer, 8, 
/* 45322*/            OPC_CheckChild1Type, MVT::i64,
/* 45324*/            OPC_CheckType, MVT::v8i8,
/* 45326*/            OPC_MoveParent,
/* 45327*/            OPC_MoveParent,
/* 45328*/            OPC_RecordChild1, // #2 = $Rd
/* 45329*/            OPC_CheckType, MVT::v8i16,
/* 45331*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45333*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv16i8_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })), V128:{ *:[v8i16] }:$Rd) - Complexity = 27
                      // Dst: (UMLALv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 45342*/          /*SwitchType*/ 32, MVT::v4i16,// ->45376
/* 45344*/            OPC_CheckChild1Integer, 4, 
/* 45346*/            OPC_CheckChild1Type, MVT::i64,
/* 45348*/            OPC_MoveParent,
/* 45349*/            OPC_MoveChild2,
/* 45350*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45353*/            OPC_RecordChild0, // #1 = $Rm
/* 45354*/            OPC_CheckChild1Integer, 4, 
/* 45356*/            OPC_CheckChild1Type, MVT::i64,
/* 45358*/            OPC_CheckType, MVT::v4i16,
/* 45360*/            OPC_MoveParent,
/* 45361*/            OPC_MoveParent,
/* 45362*/            OPC_RecordChild1, // #2 = $Rd
/* 45363*/            OPC_CheckType, MVT::v4i32,
/* 45365*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45367*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv8i16_v4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })), V128:{ *:[v4i32] }:$Rd) - Complexity = 27
                      // Dst: (UMLALv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 45376*/          /*SwitchType*/ 32, MVT::v2i32,// ->45410
/* 45378*/            OPC_CheckChild1Integer, 2, 
/* 45380*/            OPC_CheckChild1Type, MVT::i64,
/* 45382*/            OPC_MoveParent,
/* 45383*/            OPC_MoveChild2,
/* 45384*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45387*/            OPC_RecordChild0, // #1 = $Rm
/* 45388*/            OPC_CheckChild1Integer, 2, 
/* 45390*/            OPC_CheckChild1Type, MVT::i64,
/* 45392*/            OPC_CheckType, MVT::v2i32,
/* 45394*/            OPC_MoveParent,
/* 45395*/            OPC_MoveParent,
/* 45396*/            OPC_RecordChild1, // #2 = $Rd
/* 45397*/            OPC_CheckType, MVT::v2i64,
/* 45399*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45401*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i32_v2i64), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })), V128:{ *:[v2i64] }:$Rd) - Complexity = 27
                      // Dst: (UMLALv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 45410*/          0, // EndSwitchType
/* 45411*/        0, /*End of Scope*/
/* 45412*/      /*SwitchOpcode*/ 118, TARGET_VAL(ISD::SIGN_EXTEND),// ->45533
/* 45415*/        OPC_MoveChild0,
/* 45416*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45419*/        OPC_RecordChild0, // #0 = $Rn
/* 45420*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i8,// ->45458
/* 45423*/          OPC_CheckChild1Integer, 8, 
/* 45425*/          OPC_CheckChild1Type, MVT::i64,
/* 45427*/          OPC_MoveParent,
/* 45428*/          OPC_MoveParent,
/* 45429*/          OPC_MoveChild1,
/* 45430*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 45433*/          OPC_MoveChild0,
/* 45434*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45437*/          OPC_RecordChild0, // #1 = $Rm
/* 45438*/          OPC_CheckChild1Integer, 8, 
/* 45440*/          OPC_CheckChild1Type, MVT::i64,
/* 45442*/          OPC_CheckType, MVT::v8i8,
/* 45444*/          OPC_MoveParent,
/* 45445*/          OPC_MoveParent,
/* 45446*/          OPC_CheckType, MVT::v8i16,
/* 45448*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45450*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 25
                    // Dst: (SADDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 45458*/        /*SwitchType*/ 35, MVT::v4i16,// ->45495
/* 45460*/          OPC_CheckChild1Integer, 4, 
/* 45462*/          OPC_CheckChild1Type, MVT::i64,
/* 45464*/          OPC_MoveParent,
/* 45465*/          OPC_MoveParent,
/* 45466*/          OPC_MoveChild1,
/* 45467*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 45470*/          OPC_MoveChild0,
/* 45471*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45474*/          OPC_RecordChild0, // #1 = $Rm
/* 45475*/          OPC_CheckChild1Integer, 4, 
/* 45477*/          OPC_CheckChild1Type, MVT::i64,
/* 45479*/          OPC_CheckType, MVT::v4i16,
/* 45481*/          OPC_MoveParent,
/* 45482*/          OPC_MoveParent,
/* 45483*/          OPC_CheckType, MVT::v4i32,
/* 45485*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45487*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 25
                    // Dst: (SADDLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 45495*/        /*SwitchType*/ 35, MVT::v2i32,// ->45532
/* 45497*/          OPC_CheckChild1Integer, 2, 
/* 45499*/          OPC_CheckChild1Type, MVT::i64,
/* 45501*/          OPC_MoveParent,
/* 45502*/          OPC_MoveParent,
/* 45503*/          OPC_MoveChild1,
/* 45504*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 45507*/          OPC_MoveChild0,
/* 45508*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45511*/          OPC_RecordChild0, // #1 = $Rm
/* 45512*/          OPC_CheckChild1Integer, 2, 
/* 45514*/          OPC_CheckChild1Type, MVT::i64,
/* 45516*/          OPC_CheckType, MVT::v2i32,
/* 45518*/          OPC_MoveParent,
/* 45519*/          OPC_MoveParent,
/* 45520*/          OPC_CheckType, MVT::v2i64,
/* 45522*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45524*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 25
                    // Dst: (SADDLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 45532*/        0, // EndSwitchType
/* 45533*/      /*SwitchOpcode*/ 118, TARGET_VAL(ISD::ZERO_EXTEND),// ->45654
/* 45536*/        OPC_MoveChild0,
/* 45537*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45540*/        OPC_RecordChild0, // #0 = $Rn
/* 45541*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i8,// ->45579
/* 45544*/          OPC_CheckChild1Integer, 8, 
/* 45546*/          OPC_CheckChild1Type, MVT::i64,
/* 45548*/          OPC_MoveParent,
/* 45549*/          OPC_MoveParent,
/* 45550*/          OPC_MoveChild1,
/* 45551*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 45554*/          OPC_MoveChild0,
/* 45555*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45558*/          OPC_RecordChild0, // #1 = $Rm
/* 45559*/          OPC_CheckChild1Integer, 8, 
/* 45561*/          OPC_CheckChild1Type, MVT::i64,
/* 45563*/          OPC_CheckType, MVT::v8i8,
/* 45565*/          OPC_MoveParent,
/* 45566*/          OPC_MoveParent,
/* 45567*/          OPC_CheckType, MVT::v8i16,
/* 45569*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45571*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 25
                    // Dst: (UADDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 45579*/        /*SwitchType*/ 35, MVT::v4i16,// ->45616
/* 45581*/          OPC_CheckChild1Integer, 4, 
/* 45583*/          OPC_CheckChild1Type, MVT::i64,
/* 45585*/          OPC_MoveParent,
/* 45586*/          OPC_MoveParent,
/* 45587*/          OPC_MoveChild1,
/* 45588*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 45591*/          OPC_MoveChild0,
/* 45592*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45595*/          OPC_RecordChild0, // #1 = $Rm
/* 45596*/          OPC_CheckChild1Integer, 4, 
/* 45598*/          OPC_CheckChild1Type, MVT::i64,
/* 45600*/          OPC_CheckType, MVT::v4i16,
/* 45602*/          OPC_MoveParent,
/* 45603*/          OPC_MoveParent,
/* 45604*/          OPC_CheckType, MVT::v4i32,
/* 45606*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45608*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 25
                    // Dst: (UADDLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 45616*/        /*SwitchType*/ 35, MVT::v2i32,// ->45653
/* 45618*/          OPC_CheckChild1Integer, 2, 
/* 45620*/          OPC_CheckChild1Type, MVT::i64,
/* 45622*/          OPC_MoveParent,
/* 45623*/          OPC_MoveParent,
/* 45624*/          OPC_MoveChild1,
/* 45625*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 45628*/          OPC_MoveChild0,
/* 45629*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 45632*/          OPC_RecordChild0, // #1 = $Rm
/* 45633*/          OPC_CheckChild1Integer, 2, 
/* 45635*/          OPC_CheckChild1Type, MVT::i64,
/* 45637*/          OPC_CheckType, MVT::v2i32,
/* 45639*/          OPC_MoveParent,
/* 45640*/          OPC_MoveParent,
/* 45641*/          OPC_CheckType, MVT::v2i64,
/* 45643*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45645*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 25
                    // Dst: (UADDLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 45653*/        0, // EndSwitchType
/* 45654*/      0, // EndSwitchOpcode
/* 45655*/    /*Scope*/ 53|128,1/*181*/, /*->45838*/
/* 45657*/      OPC_RecordChild0, // #0 = $Rd
/* 45658*/      OPC_MoveChild1,
/* 45659*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 45662*/      OPC_Scope, 86, /*->45750*/ // 2 children in Scope
/* 45664*/        OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 45667*/        OPC_RecordChild1, // #1 = $Rn
/* 45668*/        OPC_Scope, 39, /*->45709*/ // 2 children in Scope
/* 45670*/          OPC_CheckChild1Type, MVT::v4i16,
/* 45672*/          OPC_MoveChild2,
/* 45673*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 45676*/          OPC_RecordChild0, // #2 = $Rm
/* 45677*/          OPC_CheckChild0Type, MVT::v8i16,
/* 45679*/          OPC_RecordChild1, // #3 = $idx
/* 45680*/          OPC_MoveChild1,
/* 45681*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45684*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 45686*/          OPC_CheckType, MVT::i64,
/* 45688*/          OPC_MoveParent,
/* 45689*/          OPC_CheckType, MVT::v4i16,
/* 45691*/          OPC_MoveParent,
/* 45692*/          OPC_MoveParent,
/* 45693*/          OPC_CheckType, MVT::v4i32,
/* 45695*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45697*/          OPC_EmitConvertToTarget, 3,
/* 45699*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i16_indexed), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 18
                    // Dst: (SMLALv4i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 45709*/        /*Scope*/ 39, /*->45749*/
/* 45710*/          OPC_CheckChild1Type, MVT::v2i32,
/* 45712*/          OPC_MoveChild2,
/* 45713*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 45716*/          OPC_RecordChild0, // #2 = $Rm
/* 45717*/          OPC_CheckChild0Type, MVT::v4i32,
/* 45719*/          OPC_RecordChild1, // #3 = $idx
/* 45720*/          OPC_MoveChild1,
/* 45721*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45724*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 45726*/          OPC_CheckType, MVT::i64,
/* 45728*/          OPC_MoveParent,
/* 45729*/          OPC_CheckType, MVT::v2i32,
/* 45731*/          OPC_MoveParent,
/* 45732*/          OPC_MoveParent,
/* 45733*/          OPC_CheckType, MVT::v2i64,
/* 45735*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45737*/          OPC_EmitConvertToTarget, 3,
/* 45739*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv2i32_indexed), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 18
                    // Dst: (SMLALv2i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 45749*/        0, /*End of Scope*/
/* 45750*/      /*Scope*/ 86, /*->45837*/
/* 45751*/        OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 45754*/        OPC_RecordChild1, // #1 = $Rn
/* 45755*/        OPC_Scope, 39, /*->45796*/ // 2 children in Scope
/* 45757*/          OPC_CheckChild1Type, MVT::v4i16,
/* 45759*/          OPC_MoveChild2,
/* 45760*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 45763*/          OPC_RecordChild0, // #2 = $Rm
/* 45764*/          OPC_CheckChild0Type, MVT::v8i16,
/* 45766*/          OPC_RecordChild1, // #3 = $idx
/* 45767*/          OPC_MoveChild1,
/* 45768*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45771*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 45773*/          OPC_CheckType, MVT::i64,
/* 45775*/          OPC_MoveParent,
/* 45776*/          OPC_CheckType, MVT::v4i16,
/* 45778*/          OPC_MoveParent,
/* 45779*/          OPC_MoveParent,
/* 45780*/          OPC_CheckType, MVT::v4i32,
/* 45782*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45784*/          OPC_EmitConvertToTarget, 3,
/* 45786*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i16_indexed), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 18
                    // Dst: (UMLALv4i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 45796*/        /*Scope*/ 39, /*->45836*/
/* 45797*/          OPC_CheckChild1Type, MVT::v2i32,
/* 45799*/          OPC_MoveChild2,
/* 45800*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 45803*/          OPC_RecordChild0, // #2 = $Rm
/* 45804*/          OPC_CheckChild0Type, MVT::v4i32,
/* 45806*/          OPC_RecordChild1, // #3 = $idx
/* 45807*/          OPC_MoveChild1,
/* 45808*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45811*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 45813*/          OPC_CheckType, MVT::i64,
/* 45815*/          OPC_MoveParent,
/* 45816*/          OPC_CheckType, MVT::v2i32,
/* 45818*/          OPC_MoveParent,
/* 45819*/          OPC_MoveParent,
/* 45820*/          OPC_CheckType, MVT::v2i64,
/* 45822*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45824*/          OPC_EmitConvertToTarget, 3,
/* 45826*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv2i32_indexed), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 18
                    // Dst: (UMLALv2i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 45836*/        0, /*End of Scope*/
/* 45837*/      0, /*End of Scope*/
/* 45838*/    /*Scope*/ 56|128,1/*184*/, /*->46024*/
/* 45840*/      OPC_MoveChild0,
/* 45841*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 45844*/      OPC_Scope, 88, /*->45934*/ // 2 children in Scope
/* 45846*/        OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 45849*/        OPC_RecordChild1, // #0 = $Rn
/* 45850*/        OPC_Scope, 40, /*->45892*/ // 2 children in Scope
/* 45852*/          OPC_CheckChild1Type, MVT::v4i16,
/* 45854*/          OPC_MoveChild2,
/* 45855*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 45858*/          OPC_RecordChild0, // #1 = $Rm
/* 45859*/          OPC_CheckChild0Type, MVT::v8i16,
/* 45861*/          OPC_RecordChild1, // #2 = $idx
/* 45862*/          OPC_MoveChild1,
/* 45863*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45866*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 45868*/          OPC_CheckType, MVT::i64,
/* 45870*/          OPC_MoveParent,
/* 45871*/          OPC_CheckType, MVT::v4i16,
/* 45873*/          OPC_MoveParent,
/* 45874*/          OPC_MoveParent,
/* 45875*/          OPC_RecordChild1, // #3 = $Rd
/* 45876*/          OPC_CheckType, MVT::v4i32,
/* 45878*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45880*/          OPC_EmitConvertToTarget, 2,
/* 45882*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i16_indexed), 0,
                        MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)), V128:{ *:[v4i32] }:$Rd) - Complexity = 18
                    // Dst: (SMLALv4i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 45892*/        /*Scope*/ 40, /*->45933*/
/* 45893*/          OPC_CheckChild1Type, MVT::v2i32,
/* 45895*/          OPC_MoveChild2,
/* 45896*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 45899*/          OPC_RecordChild0, // #1 = $Rm
/* 45900*/          OPC_CheckChild0Type, MVT::v4i32,
/* 45902*/          OPC_RecordChild1, // #2 = $idx
/* 45903*/          OPC_MoveChild1,
/* 45904*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45907*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 45909*/          OPC_CheckType, MVT::i64,
/* 45911*/          OPC_MoveParent,
/* 45912*/          OPC_CheckType, MVT::v2i32,
/* 45914*/          OPC_MoveParent,
/* 45915*/          OPC_MoveParent,
/* 45916*/          OPC_RecordChild1, // #3 = $Rd
/* 45917*/          OPC_CheckType, MVT::v2i64,
/* 45919*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45921*/          OPC_EmitConvertToTarget, 2,
/* 45923*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv2i32_indexed), 0,
                        MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), V128:{ *:[v2i64] }:$Rd) - Complexity = 18
                    // Dst: (SMLALv2i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 45933*/        0, /*End of Scope*/
/* 45934*/      /*Scope*/ 88, /*->46023*/
/* 45935*/        OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 45938*/        OPC_RecordChild1, // #0 = $Rn
/* 45939*/        OPC_Scope, 40, /*->45981*/ // 2 children in Scope
/* 45941*/          OPC_CheckChild1Type, MVT::v4i16,
/* 45943*/          OPC_MoveChild2,
/* 45944*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 45947*/          OPC_RecordChild0, // #1 = $Rm
/* 45948*/          OPC_CheckChild0Type, MVT::v8i16,
/* 45950*/          OPC_RecordChild1, // #2 = $idx
/* 45951*/          OPC_MoveChild1,
/* 45952*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45955*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 45957*/          OPC_CheckType, MVT::i64,
/* 45959*/          OPC_MoveParent,
/* 45960*/          OPC_CheckType, MVT::v4i16,
/* 45962*/          OPC_MoveParent,
/* 45963*/          OPC_MoveParent,
/* 45964*/          OPC_RecordChild1, // #3 = $Rd
/* 45965*/          OPC_CheckType, MVT::v4i32,
/* 45967*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 45969*/          OPC_EmitConvertToTarget, 2,
/* 45971*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i16_indexed), 0,
                        MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)), V128:{ *:[v4i32] }:$Rd) - Complexity = 18
                    // Dst: (UMLALv4i16_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 45981*/        /*Scope*/ 40, /*->46022*/
/* 45982*/          OPC_CheckChild1Type, MVT::v2i32,
/* 45984*/          OPC_MoveChild2,
/* 45985*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 45988*/          OPC_RecordChild0, // #1 = $Rm
/* 45989*/          OPC_CheckChild0Type, MVT::v4i32,
/* 45991*/          OPC_RecordChild1, // #2 = $idx
/* 45992*/          OPC_MoveChild1,
/* 45993*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45996*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 45998*/          OPC_CheckType, MVT::i64,
/* 46000*/          OPC_MoveParent,
/* 46001*/          OPC_CheckType, MVT::v2i32,
/* 46003*/          OPC_MoveParent,
/* 46004*/          OPC_MoveParent,
/* 46005*/          OPC_RecordChild1, // #3 = $Rd
/* 46006*/          OPC_CheckType, MVT::v2i64,
/* 46008*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46010*/          OPC_EmitConvertToTarget, 2,
/* 46012*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv2i32_indexed), 0,
                        MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), V128:{ *:[v2i64] }:$Rd) - Complexity = 18
                    // Dst: (UMLALv2i32_indexed:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46022*/        0, /*End of Scope*/
/* 46023*/      0, /*End of Scope*/
/* 46024*/    /*Scope*/ 43|128,2/*299*/, /*->46325*/
/* 46026*/      OPC_RecordChild0, // #0 = $Rd
/* 46027*/      OPC_MoveChild1,
/* 46028*/      OPC_SwitchOpcode /*2 cases */, 93|128,1/*221*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->46254
/* 46033*/        OPC_MoveChild0,
/* 46034*/        OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->46187
/* 46039*/          OPC_Scope, 72, /*->46113*/ // 2 children in Scope
/* 46041*/            OPC_CheckChild0Integer, 14|128,2/*270*/, 
/* 46044*/            OPC_RecordChild1, // #1 = $Rn
/* 46045*/            OPC_SwitchType /*3 cases */, 20, MVT::v8i8,// ->46068
/* 46048*/              OPC_CheckChild1Type, MVT::v8i8,
/* 46050*/              OPC_RecordChild2, // #2 = $Rm
/* 46051*/              OPC_CheckChild2Type, MVT::v8i8,
/* 46053*/              OPC_MoveParent,
/* 46054*/              OPC_MoveParent,
/* 46055*/              OPC_CheckType, MVT::v8i16,
/* 46057*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46059*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv8i8_v8i16), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm))) - Complexity = 14
                        // Dst: (SABALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 46068*/            /*SwitchType*/ 20, MVT::v4i16,// ->46090
/* 46070*/              OPC_CheckChild1Type, MVT::v4i16,
/* 46072*/              OPC_RecordChild2, // #2 = $Rm
/* 46073*/              OPC_CheckChild2Type, MVT::v4i16,
/* 46075*/              OPC_MoveParent,
/* 46076*/              OPC_MoveParent,
/* 46077*/              OPC_CheckType, MVT::v4i32,
/* 46079*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46081*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv4i16_v4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm))) - Complexity = 14
                        // Dst: (SABALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 46090*/            /*SwitchType*/ 20, MVT::v2i32,// ->46112
/* 46092*/              OPC_CheckChild1Type, MVT::v2i32,
/* 46094*/              OPC_RecordChild2, // #2 = $Rm
/* 46095*/              OPC_CheckChild2Type, MVT::v2i32,
/* 46097*/              OPC_MoveParent,
/* 46098*/              OPC_MoveParent,
/* 46099*/              OPC_CheckType, MVT::v2i64,
/* 46101*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46103*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv2i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm))) - Complexity = 14
                        // Dst: (SABALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 46112*/            0, // EndSwitchType
/* 46113*/          /*Scope*/ 72, /*->46186*/
/* 46114*/            OPC_CheckChild0Integer, 72|128,2/*328*/, 
/* 46117*/            OPC_RecordChild1, // #1 = $Rn
/* 46118*/            OPC_SwitchType /*3 cases */, 20, MVT::v8i8,// ->46141
/* 46121*/              OPC_CheckChild1Type, MVT::v8i8,
/* 46123*/              OPC_RecordChild2, // #2 = $Rm
/* 46124*/              OPC_CheckChild2Type, MVT::v8i8,
/* 46126*/              OPC_MoveParent,
/* 46127*/              OPC_MoveParent,
/* 46128*/              OPC_CheckType, MVT::v8i16,
/* 46130*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46132*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv8i8_v8i16), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm))) - Complexity = 14
                        // Dst: (UABALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 46141*/            /*SwitchType*/ 20, MVT::v4i16,// ->46163
/* 46143*/              OPC_CheckChild1Type, MVT::v4i16,
/* 46145*/              OPC_RecordChild2, // #2 = $Rm
/* 46146*/              OPC_CheckChild2Type, MVT::v4i16,
/* 46148*/              OPC_MoveParent,
/* 46149*/              OPC_MoveParent,
/* 46150*/              OPC_CheckType, MVT::v4i32,
/* 46152*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46154*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv4i16_v4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm))) - Complexity = 14
                        // Dst: (UABALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 46163*/            /*SwitchType*/ 20, MVT::v2i32,// ->46185
/* 46165*/              OPC_CheckChild1Type, MVT::v2i32,
/* 46167*/              OPC_RecordChild2, // #2 = $Rm
/* 46168*/              OPC_CheckChild2Type, MVT::v2i32,
/* 46170*/              OPC_MoveParent,
/* 46171*/              OPC_MoveParent,
/* 46172*/              OPC_CheckType, MVT::v2i64,
/* 46174*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46176*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv2i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm))) - Complexity = 14
                        // Dst: (UABALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 46185*/            0, // EndSwitchType
/* 46186*/          0, /*End of Scope*/
/* 46187*/        /*SwitchOpcode*/ 63, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->46253
/* 46190*/          OPC_RecordChild0, // #1 = $Rm
/* 46191*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->46212
/* 46194*/            OPC_CheckChild1Integer, 8, 
/* 46196*/            OPC_CheckChild1Type, MVT::i64,
/* 46198*/            OPC_MoveParent,
/* 46199*/            OPC_MoveParent,
/* 46200*/            OPC_CheckType, MVT::v8i16,
/* 46202*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46204*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv16i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 14
                      // Dst: (UADDWv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 46212*/          /*SwitchType*/ 18, MVT::v4i16,// ->46232
/* 46214*/            OPC_CheckChild1Integer, 4, 
/* 46216*/            OPC_CheckChild1Type, MVT::i64,
/* 46218*/            OPC_MoveParent,
/* 46219*/            OPC_MoveParent,
/* 46220*/            OPC_CheckType, MVT::v4i32,
/* 46222*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46224*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv8i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 14
                      // Dst: (UADDWv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 46232*/          /*SwitchType*/ 18, MVT::v2i32,// ->46252
/* 46234*/            OPC_CheckChild1Integer, 2, 
/* 46236*/            OPC_CheckChild1Type, MVT::i64,
/* 46238*/            OPC_MoveParent,
/* 46239*/            OPC_MoveParent,
/* 46240*/            OPC_CheckType, MVT::v2i64,
/* 46242*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46244*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv4i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 14
                      // Dst: (UADDWv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 46252*/          0, // EndSwitchType
/* 46253*/        0, // EndSwitchOpcode
/* 46254*/      /*SwitchOpcode*/ 67, TARGET_VAL(ISD::SIGN_EXTEND),// ->46324
/* 46257*/        OPC_MoveChild0,
/* 46258*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 46261*/        OPC_RecordChild0, // #1 = $Rm
/* 46262*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->46283
/* 46265*/          OPC_CheckChild1Integer, 8, 
/* 46267*/          OPC_CheckChild1Type, MVT::i64,
/* 46269*/          OPC_MoveParent,
/* 46270*/          OPC_MoveParent,
/* 46271*/          OPC_CheckType, MVT::v8i16,
/* 46273*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46275*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 14
                    // Dst: (SADDWv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 46283*/        /*SwitchType*/ 18, MVT::v4i16,// ->46303
/* 46285*/          OPC_CheckChild1Integer, 4, 
/* 46287*/          OPC_CheckChild1Type, MVT::i64,
/* 46289*/          OPC_MoveParent,
/* 46290*/          OPC_MoveParent,
/* 46291*/          OPC_CheckType, MVT::v4i32,
/* 46293*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46295*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 14
                    // Dst: (SADDWv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 46303*/        /*SwitchType*/ 18, MVT::v2i32,// ->46323
/* 46305*/          OPC_CheckChild1Integer, 2, 
/* 46307*/          OPC_CheckChild1Type, MVT::i64,
/* 46309*/          OPC_MoveParent,
/* 46310*/          OPC_MoveParent,
/* 46311*/          OPC_CheckType, MVT::v2i64,
/* 46313*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46315*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 14
                    // Dst: (SADDWv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 46323*/        0, // EndSwitchType
/* 46324*/      0, // EndSwitchOpcode
/* 46325*/    /*Scope*/ 54|128,2/*310*/, /*->46637*/
/* 46327*/      OPC_MoveChild0,
/* 46328*/      OPC_SwitchOpcode /*2 cases */, 102|128,1/*230*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->46563
/* 46333*/        OPC_MoveChild0,
/* 46334*/        OPC_SwitchOpcode /*2 cases */, 26|128,1/*154*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->46493
/* 46339*/          OPC_Scope, 75, /*->46416*/ // 2 children in Scope
/* 46341*/            OPC_CheckChild0Integer, 14|128,2/*270*/, 
/* 46344*/            OPC_RecordChild1, // #0 = $Rn
/* 46345*/            OPC_SwitchType /*3 cases */, 21, MVT::v8i8,// ->46369
/* 46348*/              OPC_CheckChild1Type, MVT::v8i8,
/* 46350*/              OPC_RecordChild2, // #1 = $Rm
/* 46351*/              OPC_CheckChild2Type, MVT::v8i8,
/* 46353*/              OPC_MoveParent,
/* 46354*/              OPC_MoveParent,
/* 46355*/              OPC_RecordChild1, // #2 = $Rd
/* 46356*/              OPC_CheckType, MVT::v8i16,
/* 46358*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46360*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv8i8_v8i16), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)), V128:{ *:[v8i16] }:$Rd) - Complexity = 14
                        // Dst: (SABALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 46369*/            /*SwitchType*/ 21, MVT::v4i16,// ->46392
/* 46371*/              OPC_CheckChild1Type, MVT::v4i16,
/* 46373*/              OPC_RecordChild2, // #1 = $Rm
/* 46374*/              OPC_CheckChild2Type, MVT::v4i16,
/* 46376*/              OPC_MoveParent,
/* 46377*/              OPC_MoveParent,
/* 46378*/              OPC_RecordChild1, // #2 = $Rd
/* 46379*/              OPC_CheckType, MVT::v4i32,
/* 46381*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46383*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv4i16_v4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)), V128:{ *:[v4i32] }:$Rd) - Complexity = 14
                        // Dst: (SABALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 46392*/            /*SwitchType*/ 21, MVT::v2i32,// ->46415
/* 46394*/              OPC_CheckChild1Type, MVT::v2i32,
/* 46396*/              OPC_RecordChild2, // #1 = $Rm
/* 46397*/              OPC_CheckChild2Type, MVT::v2i32,
/* 46399*/              OPC_MoveParent,
/* 46400*/              OPC_MoveParent,
/* 46401*/              OPC_RecordChild1, // #2 = $Rd
/* 46402*/              OPC_CheckType, MVT::v2i64,
/* 46404*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46406*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABALv2i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)), V128:{ *:[v2i64] }:$Rd) - Complexity = 14
                        // Dst: (SABALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 46415*/            0, // EndSwitchType
/* 46416*/          /*Scope*/ 75, /*->46492*/
/* 46417*/            OPC_CheckChild0Integer, 72|128,2/*328*/, 
/* 46420*/            OPC_RecordChild1, // #0 = $Rn
/* 46421*/            OPC_SwitchType /*3 cases */, 21, MVT::v8i8,// ->46445
/* 46424*/              OPC_CheckChild1Type, MVT::v8i8,
/* 46426*/              OPC_RecordChild2, // #1 = $Rm
/* 46427*/              OPC_CheckChild2Type, MVT::v8i8,
/* 46429*/              OPC_MoveParent,
/* 46430*/              OPC_MoveParent,
/* 46431*/              OPC_RecordChild1, // #2 = $Rd
/* 46432*/              OPC_CheckType, MVT::v8i16,
/* 46434*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46436*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv8i8_v8i16), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)), V128:{ *:[v8i16] }:$Rd) - Complexity = 14
                        // Dst: (UABALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 46445*/            /*SwitchType*/ 21, MVT::v4i16,// ->46468
/* 46447*/              OPC_CheckChild1Type, MVT::v4i16,
/* 46449*/              OPC_RecordChild2, // #1 = $Rm
/* 46450*/              OPC_CheckChild2Type, MVT::v4i16,
/* 46452*/              OPC_MoveParent,
/* 46453*/              OPC_MoveParent,
/* 46454*/              OPC_RecordChild1, // #2 = $Rd
/* 46455*/              OPC_CheckType, MVT::v4i32,
/* 46457*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46459*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv4i16_v4i32), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)), V128:{ *:[v4i32] }:$Rd) - Complexity = 14
                        // Dst: (UABALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 46468*/            /*SwitchType*/ 21, MVT::v2i32,// ->46491
/* 46470*/              OPC_CheckChild1Type, MVT::v2i32,
/* 46472*/              OPC_RecordChild2, // #1 = $Rm
/* 46473*/              OPC_CheckChild2Type, MVT::v2i32,
/* 46475*/              OPC_MoveParent,
/* 46476*/              OPC_MoveParent,
/* 46477*/              OPC_RecordChild1, // #2 = $Rd
/* 46478*/              OPC_CheckType, MVT::v2i64,
/* 46480*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46482*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABALv2i32_v2i64), 0,
                            MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)), V128:{ *:[v2i64] }:$Rd) - Complexity = 14
                        // Dst: (UABALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 46491*/            0, // EndSwitchType
/* 46492*/          0, /*End of Scope*/
/* 46493*/        /*SwitchOpcode*/ 66, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->46562
/* 46496*/          OPC_RecordChild0, // #0 = $Rm
/* 46497*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->46519
/* 46500*/            OPC_CheckChild1Integer, 8, 
/* 46502*/            OPC_CheckChild1Type, MVT::i64,
/* 46504*/            OPC_MoveParent,
/* 46505*/            OPC_MoveParent,
/* 46506*/            OPC_RecordChild1, // #1 = $Rn
/* 46507*/            OPC_CheckType, MVT::v8i16,
/* 46509*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46511*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv16i8_v8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })), V128:{ *:[v8i16] }:$Rn) - Complexity = 14
                      // Dst: (UADDWv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 46519*/          /*SwitchType*/ 19, MVT::v4i16,// ->46540
/* 46521*/            OPC_CheckChild1Integer, 4, 
/* 46523*/            OPC_CheckChild1Type, MVT::i64,
/* 46525*/            OPC_MoveParent,
/* 46526*/            OPC_MoveParent,
/* 46527*/            OPC_RecordChild1, // #1 = $Rn
/* 46528*/            OPC_CheckType, MVT::v4i32,
/* 46530*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46532*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv8i16_v4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })), V128:{ *:[v4i32] }:$Rn) - Complexity = 14
                      // Dst: (UADDWv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 46540*/          /*SwitchType*/ 19, MVT::v2i32,// ->46561
/* 46542*/            OPC_CheckChild1Integer, 2, 
/* 46544*/            OPC_CheckChild1Type, MVT::i64,
/* 46546*/            OPC_MoveParent,
/* 46547*/            OPC_MoveParent,
/* 46548*/            OPC_RecordChild1, // #1 = $Rn
/* 46549*/            OPC_CheckType, MVT::v2i64,
/* 46551*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46553*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv4i32_v2i64), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })), V128:{ *:[v2i64] }:$Rn) - Complexity = 14
                      // Dst: (UADDWv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 46561*/          0, // EndSwitchType
/* 46562*/        0, // EndSwitchOpcode
/* 46563*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::SIGN_EXTEND),// ->46636
/* 46566*/        OPC_MoveChild0,
/* 46567*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 46570*/        OPC_RecordChild0, // #0 = $Rm
/* 46571*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->46593
/* 46574*/          OPC_CheckChild1Integer, 8, 
/* 46576*/          OPC_CheckChild1Type, MVT::i64,
/* 46578*/          OPC_MoveParent,
/* 46579*/          OPC_MoveParent,
/* 46580*/          OPC_RecordChild1, // #1 = $Rn
/* 46581*/          OPC_CheckType, MVT::v8i16,
/* 46583*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46585*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v8i16] } (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })), V128:{ *:[v8i16] }:$Rn) - Complexity = 14
                    // Dst: (SADDWv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 46593*/        /*SwitchType*/ 19, MVT::v4i16,// ->46614
/* 46595*/          OPC_CheckChild1Integer, 4, 
/* 46597*/          OPC_CheckChild1Type, MVT::i64,
/* 46599*/          OPC_MoveParent,
/* 46600*/          OPC_MoveParent,
/* 46601*/          OPC_RecordChild1, // #1 = $Rn
/* 46602*/          OPC_CheckType, MVT::v4i32,
/* 46604*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46606*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v4i32] } (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })), V128:{ *:[v4i32] }:$Rn) - Complexity = 14
                    // Dst: (SADDWv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 46614*/        /*SwitchType*/ 19, MVT::v2i32,// ->46635
/* 46616*/          OPC_CheckChild1Integer, 2, 
/* 46618*/          OPC_CheckChild1Type, MVT::i64,
/* 46620*/          OPC_MoveParent,
/* 46621*/          OPC_MoveParent,
/* 46622*/          OPC_RecordChild1, // #1 = $Rn
/* 46623*/          OPC_CheckType, MVT::v2i64,
/* 46625*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46627*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v2i64] } (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })), V128:{ *:[v2i64] }:$Rn) - Complexity = 14
                    // Dst: (SADDWv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 46635*/        0, // EndSwitchType
/* 46636*/      0, // EndSwitchOpcode
/* 46637*/    /*Scope*/ 25|128,1/*153*/, /*->46792*/
/* 46639*/      OPC_RecordChild0, // #0 = $Rd
/* 46640*/      OPC_MoveChild1,
/* 46641*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 46644*/      OPC_Scope, 108, /*->46754*/ // 2 children in Scope
/* 46646*/        OPC_RecordChild0, // #1 = $Rn
/* 46647*/        OPC_MoveChild1,
/* 46648*/        OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(AArch64ISD::DUPLANE16),// ->46701
/* 46652*/          OPC_RecordChild0, // #2 = $Rm
/* 46653*/          OPC_CheckChild0Type, MVT::v8i16,
/* 46655*/          OPC_RecordChild1, // #3 = $idx
/* 46656*/          OPC_MoveChild1,
/* 46657*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46660*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 46662*/          OPC_CheckType, MVT::i64,
/* 46664*/          OPC_MoveParent,
/* 46665*/          OPC_MoveParent,
/* 46666*/          OPC_MoveParent,
/* 46667*/          OPC_SwitchType /*2 cases */, 14, MVT::v4i16,// ->46684
/* 46670*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46672*/            OPC_EmitConvertToTarget, 3,
/* 46674*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i16_indexed), 0,
                          MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (mul:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 13
                      // Dst: (MLAv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46684*/          /*SwitchType*/ 14, MVT::v8i16,// ->46700
/* 46686*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46688*/            OPC_EmitConvertToTarget, 3,
/* 46690*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv8i16_indexed), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (mul:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx))) - Complexity = 13
                      // Dst: (MLAv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46700*/          0, // EndSwitchType
/* 46701*/        /*SwitchOpcode*/ 49, TARGET_VAL(AArch64ISD::DUPLANE32),// ->46753
/* 46704*/          OPC_RecordChild0, // #2 = $Rm
/* 46705*/          OPC_CheckChild0Type, MVT::v4i32,
/* 46707*/          OPC_RecordChild1, // #3 = $idx
/* 46708*/          OPC_MoveChild1,
/* 46709*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46712*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 46714*/          OPC_CheckType, MVT::i64,
/* 46716*/          OPC_MoveParent,
/* 46717*/          OPC_MoveParent,
/* 46718*/          OPC_MoveParent,
/* 46719*/          OPC_SwitchType /*2 cases */, 14, MVT::v2i32,// ->46736
/* 46722*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46724*/            OPC_EmitConvertToTarget, 3,
/* 46726*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv2i32_indexed), 0,
                          MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (mul:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 13
                      // Dst: (MLAv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46736*/          /*SwitchType*/ 14, MVT::v4i32,// ->46752
/* 46738*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46740*/            OPC_EmitConvertToTarget, 3,
/* 46742*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i32_indexed), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                      // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (mul:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx))) - Complexity = 13
                      // Dst: (MLAv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46752*/          0, // EndSwitchType
/* 46753*/        0, // EndSwitchOpcode
/* 46754*/      /*Scope*/ 36, /*->46791*/
/* 46755*/        OPC_MoveChild0,
/* 46756*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 46759*/        OPC_RecordChild0, // #1 = $Rm
/* 46760*/        OPC_CheckChild0Type, MVT::v8i16,
/* 46762*/        OPC_RecordChild1, // #2 = $idx
/* 46763*/        OPC_MoveChild1,
/* 46764*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46767*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 46769*/        OPC_CheckType, MVT::i64,
/* 46771*/        OPC_MoveParent,
/* 46772*/        OPC_MoveParent,
/* 46773*/        OPC_RecordChild1, // #3 = $Rn
/* 46774*/        OPC_MoveParent,
/* 46775*/        OPC_CheckType, MVT::v4i16,
/* 46777*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46779*/        OPC_EmitConvertToTarget, 2,
/* 46781*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i16_indexed), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 3, 1, 4, 
                  // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (mul:{ *:[v4i16] } (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V64:{ *:[v4i16] }:$Rn)) - Complexity = 13
                  // Dst: (MLAv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46791*/      0, /*End of Scope*/
/* 46792*/    /*Scope*/ 82, /*->46875*/
/* 46793*/      OPC_MoveChild0,
/* 46794*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 46797*/      OPC_Scope, 37, /*->46836*/ // 2 children in Scope
/* 46799*/        OPC_RecordChild0, // #0 = $Rn
/* 46800*/        OPC_MoveChild1,
/* 46801*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 46804*/        OPC_RecordChild0, // #1 = $Rm
/* 46805*/        OPC_CheckChild0Type, MVT::v8i16,
/* 46807*/        OPC_RecordChild1, // #2 = $idx
/* 46808*/        OPC_MoveChild1,
/* 46809*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46812*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 46814*/        OPC_CheckType, MVT::i64,
/* 46816*/        OPC_MoveParent,
/* 46817*/        OPC_MoveParent,
/* 46818*/        OPC_MoveParent,
/* 46819*/        OPC_RecordChild1, // #3 = $Rd
/* 46820*/        OPC_CheckType, MVT::v4i16,
/* 46822*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46824*/        OPC_EmitConvertToTarget, 2,
/* 46826*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i16_indexed), 0,
                      MVT::v4i16, 4/*#Ops*/, 3, 0, 1, 4, 
                  // Src: (add:{ *:[v4i16] } (mul:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)), V64:{ *:[v4i16] }:$Rd) - Complexity = 13
                  // Dst: (MLAv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46836*/      /*Scope*/ 37, /*->46874*/
/* 46837*/        OPC_MoveChild0,
/* 46838*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 46841*/        OPC_RecordChild0, // #0 = $Rm
/* 46842*/        OPC_CheckChild0Type, MVT::v8i16,
/* 46844*/        OPC_RecordChild1, // #1 = $idx
/* 46845*/        OPC_MoveChild1,
/* 46846*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46849*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 46851*/        OPC_CheckType, MVT::i64,
/* 46853*/        OPC_MoveParent,
/* 46854*/        OPC_MoveParent,
/* 46855*/        OPC_RecordChild1, // #2 = $Rn
/* 46856*/        OPC_MoveParent,
/* 46857*/        OPC_RecordChild1, // #3 = $Rd
/* 46858*/        OPC_CheckType, MVT::v4i16,
/* 46860*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46862*/        OPC_EmitConvertToTarget, 1,
/* 46864*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i16_indexed), 0,
                      MVT::v4i16, 4/*#Ops*/, 3, 2, 0, 4, 
                  // Src: (add:{ *:[v4i16] } (mul:{ *:[v4i16] } (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V64:{ *:[v4i16] }:$Rn), V64:{ *:[v4i16] }:$Rd) - Complexity = 13
                  // Dst: (MLAv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46874*/      0, /*End of Scope*/
/* 46875*/    /*Scope*/ 41, /*->46917*/
/* 46876*/      OPC_RecordChild0, // #0 = $Rd
/* 46877*/      OPC_MoveChild1,
/* 46878*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 46881*/      OPC_MoveChild0,
/* 46882*/      OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 46885*/      OPC_RecordChild0, // #1 = $Rm
/* 46886*/      OPC_CheckChild0Type, MVT::v8i16,
/* 46888*/      OPC_RecordChild1, // #2 = $idx
/* 46889*/      OPC_MoveChild1,
/* 46890*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46893*/      OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 46895*/      OPC_CheckType, MVT::i64,
/* 46897*/      OPC_MoveParent,
/* 46898*/      OPC_MoveParent,
/* 46899*/      OPC_RecordChild1, // #3 = $Rn
/* 46900*/      OPC_MoveParent,
/* 46901*/      OPC_CheckType, MVT::v8i16,
/* 46903*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46905*/      OPC_EmitConvertToTarget, 2,
/* 46907*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv8i16_indexed), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 3, 1, 4, 
                // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (mul:{ *:[v8i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V128:{ *:[v8i16] }:$Rn)) - Complexity = 13
                // Dst: (MLAv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46917*/    /*Scope*/ 82, /*->47000*/
/* 46918*/      OPC_MoveChild0,
/* 46919*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 46922*/      OPC_Scope, 37, /*->46961*/ // 2 children in Scope
/* 46924*/        OPC_RecordChild0, // #0 = $Rn
/* 46925*/        OPC_MoveChild1,
/* 46926*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 46929*/        OPC_RecordChild0, // #1 = $Rm
/* 46930*/        OPC_CheckChild0Type, MVT::v8i16,
/* 46932*/        OPC_RecordChild1, // #2 = $idx
/* 46933*/        OPC_MoveChild1,
/* 46934*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46937*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 46939*/        OPC_CheckType, MVT::i64,
/* 46941*/        OPC_MoveParent,
/* 46942*/        OPC_MoveParent,
/* 46943*/        OPC_MoveParent,
/* 46944*/        OPC_RecordChild1, // #3 = $Rd
/* 46945*/        OPC_CheckType, MVT::v8i16,
/* 46947*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46949*/        OPC_EmitConvertToTarget, 2,
/* 46951*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv8i16_indexed), 0,
                      MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 4, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)), V128:{ *:[v8i16] }:$Rd) - Complexity = 13
                  // Dst: (MLAv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46961*/      /*Scope*/ 37, /*->46999*/
/* 46962*/        OPC_MoveChild0,
/* 46963*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE16),
/* 46966*/        OPC_RecordChild0, // #0 = $Rm
/* 46967*/        OPC_CheckChild0Type, MVT::v8i16,
/* 46969*/        OPC_RecordChild1, // #1 = $idx
/* 46970*/        OPC_MoveChild1,
/* 46971*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46974*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 46976*/        OPC_CheckType, MVT::i64,
/* 46978*/        OPC_MoveParent,
/* 46979*/        OPC_MoveParent,
/* 46980*/        OPC_RecordChild1, // #2 = $Rn
/* 46981*/        OPC_MoveParent,
/* 46982*/        OPC_RecordChild1, // #3 = $Rd
/* 46983*/        OPC_CheckType, MVT::v8i16,
/* 46985*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 46987*/        OPC_EmitConvertToTarget, 1,
/* 46989*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv8i16_indexed), 0,
                      MVT::v8i16, 4/*#Ops*/, 3, 2, 0, 4, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V128:{ *:[v8i16] }:$Rn), V128:{ *:[v8i16] }:$Rd) - Complexity = 13
                  // Dst: (MLAv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 46999*/      0, /*End of Scope*/
/* 47000*/    /*Scope*/ 41, /*->47042*/
/* 47001*/      OPC_RecordChild0, // #0 = $Rd
/* 47002*/      OPC_MoveChild1,
/* 47003*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 47006*/      OPC_MoveChild0,
/* 47007*/      OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 47010*/      OPC_RecordChild0, // #1 = $Rm
/* 47011*/      OPC_CheckChild0Type, MVT::v4i32,
/* 47013*/      OPC_RecordChild1, // #2 = $idx
/* 47014*/      OPC_MoveChild1,
/* 47015*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47018*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 47020*/      OPC_CheckType, MVT::i64,
/* 47022*/      OPC_MoveParent,
/* 47023*/      OPC_MoveParent,
/* 47024*/      OPC_RecordChild1, // #3 = $Rn
/* 47025*/      OPC_MoveParent,
/* 47026*/      OPC_CheckType, MVT::v2i32,
/* 47028*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47030*/      OPC_EmitConvertToTarget, 2,
/* 47032*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv2i32_indexed), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 3, 1, 4, 
                // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (mul:{ *:[v2i32] } (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2i32] }:$Rn)) - Complexity = 13
                // Dst: (MLAv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 47042*/    /*Scope*/ 82, /*->47125*/
/* 47043*/      OPC_MoveChild0,
/* 47044*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 47047*/      OPC_Scope, 37, /*->47086*/ // 2 children in Scope
/* 47049*/        OPC_RecordChild0, // #0 = $Rn
/* 47050*/        OPC_MoveChild1,
/* 47051*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 47054*/        OPC_RecordChild0, // #1 = $Rm
/* 47055*/        OPC_CheckChild0Type, MVT::v4i32,
/* 47057*/        OPC_RecordChild1, // #2 = $idx
/* 47058*/        OPC_MoveChild1,
/* 47059*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47062*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 47064*/        OPC_CheckType, MVT::i64,
/* 47066*/        OPC_MoveParent,
/* 47067*/        OPC_MoveParent,
/* 47068*/        OPC_MoveParent,
/* 47069*/        OPC_RecordChild1, // #3 = $Rd
/* 47070*/        OPC_CheckType, MVT::v2i32,
/* 47072*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47074*/        OPC_EmitConvertToTarget, 2,
/* 47076*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv2i32_indexed), 0,
                      MVT::v2i32, 4/*#Ops*/, 3, 0, 1, 4, 
                  // Src: (add:{ *:[v2i32] } (mul:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), V64:{ *:[v2i32] }:$Rd) - Complexity = 13
                  // Dst: (MLAv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 47086*/      /*Scope*/ 37, /*->47124*/
/* 47087*/        OPC_MoveChild0,
/* 47088*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 47091*/        OPC_RecordChild0, // #0 = $Rm
/* 47092*/        OPC_CheckChild0Type, MVT::v4i32,
/* 47094*/        OPC_RecordChild1, // #1 = $idx
/* 47095*/        OPC_MoveChild1,
/* 47096*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47099*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 47101*/        OPC_CheckType, MVT::i64,
/* 47103*/        OPC_MoveParent,
/* 47104*/        OPC_MoveParent,
/* 47105*/        OPC_RecordChild1, // #2 = $Rn
/* 47106*/        OPC_MoveParent,
/* 47107*/        OPC_RecordChild1, // #3 = $Rd
/* 47108*/        OPC_CheckType, MVT::v2i32,
/* 47110*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47112*/        OPC_EmitConvertToTarget, 1,
/* 47114*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv2i32_indexed), 0,
                      MVT::v2i32, 4/*#Ops*/, 3, 2, 0, 4, 
                  // Src: (add:{ *:[v2i32] } (mul:{ *:[v2i32] } (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2i32] }:$Rn), V64:{ *:[v2i32] }:$Rd) - Complexity = 13
                  // Dst: (MLAv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 47124*/      0, /*End of Scope*/
/* 47125*/    /*Scope*/ 41, /*->47167*/
/* 47126*/      OPC_RecordChild0, // #0 = $Rd
/* 47127*/      OPC_MoveChild1,
/* 47128*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 47131*/      OPC_MoveChild0,
/* 47132*/      OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 47135*/      OPC_RecordChild0, // #1 = $Rm
/* 47136*/      OPC_CheckChild0Type, MVT::v4i32,
/* 47138*/      OPC_RecordChild1, // #2 = $idx
/* 47139*/      OPC_MoveChild1,
/* 47140*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47143*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 47145*/      OPC_CheckType, MVT::i64,
/* 47147*/      OPC_MoveParent,
/* 47148*/      OPC_MoveParent,
/* 47149*/      OPC_RecordChild1, // #3 = $Rn
/* 47150*/      OPC_MoveParent,
/* 47151*/      OPC_CheckType, MVT::v4i32,
/* 47153*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47155*/      OPC_EmitConvertToTarget, 2,
/* 47157*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i32_indexed), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 3, 1, 4, 
                // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (mul:{ *:[v4i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4i32] }:$Rn)) - Complexity = 13
                // Dst: (MLAv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 47167*/    /*Scope*/ 82, /*->47250*/
/* 47168*/      OPC_MoveChild0,
/* 47169*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 47172*/      OPC_Scope, 37, /*->47211*/ // 2 children in Scope
/* 47174*/        OPC_RecordChild0, // #0 = $Rn
/* 47175*/        OPC_MoveChild1,
/* 47176*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 47179*/        OPC_RecordChild0, // #1 = $Rm
/* 47180*/        OPC_CheckChild0Type, MVT::v4i32,
/* 47182*/        OPC_RecordChild1, // #2 = $idx
/* 47183*/        OPC_MoveChild1,
/* 47184*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47187*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 47189*/        OPC_CheckType, MVT::i64,
/* 47191*/        OPC_MoveParent,
/* 47192*/        OPC_MoveParent,
/* 47193*/        OPC_MoveParent,
/* 47194*/        OPC_RecordChild1, // #3 = $Rd
/* 47195*/        OPC_CheckType, MVT::v4i32,
/* 47197*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47199*/        OPC_EmitConvertToTarget, 2,
/* 47201*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i32_indexed), 0,
                      MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 4, 
                  // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), V128:{ *:[v4i32] }:$Rd) - Complexity = 13
                  // Dst: (MLAv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 47211*/      /*Scope*/ 37, /*->47249*/
/* 47212*/        OPC_MoveChild0,
/* 47213*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 47216*/        OPC_RecordChild0, // #0 = $Rm
/* 47217*/        OPC_CheckChild0Type, MVT::v4i32,
/* 47219*/        OPC_RecordChild1, // #1 = $idx
/* 47220*/        OPC_MoveChild1,
/* 47221*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 47224*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 47226*/        OPC_CheckType, MVT::i64,
/* 47228*/        OPC_MoveParent,
/* 47229*/        OPC_MoveParent,
/* 47230*/        OPC_RecordChild1, // #2 = $Rn
/* 47231*/        OPC_MoveParent,
/* 47232*/        OPC_RecordChild1, // #3 = $Rd
/* 47233*/        OPC_CheckType, MVT::v4i32,
/* 47235*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47237*/        OPC_EmitConvertToTarget, 1,
/* 47239*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i32_indexed), 0,
                      MVT::v4i32, 4/*#Ops*/, 3, 2, 0, 4, 
                  // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4i32] }:$Rn), V128:{ *:[v4i32] }:$Rd) - Complexity = 13
                  // Dst: (MLAv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 47249*/      0, /*End of Scope*/
/* 47250*/    /*Scope*/ 89|128,4/*601*/, /*->47853*/
/* 47252*/      OPC_RecordChild0, // #0 = $Rd
/* 47253*/      OPC_MoveChild1,
/* 47254*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 47257*/      OPC_Scope, 102, /*->47361*/ // 6 children in Scope
/* 47259*/        OPC_CheckChild0Integer, 15|128,2/*271*/, 
/* 47262*/        OPC_RecordChild1, // #1 = $Rn
/* 47263*/        OPC_Scope, 15, /*->47280*/ // 6 children in Scope
/* 47265*/          OPC_CheckChild1Type, MVT::v8i8,
/* 47267*/          OPC_MoveParent,
/* 47268*/          OPC_CheckType, MVT::v4i16,
/* 47270*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47272*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv8i8_v4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 271:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn)) - Complexity = 11
                    // Dst: (SADALPv8i8_v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v8i8] }:$Rn)
/* 47280*/        /*Scope*/ 15, /*->47296*/
/* 47281*/          OPC_CheckChild1Type, MVT::v16i8,
/* 47283*/          OPC_MoveParent,
/* 47284*/          OPC_CheckType, MVT::v8i16,
/* 47286*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47288*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 271:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn)) - Complexity = 11
                    // Dst: (SADALPv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn)
/* 47296*/        /*Scope*/ 15, /*->47312*/
/* 47297*/          OPC_CheckChild1Type, MVT::v4i16,
/* 47299*/          OPC_MoveParent,
/* 47300*/          OPC_CheckType, MVT::v2i32,
/* 47302*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47304*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv4i16_v2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 271:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn)) - Complexity = 11
                    // Dst: (SADALPv4i16_v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v4i16] }:$Rn)
/* 47312*/        /*Scope*/ 15, /*->47328*/
/* 47313*/          OPC_CheckChild1Type, MVT::v8i16,
/* 47315*/          OPC_MoveParent,
/* 47316*/          OPC_CheckType, MVT::v4i32,
/* 47318*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47320*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 271:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn)) - Complexity = 11
                    // Dst: (SADALPv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn)
/* 47328*/        /*Scope*/ 15, /*->47344*/
/* 47329*/          OPC_CheckChild1Type, MVT::v2i32,
/* 47331*/          OPC_MoveParent,
/* 47332*/          OPC_CheckType, MVT::v1i64,
/* 47334*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47336*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv2i32_v1i64), 0,
                        MVT::v1i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rd, (intrinsic_wo_chain:{ *:[v1i64] } 271:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn)) - Complexity = 11
                    // Dst: (SADALPv2i32_v1i64:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rd, V64:{ *:[v2i32] }:$Rn)
/* 47344*/        /*Scope*/ 15, /*->47360*/
/* 47345*/          OPC_CheckChild1Type, MVT::v4i32,
/* 47347*/          OPC_MoveParent,
/* 47348*/          OPC_CheckType, MVT::v2i64,
/* 47350*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47352*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 271:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn)) - Complexity = 11
                    // Dst: (SADALPv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn)
/* 47360*/        0, /*End of Scope*/
/* 47361*/      /*Scope*/ 102, /*->47464*/
/* 47362*/        OPC_CheckChild0Integer, 73|128,2/*329*/, 
/* 47365*/        OPC_RecordChild1, // #1 = $Rn
/* 47366*/        OPC_Scope, 15, /*->47383*/ // 6 children in Scope
/* 47368*/          OPC_CheckChild1Type, MVT::v8i8,
/* 47370*/          OPC_MoveParent,
/* 47371*/          OPC_CheckType, MVT::v4i16,
/* 47373*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47375*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv8i8_v4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 329:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn)) - Complexity = 11
                    // Dst: (UADALPv8i8_v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v8i8] }:$Rn)
/* 47383*/        /*Scope*/ 15, /*->47399*/
/* 47384*/          OPC_CheckChild1Type, MVT::v16i8,
/* 47386*/          OPC_MoveParent,
/* 47387*/          OPC_CheckType, MVT::v8i16,
/* 47389*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47391*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 329:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn)) - Complexity = 11
                    // Dst: (UADALPv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn)
/* 47399*/        /*Scope*/ 15, /*->47415*/
/* 47400*/          OPC_CheckChild1Type, MVT::v4i16,
/* 47402*/          OPC_MoveParent,
/* 47403*/          OPC_CheckType, MVT::v2i32,
/* 47405*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47407*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv4i16_v2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 329:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn)) - Complexity = 11
                    // Dst: (UADALPv4i16_v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v4i16] }:$Rn)
/* 47415*/        /*Scope*/ 15, /*->47431*/
/* 47416*/          OPC_CheckChild1Type, MVT::v8i16,
/* 47418*/          OPC_MoveParent,
/* 47419*/          OPC_CheckType, MVT::v4i32,
/* 47421*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47423*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 329:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn)) - Complexity = 11
                    // Dst: (UADALPv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn)
/* 47431*/        /*Scope*/ 15, /*->47447*/
/* 47432*/          OPC_CheckChild1Type, MVT::v2i32,
/* 47434*/          OPC_MoveParent,
/* 47435*/          OPC_CheckType, MVT::v1i64,
/* 47437*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47439*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv2i32_v1i64), 0,
                        MVT::v1i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rd, (intrinsic_wo_chain:{ *:[v1i64] } 329:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn)) - Complexity = 11
                    // Dst: (UADALPv2i32_v1i64:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rd, V64:{ *:[v2i32] }:$Rn)
/* 47447*/        /*Scope*/ 15, /*->47463*/
/* 47448*/          OPC_CheckChild1Type, MVT::v4i32,
/* 47450*/          OPC_MoveParent,
/* 47451*/          OPC_CheckType, MVT::v2i64,
/* 47453*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47455*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 329:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn)) - Complexity = 11
                    // Dst: (UADALPv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn)
/* 47463*/        0, /*End of Scope*/
/* 47464*/      /*Scope*/ 126, /*->47591*/
/* 47465*/        OPC_CheckChild0Integer, 14|128,2/*270*/, 
/* 47468*/        OPC_RecordChild1, // #1 = $Rn
/* 47469*/        OPC_Scope, 19, /*->47490*/ // 6 children in Scope
/* 47471*/          OPC_CheckChild1Type, MVT::v8i8,
/* 47473*/          OPC_RecordChild2, // #2 = $Rm
/* 47474*/          OPC_CheckChild2Type, MVT::v8i8,
/* 47476*/          OPC_MoveParent,
/* 47477*/          OPC_CheckType, MVT::v8i8,
/* 47479*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47481*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv8i8), 0,
                        MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 11
                    // Dst: (SABAv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 47490*/        /*Scope*/ 19, /*->47510*/
/* 47491*/          OPC_CheckChild1Type, MVT::v16i8,
/* 47493*/          OPC_RecordChild2, // #2 = $Rm
/* 47494*/          OPC_CheckChild2Type, MVT::v16i8,
/* 47496*/          OPC_MoveParent,
/* 47497*/          OPC_CheckType, MVT::v16i8,
/* 47499*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47501*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (intrinsic_wo_chain:{ *:[v16i8] } 270:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)) - Complexity = 11
                    // Dst: (SABAv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 47510*/        /*Scope*/ 19, /*->47530*/
/* 47511*/          OPC_CheckChild1Type, MVT::v4i16,
/* 47513*/          OPC_RecordChild2, // #2 = $Rm
/* 47514*/          OPC_CheckChild2Type, MVT::v4i16,
/* 47516*/          OPC_MoveParent,
/* 47517*/          OPC_CheckType, MVT::v4i16,
/* 47519*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47521*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv4i16), 0,
                        MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 11
                    // Dst: (SABAv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 47530*/        /*Scope*/ 19, /*->47550*/
/* 47531*/          OPC_CheckChild1Type, MVT::v8i16,
/* 47533*/          OPC_RecordChild2, // #2 = $Rm
/* 47534*/          OPC_CheckChild2Type, MVT::v8i16,
/* 47536*/          OPC_MoveParent,
/* 47537*/          OPC_CheckType, MVT::v8i16,
/* 47539*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47541*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 270:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 11
                    // Dst: (SABAv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 47550*/        /*Scope*/ 19, /*->47570*/
/* 47551*/          OPC_CheckChild1Type, MVT::v2i32,
/* 47553*/          OPC_RecordChild2, // #2 = $Rm
/* 47554*/          OPC_CheckChild2Type, MVT::v2i32,
/* 47556*/          OPC_MoveParent,
/* 47557*/          OPC_CheckType, MVT::v2i32,
/* 47559*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47561*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv2i32), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 11
                    // Dst: (SABAv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 47570*/        /*Scope*/ 19, /*->47590*/
/* 47571*/          OPC_CheckChild1Type, MVT::v4i32,
/* 47573*/          OPC_RecordChild2, // #2 = $Rm
/* 47574*/          OPC_CheckChild2Type, MVT::v4i32,
/* 47576*/          OPC_MoveParent,
/* 47577*/          OPC_CheckType, MVT::v4i32,
/* 47579*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47581*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 270:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 11
                    // Dst: (SABAv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 47590*/        0, /*End of Scope*/
/* 47591*/      /*Scope*/ 126, /*->47718*/
/* 47592*/        OPC_CheckChild0Integer, 72|128,2/*328*/, 
/* 47595*/        OPC_RecordChild1, // #1 = $Rn
/* 47596*/        OPC_Scope, 19, /*->47617*/ // 6 children in Scope
/* 47598*/          OPC_CheckChild1Type, MVT::v8i8,
/* 47600*/          OPC_RecordChild2, // #2 = $Rm
/* 47601*/          OPC_CheckChild2Type, MVT::v8i8,
/* 47603*/          OPC_MoveParent,
/* 47604*/          OPC_CheckType, MVT::v8i8,
/* 47606*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47608*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv8i8), 0,
                        MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 11
                    // Dst: (UABAv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 47617*/        /*Scope*/ 19, /*->47637*/
/* 47618*/          OPC_CheckChild1Type, MVT::v16i8,
/* 47620*/          OPC_RecordChild2, // #2 = $Rm
/* 47621*/          OPC_CheckChild2Type, MVT::v16i8,
/* 47623*/          OPC_MoveParent,
/* 47624*/          OPC_CheckType, MVT::v16i8,
/* 47626*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47628*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (intrinsic_wo_chain:{ *:[v16i8] } 328:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)) - Complexity = 11
                    // Dst: (UABAv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 47637*/        /*Scope*/ 19, /*->47657*/
/* 47638*/          OPC_CheckChild1Type, MVT::v4i16,
/* 47640*/          OPC_RecordChild2, // #2 = $Rm
/* 47641*/          OPC_CheckChild2Type, MVT::v4i16,
/* 47643*/          OPC_MoveParent,
/* 47644*/          OPC_CheckType, MVT::v4i16,
/* 47646*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47648*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv4i16), 0,
                        MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 11
                    // Dst: (UABAv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 47657*/        /*Scope*/ 19, /*->47677*/
/* 47658*/          OPC_CheckChild1Type, MVT::v8i16,
/* 47660*/          OPC_RecordChild2, // #2 = $Rm
/* 47661*/          OPC_CheckChild2Type, MVT::v8i16,
/* 47663*/          OPC_MoveParent,
/* 47664*/          OPC_CheckType, MVT::v8i16,
/* 47666*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47668*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 328:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 11
                    // Dst: (UABAv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 47677*/        /*Scope*/ 19, /*->47697*/
/* 47678*/          OPC_CheckChild1Type, MVT::v2i32,
/* 47680*/          OPC_RecordChild2, // #2 = $Rm
/* 47681*/          OPC_CheckChild2Type, MVT::v2i32,
/* 47683*/          OPC_MoveParent,
/* 47684*/          OPC_CheckType, MVT::v2i32,
/* 47686*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47688*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv2i32), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 11
                    // Dst: (UABAv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 47697*/        /*Scope*/ 19, /*->47717*/
/* 47698*/          OPC_CheckChild1Type, MVT::v4i32,
/* 47700*/          OPC_RecordChild2, // #2 = $Rm
/* 47701*/          OPC_CheckChild2Type, MVT::v4i32,
/* 47703*/          OPC_MoveParent,
/* 47704*/          OPC_CheckType, MVT::v4i32,
/* 47706*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47708*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 328:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 11
                    // Dst: (UABAv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 47717*/        0, /*End of Scope*/
/* 47718*/      /*Scope*/ 66, /*->47785*/
/* 47719*/        OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 47722*/        OPC_RecordChild1, // #1 = $Rn
/* 47723*/        OPC_Scope, 19, /*->47744*/ // 3 children in Scope
/* 47725*/          OPC_CheckChild1Type, MVT::v8i8,
/* 47727*/          OPC_RecordChild2, // #2 = $Rm
/* 47728*/          OPC_CheckChild2Type, MVT::v8i8,
/* 47730*/          OPC_MoveParent,
/* 47731*/          OPC_CheckType, MVT::v8i16,
/* 47733*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47735*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv8i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 287:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 11
                    // Dst: (SMLALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 47744*/        /*Scope*/ 19, /*->47764*/
/* 47745*/          OPC_CheckChild1Type, MVT::v4i16,
/* 47747*/          OPC_RecordChild2, // #2 = $Rm
/* 47748*/          OPC_CheckChild2Type, MVT::v4i16,
/* 47750*/          OPC_MoveParent,
/* 47751*/          OPC_CheckType, MVT::v4i32,
/* 47753*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47755*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 11
                    // Dst: (SMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 47764*/        /*Scope*/ 19, /*->47784*/
/* 47765*/          OPC_CheckChild1Type, MVT::v2i32,
/* 47767*/          OPC_RecordChild2, // #2 = $Rm
/* 47768*/          OPC_CheckChild2Type, MVT::v2i32,
/* 47770*/          OPC_MoveParent,
/* 47771*/          OPC_CheckType, MVT::v2i64,
/* 47773*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47775*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv2i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 11
                    // Dst: (SMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 47784*/        0, /*End of Scope*/
/* 47785*/      /*Scope*/ 66, /*->47852*/
/* 47786*/        OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 47789*/        OPC_RecordChild1, // #1 = $Rn
/* 47790*/        OPC_Scope, 19, /*->47811*/ // 3 children in Scope
/* 47792*/          OPC_CheckChild1Type, MVT::v8i8,
/* 47794*/          OPC_RecordChild2, // #2 = $Rm
/* 47795*/          OPC_CheckChild2Type, MVT::v8i8,
/* 47797*/          OPC_MoveParent,
/* 47798*/          OPC_CheckType, MVT::v8i16,
/* 47800*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47802*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv8i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (intrinsic_wo_chain:{ *:[v8i16] } 341:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 11
                    // Dst: (UMLALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 47811*/        /*Scope*/ 19, /*->47831*/
/* 47812*/          OPC_CheckChild1Type, MVT::v4i16,
/* 47814*/          OPC_RecordChild2, // #2 = $Rm
/* 47815*/          OPC_CheckChild2Type, MVT::v4i16,
/* 47817*/          OPC_MoveParent,
/* 47818*/          OPC_CheckType, MVT::v4i32,
/* 47820*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47822*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 11
                    // Dst: (UMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 47831*/        /*Scope*/ 19, /*->47851*/
/* 47832*/          OPC_CheckChild1Type, MVT::v2i32,
/* 47834*/          OPC_RecordChild2, // #2 = $Rm
/* 47835*/          OPC_CheckChild2Type, MVT::v2i32,
/* 47837*/          OPC_MoveParent,
/* 47838*/          OPC_CheckType, MVT::v2i64,
/* 47840*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47842*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv2i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 11
                    // Dst: (UMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 47851*/        0, /*End of Scope*/
/* 47852*/      0, /*End of Scope*/
/* 47853*/    /*Scope*/ 120|128,4/*632*/, /*->48487*/
/* 47855*/      OPC_MoveChild0,
/* 47856*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 47859*/      OPC_Scope, 108, /*->47969*/ // 6 children in Scope
/* 47861*/        OPC_CheckChild0Integer, 15|128,2/*271*/, 
/* 47864*/        OPC_RecordChild1, // #0 = $Rn
/* 47865*/        OPC_Scope, 16, /*->47883*/ // 6 children in Scope
/* 47867*/          OPC_CheckChild1Type, MVT::v8i8,
/* 47869*/          OPC_MoveParent,
/* 47870*/          OPC_RecordChild1, // #1 = $Rd
/* 47871*/          OPC_CheckType, MVT::v4i16,
/* 47873*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47875*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv8i8_v4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 271:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn), V64:{ *:[v4i16] }:$Rd) - Complexity = 11
                    // Dst: (SADALPv8i8_v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v8i8] }:$Rn)
/* 47883*/        /*Scope*/ 16, /*->47900*/
/* 47884*/          OPC_CheckChild1Type, MVT::v16i8,
/* 47886*/          OPC_MoveParent,
/* 47887*/          OPC_RecordChild1, // #1 = $Rd
/* 47888*/          OPC_CheckType, MVT::v8i16,
/* 47890*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47892*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 271:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn), V128:{ *:[v8i16] }:$Rd) - Complexity = 11
                    // Dst: (SADALPv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn)
/* 47900*/        /*Scope*/ 16, /*->47917*/
/* 47901*/          OPC_CheckChild1Type, MVT::v4i16,
/* 47903*/          OPC_MoveParent,
/* 47904*/          OPC_RecordChild1, // #1 = $Rd
/* 47905*/          OPC_CheckType, MVT::v2i32,
/* 47907*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47909*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv4i16_v2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 271:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn), V64:{ *:[v2i32] }:$Rd) - Complexity = 11
                    // Dst: (SADALPv4i16_v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v4i16] }:$Rn)
/* 47917*/        /*Scope*/ 16, /*->47934*/
/* 47918*/          OPC_CheckChild1Type, MVT::v8i16,
/* 47920*/          OPC_MoveParent,
/* 47921*/          OPC_RecordChild1, // #1 = $Rd
/* 47922*/          OPC_CheckType, MVT::v4i32,
/* 47924*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47926*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 271:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn), V128:{ *:[v4i32] }:$Rd) - Complexity = 11
                    // Dst: (SADALPv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn)
/* 47934*/        /*Scope*/ 16, /*->47951*/
/* 47935*/          OPC_CheckChild1Type, MVT::v2i32,
/* 47937*/          OPC_MoveParent,
/* 47938*/          OPC_RecordChild1, // #1 = $Rd
/* 47939*/          OPC_CheckType, MVT::v1i64,
/* 47941*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47943*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv2i32_v1i64), 0,
                        MVT::v1i64, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v1i64] } (intrinsic_wo_chain:{ *:[v1i64] } 271:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn), V64:{ *:[v1i64] }:$Rd) - Complexity = 11
                    // Dst: (SADALPv2i32_v1i64:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rd, V64:{ *:[v2i32] }:$Rn)
/* 47951*/        /*Scope*/ 16, /*->47968*/
/* 47952*/          OPC_CheckChild1Type, MVT::v4i32,
/* 47954*/          OPC_MoveParent,
/* 47955*/          OPC_RecordChild1, // #1 = $Rd
/* 47956*/          OPC_CheckType, MVT::v2i64,
/* 47958*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47960*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADALPv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 271:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn), V128:{ *:[v2i64] }:$Rd) - Complexity = 11
                    // Dst: (SADALPv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn)
/* 47968*/        0, /*End of Scope*/
/* 47969*/      /*Scope*/ 108, /*->48078*/
/* 47970*/        OPC_CheckChild0Integer, 73|128,2/*329*/, 
/* 47973*/        OPC_RecordChild1, // #0 = $Rn
/* 47974*/        OPC_Scope, 16, /*->47992*/ // 6 children in Scope
/* 47976*/          OPC_CheckChild1Type, MVT::v8i8,
/* 47978*/          OPC_MoveParent,
/* 47979*/          OPC_RecordChild1, // #1 = $Rd
/* 47980*/          OPC_CheckType, MVT::v4i16,
/* 47982*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 47984*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv8i8_v4i16), 0,
                        MVT::v4i16, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 329:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn), V64:{ *:[v4i16] }:$Rd) - Complexity = 11
                    // Dst: (UADALPv8i8_v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v8i8] }:$Rn)
/* 47992*/        /*Scope*/ 16, /*->48009*/
/* 47993*/          OPC_CheckChild1Type, MVT::v16i8,
/* 47995*/          OPC_MoveParent,
/* 47996*/          OPC_RecordChild1, // #1 = $Rd
/* 47997*/          OPC_CheckType, MVT::v8i16,
/* 47999*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48001*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 329:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn), V128:{ *:[v8i16] }:$Rd) - Complexity = 11
                    // Dst: (UADALPv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v16i8] }:$Rn)
/* 48009*/        /*Scope*/ 16, /*->48026*/
/* 48010*/          OPC_CheckChild1Type, MVT::v4i16,
/* 48012*/          OPC_MoveParent,
/* 48013*/          OPC_RecordChild1, // #1 = $Rd
/* 48014*/          OPC_CheckType, MVT::v2i32,
/* 48016*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48018*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv4i16_v2i32), 0,
                        MVT::v2i32, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 329:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn), V64:{ *:[v2i32] }:$Rd) - Complexity = 11
                    // Dst: (UADALPv4i16_v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v4i16] }:$Rn)
/* 48026*/        /*Scope*/ 16, /*->48043*/
/* 48027*/          OPC_CheckChild1Type, MVT::v8i16,
/* 48029*/          OPC_MoveParent,
/* 48030*/          OPC_RecordChild1, // #1 = $Rd
/* 48031*/          OPC_CheckType, MVT::v4i32,
/* 48033*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48035*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 329:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn), V128:{ *:[v4i32] }:$Rd) - Complexity = 11
                    // Dst: (UADALPv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v8i16] }:$Rn)
/* 48043*/        /*Scope*/ 16, /*->48060*/
/* 48044*/          OPC_CheckChild1Type, MVT::v2i32,
/* 48046*/          OPC_MoveParent,
/* 48047*/          OPC_RecordChild1, // #1 = $Rd
/* 48048*/          OPC_CheckType, MVT::v1i64,
/* 48050*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48052*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv2i32_v1i64), 0,
                        MVT::v1i64, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v1i64] } (intrinsic_wo_chain:{ *:[v1i64] } 329:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn), V64:{ *:[v1i64] }:$Rd) - Complexity = 11
                    // Dst: (UADALPv2i32_v1i64:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rd, V64:{ *:[v2i32] }:$Rn)
/* 48060*/        /*Scope*/ 16, /*->48077*/
/* 48061*/          OPC_CheckChild1Type, MVT::v4i32,
/* 48063*/          OPC_MoveParent,
/* 48064*/          OPC_RecordChild1, // #1 = $Rd
/* 48065*/          OPC_CheckType, MVT::v2i64,
/* 48067*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48069*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADALPv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 329:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn), V128:{ *:[v2i64] }:$Rd) - Complexity = 11
                    // Dst: (UADALPv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v4i32] }:$Rn)
/* 48077*/        0, /*End of Scope*/
/* 48078*/      /*Scope*/ 4|128,1/*132*/, /*->48212*/
/* 48080*/        OPC_CheckChild0Integer, 14|128,2/*270*/, 
/* 48083*/        OPC_RecordChild1, // #0 = $Rn
/* 48084*/        OPC_Scope, 20, /*->48106*/ // 6 children in Scope
/* 48086*/          OPC_CheckChild1Type, MVT::v8i8,
/* 48088*/          OPC_RecordChild2, // #1 = $Rm
/* 48089*/          OPC_CheckChild2Type, MVT::v8i8,
/* 48091*/          OPC_MoveParent,
/* 48092*/          OPC_RecordChild1, // #2 = $Rd
/* 48093*/          OPC_CheckType, MVT::v8i8,
/* 48095*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48097*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv8i8), 0,
                        MVT::v8i8, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm), V64:{ *:[v8i8] }:$Rd) - Complexity = 11
                    // Dst: (SABAv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 48106*/        /*Scope*/ 20, /*->48127*/
/* 48107*/          OPC_CheckChild1Type, MVT::v16i8,
/* 48109*/          OPC_RecordChild2, // #1 = $Rm
/* 48110*/          OPC_CheckChild2Type, MVT::v16i8,
/* 48112*/          OPC_MoveParent,
/* 48113*/          OPC_RecordChild1, // #2 = $Rd
/* 48114*/          OPC_CheckType, MVT::v16i8,
/* 48116*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48118*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 270:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm), V128:{ *:[v16i8] }:$Rd) - Complexity = 11
                    // Dst: (SABAv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 48127*/        /*Scope*/ 20, /*->48148*/
/* 48128*/          OPC_CheckChild1Type, MVT::v4i16,
/* 48130*/          OPC_RecordChild2, // #1 = $Rm
/* 48131*/          OPC_CheckChild2Type, MVT::v4i16,
/* 48133*/          OPC_MoveParent,
/* 48134*/          OPC_RecordChild1, // #2 = $Rd
/* 48135*/          OPC_CheckType, MVT::v4i16,
/* 48137*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48139*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv4i16), 0,
                        MVT::v4i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm), V64:{ *:[v4i16] }:$Rd) - Complexity = 11
                    // Dst: (SABAv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 48148*/        /*Scope*/ 20, /*->48169*/
/* 48149*/          OPC_CheckChild1Type, MVT::v8i16,
/* 48151*/          OPC_RecordChild2, // #1 = $Rm
/* 48152*/          OPC_CheckChild2Type, MVT::v8i16,
/* 48154*/          OPC_MoveParent,
/* 48155*/          OPC_RecordChild1, // #2 = $Rd
/* 48156*/          OPC_CheckType, MVT::v8i16,
/* 48158*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48160*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 270:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm), V128:{ *:[v8i16] }:$Rd) - Complexity = 11
                    // Dst: (SABAv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 48169*/        /*Scope*/ 20, /*->48190*/
/* 48170*/          OPC_CheckChild1Type, MVT::v2i32,
/* 48172*/          OPC_RecordChild2, // #1 = $Rm
/* 48173*/          OPC_CheckChild2Type, MVT::v2i32,
/* 48175*/          OPC_MoveParent,
/* 48176*/          OPC_RecordChild1, // #2 = $Rd
/* 48177*/          OPC_CheckType, MVT::v2i32,
/* 48179*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48181*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv2i32), 0,
                        MVT::v2i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm), V64:{ *:[v2i32] }:$Rd) - Complexity = 11
                    // Dst: (SABAv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 48190*/        /*Scope*/ 20, /*->48211*/
/* 48191*/          OPC_CheckChild1Type, MVT::v4i32,
/* 48193*/          OPC_RecordChild2, // #1 = $Rm
/* 48194*/          OPC_CheckChild2Type, MVT::v4i32,
/* 48196*/          OPC_MoveParent,
/* 48197*/          OPC_RecordChild1, // #2 = $Rd
/* 48198*/          OPC_CheckType, MVT::v4i32,
/* 48200*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48202*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABAv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 270:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm), V128:{ *:[v4i32] }:$Rd) - Complexity = 11
                    // Dst: (SABAv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 48211*/        0, /*End of Scope*/
/* 48212*/      /*Scope*/ 4|128,1/*132*/, /*->48346*/
/* 48214*/        OPC_CheckChild0Integer, 72|128,2/*328*/, 
/* 48217*/        OPC_RecordChild1, // #0 = $Rn
/* 48218*/        OPC_Scope, 20, /*->48240*/ // 6 children in Scope
/* 48220*/          OPC_CheckChild1Type, MVT::v8i8,
/* 48222*/          OPC_RecordChild2, // #1 = $Rm
/* 48223*/          OPC_CheckChild2Type, MVT::v8i8,
/* 48225*/          OPC_MoveParent,
/* 48226*/          OPC_RecordChild1, // #2 = $Rd
/* 48227*/          OPC_CheckType, MVT::v8i8,
/* 48229*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48231*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv8i8), 0,
                        MVT::v8i8, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm), V64:{ *:[v8i8] }:$Rd) - Complexity = 11
                    // Dst: (UABAv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 48240*/        /*Scope*/ 20, /*->48261*/
/* 48241*/          OPC_CheckChild1Type, MVT::v16i8,
/* 48243*/          OPC_RecordChild2, // #1 = $Rm
/* 48244*/          OPC_CheckChild2Type, MVT::v16i8,
/* 48246*/          OPC_MoveParent,
/* 48247*/          OPC_RecordChild1, // #2 = $Rd
/* 48248*/          OPC_CheckType, MVT::v16i8,
/* 48250*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48252*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 328:{ *:[iPTR] }, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm), V128:{ *:[v16i8] }:$Rd) - Complexity = 11
                    // Dst: (UABAv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 48261*/        /*Scope*/ 20, /*->48282*/
/* 48262*/          OPC_CheckChild1Type, MVT::v4i16,
/* 48264*/          OPC_RecordChild2, // #1 = $Rm
/* 48265*/          OPC_CheckChild2Type, MVT::v4i16,
/* 48267*/          OPC_MoveParent,
/* 48268*/          OPC_RecordChild1, // #2 = $Rd
/* 48269*/          OPC_CheckType, MVT::v4i16,
/* 48271*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48273*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv4i16), 0,
                        MVT::v4i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm), V64:{ *:[v4i16] }:$Rd) - Complexity = 11
                    // Dst: (UABAv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 48282*/        /*Scope*/ 20, /*->48303*/
/* 48283*/          OPC_CheckChild1Type, MVT::v8i16,
/* 48285*/          OPC_RecordChild2, // #1 = $Rm
/* 48286*/          OPC_CheckChild2Type, MVT::v8i16,
/* 48288*/          OPC_MoveParent,
/* 48289*/          OPC_RecordChild1, // #2 = $Rd
/* 48290*/          OPC_CheckType, MVT::v8i16,
/* 48292*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48294*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 328:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm), V128:{ *:[v8i16] }:$Rd) - Complexity = 11
                    // Dst: (UABAv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 48303*/        /*Scope*/ 20, /*->48324*/
/* 48304*/          OPC_CheckChild1Type, MVT::v2i32,
/* 48306*/          OPC_RecordChild2, // #1 = $Rm
/* 48307*/          OPC_CheckChild2Type, MVT::v2i32,
/* 48309*/          OPC_MoveParent,
/* 48310*/          OPC_RecordChild1, // #2 = $Rd
/* 48311*/          OPC_CheckType, MVT::v2i32,
/* 48313*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48315*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv2i32), 0,
                        MVT::v2i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm), V64:{ *:[v2i32] }:$Rd) - Complexity = 11
                    // Dst: (UABAv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 48324*/        /*Scope*/ 20, /*->48345*/
/* 48325*/          OPC_CheckChild1Type, MVT::v4i32,
/* 48327*/          OPC_RecordChild2, // #1 = $Rm
/* 48328*/          OPC_CheckChild2Type, MVT::v4i32,
/* 48330*/          OPC_MoveParent,
/* 48331*/          OPC_RecordChild1, // #2 = $Rd
/* 48332*/          OPC_CheckType, MVT::v4i32,
/* 48334*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48336*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABAv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 328:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm), V128:{ *:[v4i32] }:$Rd) - Complexity = 11
                    // Dst: (UABAv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 48345*/        0, /*End of Scope*/
/* 48346*/      /*Scope*/ 69, /*->48416*/
/* 48347*/        OPC_CheckChild0Integer, 31|128,2/*287*/, 
/* 48350*/        OPC_RecordChild1, // #0 = $Rn
/* 48351*/        OPC_Scope, 20, /*->48373*/ // 3 children in Scope
/* 48353*/          OPC_CheckChild1Type, MVT::v8i8,
/* 48355*/          OPC_RecordChild2, // #1 = $Rm
/* 48356*/          OPC_CheckChild2Type, MVT::v8i8,
/* 48358*/          OPC_MoveParent,
/* 48359*/          OPC_RecordChild1, // #2 = $Rd
/* 48360*/          OPC_CheckType, MVT::v8i16,
/* 48362*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48364*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv8i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 287:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm), V128:{ *:[v8i16] }:$Rd) - Complexity = 11
                    // Dst: (SMLALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 48373*/        /*Scope*/ 20, /*->48394*/
/* 48374*/          OPC_CheckChild1Type, MVT::v4i16,
/* 48376*/          OPC_RecordChild2, // #1 = $Rm
/* 48377*/          OPC_CheckChild2Type, MVT::v4i16,
/* 48379*/          OPC_MoveParent,
/* 48380*/          OPC_RecordChild1, // #2 = $Rd
/* 48381*/          OPC_CheckType, MVT::v4i32,
/* 48383*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48385*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 287:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm), V128:{ *:[v4i32] }:$Rd) - Complexity = 11
                    // Dst: (SMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 48394*/        /*Scope*/ 20, /*->48415*/
/* 48395*/          OPC_CheckChild1Type, MVT::v2i32,
/* 48397*/          OPC_RecordChild2, // #1 = $Rm
/* 48398*/          OPC_CheckChild2Type, MVT::v2i32,
/* 48400*/          OPC_MoveParent,
/* 48401*/          OPC_RecordChild1, // #2 = $Rd
/* 48402*/          OPC_CheckType, MVT::v2i64,
/* 48404*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48406*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv2i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 287:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm), V128:{ *:[v2i64] }:$Rd) - Complexity = 11
                    // Dst: (SMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 48415*/        0, /*End of Scope*/
/* 48416*/      /*Scope*/ 69, /*->48486*/
/* 48417*/        OPC_CheckChild0Integer, 85|128,2/*341*/, 
/* 48420*/        OPC_RecordChild1, // #0 = $Rn
/* 48421*/        OPC_Scope, 20, /*->48443*/ // 3 children in Scope
/* 48423*/          OPC_CheckChild1Type, MVT::v8i8,
/* 48425*/          OPC_RecordChild2, // #1 = $Rm
/* 48426*/          OPC_CheckChild2Type, MVT::v8i8,
/* 48428*/          OPC_MoveParent,
/* 48429*/          OPC_RecordChild1, // #2 = $Rd
/* 48430*/          OPC_CheckType, MVT::v8i16,
/* 48432*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48434*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv8i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 341:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm), V128:{ *:[v8i16] }:$Rd) - Complexity = 11
                    // Dst: (UMLALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 48443*/        /*Scope*/ 20, /*->48464*/
/* 48444*/          OPC_CheckChild1Type, MVT::v4i16,
/* 48446*/          OPC_RecordChild2, // #1 = $Rm
/* 48447*/          OPC_CheckChild2Type, MVT::v4i16,
/* 48449*/          OPC_MoveParent,
/* 48450*/          OPC_RecordChild1, // #2 = $Rd
/* 48451*/          OPC_CheckType, MVT::v4i32,
/* 48453*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48455*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 341:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm), V128:{ *:[v4i32] }:$Rd) - Complexity = 11
                    // Dst: (UMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 48464*/        /*Scope*/ 20, /*->48485*/
/* 48465*/          OPC_CheckChild1Type, MVT::v2i32,
/* 48467*/          OPC_RecordChild2, // #1 = $Rm
/* 48468*/          OPC_CheckChild2Type, MVT::v2i32,
/* 48470*/          OPC_MoveParent,
/* 48471*/          OPC_RecordChild1, // #2 = $Rd
/* 48472*/          OPC_CheckType, MVT::v2i64,
/* 48474*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48476*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv2i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 341:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm), V128:{ *:[v2i64] }:$Rd) - Complexity = 11
                    // Dst: (UMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 48485*/        0, /*End of Scope*/
/* 48486*/      0, /*End of Scope*/
/* 48487*/    /*Scope*/ 24|128,5/*664*/, /*->49153*/
/* 48489*/      OPC_RecordChild0, // #0 = $Rd
/* 48490*/      OPC_MoveChild1,
/* 48491*/      OPC_SwitchOpcode /*4 cases */, 33|128,1/*161*/, TARGET_VAL(AArch64ISD::SRSHR_I),// ->48657
/* 48496*/        OPC_RecordChild0, // #1 = $Rn
/* 48497*/        OPC_RecordChild1, // #2 = $imm
/* 48498*/        OPC_MoveChild1,
/* 48499*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 48502*/        OPC_CheckType, MVT::i32,
/* 48504*/        OPC_Scope, 19, /*->48525*/ // 5 children in Scope
/* 48506*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 48508*/          OPC_MoveParent,
/* 48509*/          OPC_MoveParent,
/* 48510*/          OPC_CheckType, MVT::v1i64,
/* 48512*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48514*/          OPC_EmitConvertToTarget, 2,
/* 48516*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAd), 0,
                        MVT::v1i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, (AArch64srshri:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (SRSRAd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 48525*/        /*Scope*/ 36, /*->48562*/
/* 48526*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 48528*/          OPC_MoveParent,
/* 48529*/          OPC_MoveParent,
/* 48530*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->48546
/* 48533*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48535*/            OPC_EmitConvertToTarget, 2,
/* 48537*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv8i8_shift), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (AArch64srshri:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm)) - Complexity = 10
                      // Dst: (SRSRAv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48546*/          /*SwitchType*/ 13, MVT::v16i8,// ->48561
/* 48548*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48550*/            OPC_EmitConvertToTarget, 2,
/* 48552*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (AArch64srshri:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm)) - Complexity = 10
                      // Dst: (SRSRAv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48561*/          0, // EndSwitchType
/* 48562*/        /*Scope*/ 36, /*->48599*/
/* 48563*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 48565*/          OPC_MoveParent,
/* 48566*/          OPC_MoveParent,
/* 48567*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->48583
/* 48570*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48572*/            OPC_EmitConvertToTarget, 2,
/* 48574*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv4i16_shift), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (AArch64srshri:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)) - Complexity = 10
                      // Dst: (SRSRAv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48583*/          /*SwitchType*/ 13, MVT::v8i16,// ->48598
/* 48585*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48587*/            OPC_EmitConvertToTarget, 2,
/* 48589*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (AArch64srshri:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)) - Complexity = 10
                      // Dst: (SRSRAv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48598*/          0, // EndSwitchType
/* 48599*/        /*Scope*/ 36, /*->48636*/
/* 48600*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 48602*/          OPC_MoveParent,
/* 48603*/          OPC_MoveParent,
/* 48604*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->48620
/* 48607*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48609*/            OPC_EmitConvertToTarget, 2,
/* 48611*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv2i32_shift), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (AArch64srshri:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)) - Complexity = 10
                      // Dst: (SRSRAv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48620*/          /*SwitchType*/ 13, MVT::v4i32,// ->48635
/* 48622*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48624*/            OPC_EmitConvertToTarget, 2,
/* 48626*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (AArch64srshri:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)) - Complexity = 10
                      // Dst: (SRSRAv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48635*/          0, // EndSwitchType
/* 48636*/        /*Scope*/ 19, /*->48656*/
/* 48637*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 48639*/          OPC_MoveParent,
/* 48640*/          OPC_MoveParent,
/* 48641*/          OPC_CheckType, MVT::v2i64,
/* 48643*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48645*/          OPC_EmitConvertToTarget, 2,
/* 48647*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv2i64_shift), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (AArch64srshri:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (SRSRAv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48656*/        0, /*End of Scope*/
/* 48657*/      /*SwitchOpcode*/ 33|128,1/*161*/, TARGET_VAL(AArch64ISD::VASHR),// ->48822
/* 48661*/        OPC_RecordChild0, // #1 = $Rn
/* 48662*/        OPC_RecordChild1, // #2 = $imm
/* 48663*/        OPC_MoveChild1,
/* 48664*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 48667*/        OPC_CheckType, MVT::i32,
/* 48669*/        OPC_Scope, 19, /*->48690*/ // 5 children in Scope
/* 48671*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 48673*/          OPC_MoveParent,
/* 48674*/          OPC_MoveParent,
/* 48675*/          OPC_CheckType, MVT::v1i64,
/* 48677*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48679*/          OPC_EmitConvertToTarget, 2,
/* 48681*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAd), 0,
                        MVT::v1i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, (AArch64vashr:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (SSRAd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 48690*/        /*Scope*/ 36, /*->48727*/
/* 48691*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 48693*/          OPC_MoveParent,
/* 48694*/          OPC_MoveParent,
/* 48695*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->48711
/* 48698*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48700*/            OPC_EmitConvertToTarget, 2,
/* 48702*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv8i8_shift), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (AArch64vashr:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm)) - Complexity = 10
                      // Dst: (SSRAv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48711*/          /*SwitchType*/ 13, MVT::v16i8,// ->48726
/* 48713*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48715*/            OPC_EmitConvertToTarget, 2,
/* 48717*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (AArch64vashr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm)) - Complexity = 10
                      // Dst: (SSRAv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48726*/          0, // EndSwitchType
/* 48727*/        /*Scope*/ 36, /*->48764*/
/* 48728*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 48730*/          OPC_MoveParent,
/* 48731*/          OPC_MoveParent,
/* 48732*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->48748
/* 48735*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48737*/            OPC_EmitConvertToTarget, 2,
/* 48739*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv4i16_shift), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (AArch64vashr:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)) - Complexity = 10
                      // Dst: (SSRAv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48748*/          /*SwitchType*/ 13, MVT::v8i16,// ->48763
/* 48750*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48752*/            OPC_EmitConvertToTarget, 2,
/* 48754*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (AArch64vashr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)) - Complexity = 10
                      // Dst: (SSRAv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48763*/          0, // EndSwitchType
/* 48764*/        /*Scope*/ 36, /*->48801*/
/* 48765*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 48767*/          OPC_MoveParent,
/* 48768*/          OPC_MoveParent,
/* 48769*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->48785
/* 48772*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48774*/            OPC_EmitConvertToTarget, 2,
/* 48776*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv2i32_shift), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (AArch64vashr:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)) - Complexity = 10
                      // Dst: (SSRAv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48785*/          /*SwitchType*/ 13, MVT::v4i32,// ->48800
/* 48787*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48789*/            OPC_EmitConvertToTarget, 2,
/* 48791*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (AArch64vashr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)) - Complexity = 10
                      // Dst: (SSRAv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48800*/          0, // EndSwitchType
/* 48801*/        /*Scope*/ 19, /*->48821*/
/* 48802*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 48804*/          OPC_MoveParent,
/* 48805*/          OPC_MoveParent,
/* 48806*/          OPC_CheckType, MVT::v2i64,
/* 48808*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48810*/          OPC_EmitConvertToTarget, 2,
/* 48812*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv2i64_shift), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (AArch64vashr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (SSRAv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48821*/        0, /*End of Scope*/
/* 48822*/      /*SwitchOpcode*/ 33|128,1/*161*/, TARGET_VAL(AArch64ISD::URSHR_I),// ->48987
/* 48826*/        OPC_RecordChild0, // #1 = $Rn
/* 48827*/        OPC_RecordChild1, // #2 = $imm
/* 48828*/        OPC_MoveChild1,
/* 48829*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 48832*/        OPC_CheckType, MVT::i32,
/* 48834*/        OPC_Scope, 19, /*->48855*/ // 5 children in Scope
/* 48836*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 48838*/          OPC_MoveParent,
/* 48839*/          OPC_MoveParent,
/* 48840*/          OPC_CheckType, MVT::v1i64,
/* 48842*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48844*/          OPC_EmitConvertToTarget, 2,
/* 48846*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAd), 0,
                        MVT::v1i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, (AArch64urshri:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (URSRAd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 48855*/        /*Scope*/ 36, /*->48892*/
/* 48856*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 48858*/          OPC_MoveParent,
/* 48859*/          OPC_MoveParent,
/* 48860*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->48876
/* 48863*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48865*/            OPC_EmitConvertToTarget, 2,
/* 48867*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv8i8_shift), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (AArch64urshri:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm)) - Complexity = 10
                      // Dst: (URSRAv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48876*/          /*SwitchType*/ 13, MVT::v16i8,// ->48891
/* 48878*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48880*/            OPC_EmitConvertToTarget, 2,
/* 48882*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (AArch64urshri:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm)) - Complexity = 10
                      // Dst: (URSRAv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48891*/          0, // EndSwitchType
/* 48892*/        /*Scope*/ 36, /*->48929*/
/* 48893*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 48895*/          OPC_MoveParent,
/* 48896*/          OPC_MoveParent,
/* 48897*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->48913
/* 48900*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48902*/            OPC_EmitConvertToTarget, 2,
/* 48904*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv4i16_shift), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (AArch64urshri:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)) - Complexity = 10
                      // Dst: (URSRAv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48913*/          /*SwitchType*/ 13, MVT::v8i16,// ->48928
/* 48915*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48917*/            OPC_EmitConvertToTarget, 2,
/* 48919*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (AArch64urshri:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)) - Complexity = 10
                      // Dst: (URSRAv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48928*/          0, // EndSwitchType
/* 48929*/        /*Scope*/ 36, /*->48966*/
/* 48930*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 48932*/          OPC_MoveParent,
/* 48933*/          OPC_MoveParent,
/* 48934*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->48950
/* 48937*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48939*/            OPC_EmitConvertToTarget, 2,
/* 48941*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv2i32_shift), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (AArch64urshri:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)) - Complexity = 10
                      // Dst: (URSRAv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48950*/          /*SwitchType*/ 13, MVT::v4i32,// ->48965
/* 48952*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48954*/            OPC_EmitConvertToTarget, 2,
/* 48956*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (AArch64urshri:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)) - Complexity = 10
                      // Dst: (URSRAv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48965*/          0, // EndSwitchType
/* 48966*/        /*Scope*/ 19, /*->48986*/
/* 48967*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 48969*/          OPC_MoveParent,
/* 48970*/          OPC_MoveParent,
/* 48971*/          OPC_CheckType, MVT::v2i64,
/* 48973*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 48975*/          OPC_EmitConvertToTarget, 2,
/* 48977*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv2i64_shift), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (AArch64urshri:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (URSRAv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 48986*/        0, /*End of Scope*/
/* 48987*/      /*SwitchOpcode*/ 33|128,1/*161*/, TARGET_VAL(AArch64ISD::VLSHR),// ->49152
/* 48991*/        OPC_RecordChild0, // #1 = $Rn
/* 48992*/        OPC_RecordChild1, // #2 = $imm
/* 48993*/        OPC_MoveChild1,
/* 48994*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 48997*/        OPC_CheckType, MVT::i32,
/* 48999*/        OPC_Scope, 19, /*->49020*/ // 5 children in Scope
/* 49001*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 49003*/          OPC_MoveParent,
/* 49004*/          OPC_MoveParent,
/* 49005*/          OPC_CheckType, MVT::v1i64,
/* 49007*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49009*/          OPC_EmitConvertToTarget, 2,
/* 49011*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAd), 0,
                        MVT::v1i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, (AArch64vlshr:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (USRAd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 49020*/        /*Scope*/ 36, /*->49057*/
/* 49021*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 49023*/          OPC_MoveParent,
/* 49024*/          OPC_MoveParent,
/* 49025*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->49041
/* 49028*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49030*/            OPC_EmitConvertToTarget, 2,
/* 49032*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv8i8_shift), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (AArch64vlshr:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm)) - Complexity = 10
                      // Dst: (USRAv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49041*/          /*SwitchType*/ 13, MVT::v16i8,// ->49056
/* 49043*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49045*/            OPC_EmitConvertToTarget, 2,
/* 49047*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (AArch64vlshr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm)) - Complexity = 10
                      // Dst: (USRAv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49056*/          0, // EndSwitchType
/* 49057*/        /*Scope*/ 36, /*->49094*/
/* 49058*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 49060*/          OPC_MoveParent,
/* 49061*/          OPC_MoveParent,
/* 49062*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->49078
/* 49065*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49067*/            OPC_EmitConvertToTarget, 2,
/* 49069*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv4i16_shift), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (AArch64vlshr:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)) - Complexity = 10
                      // Dst: (USRAv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49078*/          /*SwitchType*/ 13, MVT::v8i16,// ->49093
/* 49080*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49082*/            OPC_EmitConvertToTarget, 2,
/* 49084*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (AArch64vlshr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm)) - Complexity = 10
                      // Dst: (USRAv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49093*/          0, // EndSwitchType
/* 49094*/        /*Scope*/ 36, /*->49131*/
/* 49095*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 49097*/          OPC_MoveParent,
/* 49098*/          OPC_MoveParent,
/* 49099*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->49115
/* 49102*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49104*/            OPC_EmitConvertToTarget, 2,
/* 49106*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv2i32_shift), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (AArch64vlshr:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)) - Complexity = 10
                      // Dst: (USRAv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49115*/          /*SwitchType*/ 13, MVT::v4i32,// ->49130
/* 49117*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49119*/            OPC_EmitConvertToTarget, 2,
/* 49121*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (AArch64vlshr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm)) - Complexity = 10
                      // Dst: (USRAv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49130*/          0, // EndSwitchType
/* 49131*/        /*Scope*/ 19, /*->49151*/
/* 49132*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 49134*/          OPC_MoveParent,
/* 49135*/          OPC_MoveParent,
/* 49136*/          OPC_CheckType, MVT::v2i64,
/* 49138*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49140*/          OPC_EmitConvertToTarget, 2,
/* 49142*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv2i64_shift), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (AArch64vlshr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)) - Complexity = 10
                    // Dst: (USRAv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49151*/        0, /*End of Scope*/
/* 49152*/      0, // EndSwitchOpcode
/* 49153*/    /*Scope*/ 55|128,6/*823*/, /*->49978*/
/* 49155*/      OPC_MoveChild0,
/* 49156*/      OPC_SwitchOpcode /*6 cases */, 34|128,1/*162*/, TARGET_VAL(AArch64ISD::SRSHR_I),// ->49323
/* 49161*/        OPC_RecordChild0, // #0 = $Rn
/* 49162*/        OPC_RecordChild1, // #1 = $imm
/* 49163*/        OPC_MoveChild1,
/* 49164*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49167*/        OPC_CheckType, MVT::i32,
/* 49169*/        OPC_Scope, 37, /*->49208*/ // 4 children in Scope
/* 49171*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 49173*/          OPC_MoveParent,
/* 49174*/          OPC_MoveParent,
/* 49175*/          OPC_RecordChild1, // #2 = $Rd
/* 49176*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->49192
/* 49179*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49181*/            OPC_EmitConvertToTarget, 1,
/* 49183*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv8i8_shift), 0,
                          MVT::v8i8, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v8i8] } (AArch64srshri:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm), V64:{ *:[v8i8] }:$Rd) - Complexity = 10
                      // Dst: (SRSRAv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49192*/          /*SwitchType*/ 13, MVT::v16i8,// ->49207
/* 49194*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49196*/            OPC_EmitConvertToTarget, 1,
/* 49198*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v16i8] } (AArch64srshri:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm), V128:{ *:[v16i8] }:$Rd) - Complexity = 10
                      // Dst: (SRSRAv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49207*/          0, // EndSwitchType
/* 49208*/        /*Scope*/ 37, /*->49246*/
/* 49209*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 49211*/          OPC_MoveParent,
/* 49212*/          OPC_MoveParent,
/* 49213*/          OPC_RecordChild1, // #2 = $Rd
/* 49214*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->49230
/* 49217*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49219*/            OPC_EmitConvertToTarget, 1,
/* 49221*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv4i16_shift), 0,
                          MVT::v4i16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v4i16] } (AArch64srshri:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm), V64:{ *:[v4i16] }:$Rd) - Complexity = 10
                      // Dst: (SRSRAv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49230*/          /*SwitchType*/ 13, MVT::v8i16,// ->49245
/* 49232*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49234*/            OPC_EmitConvertToTarget, 1,
/* 49236*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v8i16] } (AArch64srshri:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm), V128:{ *:[v8i16] }:$Rd) - Complexity = 10
                      // Dst: (SRSRAv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49245*/          0, // EndSwitchType
/* 49246*/        /*Scope*/ 37, /*->49284*/
/* 49247*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 49249*/          OPC_MoveParent,
/* 49250*/          OPC_MoveParent,
/* 49251*/          OPC_RecordChild1, // #2 = $Rd
/* 49252*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->49268
/* 49255*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49257*/            OPC_EmitConvertToTarget, 1,
/* 49259*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv2i32_shift), 0,
                          MVT::v2i32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v2i32] } (AArch64srshri:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), V64:{ *:[v2i32] }:$Rd) - Complexity = 10
                      // Dst: (SRSRAv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49268*/          /*SwitchType*/ 13, MVT::v4i32,// ->49283
/* 49270*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49272*/            OPC_EmitConvertToTarget, 1,
/* 49274*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v4i32] } (AArch64srshri:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), V128:{ *:[v4i32] }:$Rd) - Complexity = 10
                      // Dst: (SRSRAv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49283*/          0, // EndSwitchType
/* 49284*/        /*Scope*/ 37, /*->49322*/
/* 49285*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 49287*/          OPC_MoveParent,
/* 49288*/          OPC_MoveParent,
/* 49289*/          OPC_RecordChild1, // #2 = $Rd
/* 49290*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i64,// ->49306
/* 49293*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49295*/            OPC_EmitConvertToTarget, 1,
/* 49297*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAv2i64_shift), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v2i64] } (AArch64srshri:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), V128:{ *:[v2i64] }:$Rd) - Complexity = 10
                      // Dst: (SRSRAv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49306*/          /*SwitchType*/ 13, MVT::v1i64,// ->49321
/* 49308*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49310*/            OPC_EmitConvertToTarget, 1,
/* 49312*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSRAd), 0,
                          MVT::v1i64, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v1i64] } (AArch64srshri:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), FPR64:{ *:[v1i64] }:$Rd) - Complexity = 10
                      // Dst: (SRSRAd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 49321*/          0, // EndSwitchType
/* 49322*/        0, /*End of Scope*/
/* 49323*/      /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(AArch64ISD::VASHR),// ->49489
/* 49327*/        OPC_RecordChild0, // #0 = $Rn
/* 49328*/        OPC_RecordChild1, // #1 = $imm
/* 49329*/        OPC_MoveChild1,
/* 49330*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49333*/        OPC_CheckType, MVT::i32,
/* 49335*/        OPC_Scope, 37, /*->49374*/ // 4 children in Scope
/* 49337*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 49339*/          OPC_MoveParent,
/* 49340*/          OPC_MoveParent,
/* 49341*/          OPC_RecordChild1, // #2 = $Rd
/* 49342*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->49358
/* 49345*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49347*/            OPC_EmitConvertToTarget, 1,
/* 49349*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv8i8_shift), 0,
                          MVT::v8i8, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v8i8] } (AArch64vashr:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm), V64:{ *:[v8i8] }:$Rd) - Complexity = 10
                      // Dst: (SSRAv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49358*/          /*SwitchType*/ 13, MVT::v16i8,// ->49373
/* 49360*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49362*/            OPC_EmitConvertToTarget, 1,
/* 49364*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v16i8] } (AArch64vashr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm), V128:{ *:[v16i8] }:$Rd) - Complexity = 10
                      // Dst: (SSRAv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49373*/          0, // EndSwitchType
/* 49374*/        /*Scope*/ 37, /*->49412*/
/* 49375*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 49377*/          OPC_MoveParent,
/* 49378*/          OPC_MoveParent,
/* 49379*/          OPC_RecordChild1, // #2 = $Rd
/* 49380*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->49396
/* 49383*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49385*/            OPC_EmitConvertToTarget, 1,
/* 49387*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv4i16_shift), 0,
                          MVT::v4i16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v4i16] } (AArch64vashr:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm), V64:{ *:[v4i16] }:$Rd) - Complexity = 10
                      // Dst: (SSRAv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49396*/          /*SwitchType*/ 13, MVT::v8i16,// ->49411
/* 49398*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49400*/            OPC_EmitConvertToTarget, 1,
/* 49402*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v8i16] } (AArch64vashr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm), V128:{ *:[v8i16] }:$Rd) - Complexity = 10
                      // Dst: (SSRAv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49411*/          0, // EndSwitchType
/* 49412*/        /*Scope*/ 37, /*->49450*/
/* 49413*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 49415*/          OPC_MoveParent,
/* 49416*/          OPC_MoveParent,
/* 49417*/          OPC_RecordChild1, // #2 = $Rd
/* 49418*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->49434
/* 49421*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49423*/            OPC_EmitConvertToTarget, 1,
/* 49425*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv2i32_shift), 0,
                          MVT::v2i32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v2i32] } (AArch64vashr:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), V64:{ *:[v2i32] }:$Rd) - Complexity = 10
                      // Dst: (SSRAv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49434*/          /*SwitchType*/ 13, MVT::v4i32,// ->49449
/* 49436*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49438*/            OPC_EmitConvertToTarget, 1,
/* 49440*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v4i32] } (AArch64vashr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), V128:{ *:[v4i32] }:$Rd) - Complexity = 10
                      // Dst: (SSRAv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49449*/          0, // EndSwitchType
/* 49450*/        /*Scope*/ 37, /*->49488*/
/* 49451*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 49453*/          OPC_MoveParent,
/* 49454*/          OPC_MoveParent,
/* 49455*/          OPC_RecordChild1, // #2 = $Rd
/* 49456*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i64,// ->49472
/* 49459*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49461*/            OPC_EmitConvertToTarget, 1,
/* 49463*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAv2i64_shift), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v2i64] } (AArch64vashr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), V128:{ *:[v2i64] }:$Rd) - Complexity = 10
                      // Dst: (SSRAv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49472*/          /*SwitchType*/ 13, MVT::v1i64,// ->49487
/* 49474*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49476*/            OPC_EmitConvertToTarget, 1,
/* 49478*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSRAd), 0,
                          MVT::v1i64, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v1i64] } (AArch64vashr:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), FPR64:{ *:[v1i64] }:$Rd) - Complexity = 10
                      // Dst: (SSRAd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 49487*/          0, // EndSwitchType
/* 49488*/        0, /*End of Scope*/
/* 49489*/      /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(AArch64ISD::URSHR_I),// ->49655
/* 49493*/        OPC_RecordChild0, // #0 = $Rn
/* 49494*/        OPC_RecordChild1, // #1 = $imm
/* 49495*/        OPC_MoveChild1,
/* 49496*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49499*/        OPC_CheckType, MVT::i32,
/* 49501*/        OPC_Scope, 37, /*->49540*/ // 4 children in Scope
/* 49503*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 49505*/          OPC_MoveParent,
/* 49506*/          OPC_MoveParent,
/* 49507*/          OPC_RecordChild1, // #2 = $Rd
/* 49508*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->49524
/* 49511*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49513*/            OPC_EmitConvertToTarget, 1,
/* 49515*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv8i8_shift), 0,
                          MVT::v8i8, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v8i8] } (AArch64urshri:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm), V64:{ *:[v8i8] }:$Rd) - Complexity = 10
                      // Dst: (URSRAv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49524*/          /*SwitchType*/ 13, MVT::v16i8,// ->49539
/* 49526*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49528*/            OPC_EmitConvertToTarget, 1,
/* 49530*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v16i8] } (AArch64urshri:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm), V128:{ *:[v16i8] }:$Rd) - Complexity = 10
                      // Dst: (URSRAv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49539*/          0, // EndSwitchType
/* 49540*/        /*Scope*/ 37, /*->49578*/
/* 49541*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 49543*/          OPC_MoveParent,
/* 49544*/          OPC_MoveParent,
/* 49545*/          OPC_RecordChild1, // #2 = $Rd
/* 49546*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->49562
/* 49549*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49551*/            OPC_EmitConvertToTarget, 1,
/* 49553*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv4i16_shift), 0,
                          MVT::v4i16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v4i16] } (AArch64urshri:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm), V64:{ *:[v4i16] }:$Rd) - Complexity = 10
                      // Dst: (URSRAv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49562*/          /*SwitchType*/ 13, MVT::v8i16,// ->49577
/* 49564*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49566*/            OPC_EmitConvertToTarget, 1,
/* 49568*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v8i16] } (AArch64urshri:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm), V128:{ *:[v8i16] }:$Rd) - Complexity = 10
                      // Dst: (URSRAv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49577*/          0, // EndSwitchType
/* 49578*/        /*Scope*/ 37, /*->49616*/
/* 49579*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 49581*/          OPC_MoveParent,
/* 49582*/          OPC_MoveParent,
/* 49583*/          OPC_RecordChild1, // #2 = $Rd
/* 49584*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->49600
/* 49587*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49589*/            OPC_EmitConvertToTarget, 1,
/* 49591*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv2i32_shift), 0,
                          MVT::v2i32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v2i32] } (AArch64urshri:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), V64:{ *:[v2i32] }:$Rd) - Complexity = 10
                      // Dst: (URSRAv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49600*/          /*SwitchType*/ 13, MVT::v4i32,// ->49615
/* 49602*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49604*/            OPC_EmitConvertToTarget, 1,
/* 49606*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v4i32] } (AArch64urshri:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), V128:{ *:[v4i32] }:$Rd) - Complexity = 10
                      // Dst: (URSRAv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49615*/          0, // EndSwitchType
/* 49616*/        /*Scope*/ 37, /*->49654*/
/* 49617*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 49619*/          OPC_MoveParent,
/* 49620*/          OPC_MoveParent,
/* 49621*/          OPC_RecordChild1, // #2 = $Rd
/* 49622*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i64,// ->49638
/* 49625*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49627*/            OPC_EmitConvertToTarget, 1,
/* 49629*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAv2i64_shift), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v2i64] } (AArch64urshri:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), V128:{ *:[v2i64] }:$Rd) - Complexity = 10
                      // Dst: (URSRAv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49638*/          /*SwitchType*/ 13, MVT::v1i64,// ->49653
/* 49640*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49642*/            OPC_EmitConvertToTarget, 1,
/* 49644*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSRAd), 0,
                          MVT::v1i64, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v1i64] } (AArch64urshri:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), FPR64:{ *:[v1i64] }:$Rd) - Complexity = 10
                      // Dst: (URSRAd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 49653*/          0, // EndSwitchType
/* 49654*/        0, /*End of Scope*/
/* 49655*/      /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(AArch64ISD::VLSHR),// ->49821
/* 49659*/        OPC_RecordChild0, // #0 = $Rn
/* 49660*/        OPC_RecordChild1, // #1 = $imm
/* 49661*/        OPC_MoveChild1,
/* 49662*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49665*/        OPC_CheckType, MVT::i32,
/* 49667*/        OPC_Scope, 37, /*->49706*/ // 4 children in Scope
/* 49669*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 49671*/          OPC_MoveParent,
/* 49672*/          OPC_MoveParent,
/* 49673*/          OPC_RecordChild1, // #2 = $Rd
/* 49674*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->49690
/* 49677*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49679*/            OPC_EmitConvertToTarget, 1,
/* 49681*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv8i8_shift), 0,
                          MVT::v8i8, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v8i8] } (AArch64vlshr:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm), V64:{ *:[v8i8] }:$Rd) - Complexity = 10
                      // Dst: (USRAv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49690*/          /*SwitchType*/ 13, MVT::v16i8,// ->49705
/* 49692*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49694*/            OPC_EmitConvertToTarget, 1,
/* 49696*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v16i8] } (AArch64vlshr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm), V128:{ *:[v16i8] }:$Rd) - Complexity = 10
                      // Dst: (USRAv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49705*/          0, // EndSwitchType
/* 49706*/        /*Scope*/ 37, /*->49744*/
/* 49707*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 49709*/          OPC_MoveParent,
/* 49710*/          OPC_MoveParent,
/* 49711*/          OPC_RecordChild1, // #2 = $Rd
/* 49712*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->49728
/* 49715*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49717*/            OPC_EmitConvertToTarget, 1,
/* 49719*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv4i16_shift), 0,
                          MVT::v4i16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v4i16] } (AArch64vlshr:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm), V64:{ *:[v4i16] }:$Rd) - Complexity = 10
                      // Dst: (USRAv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49728*/          /*SwitchType*/ 13, MVT::v8i16,// ->49743
/* 49730*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49732*/            OPC_EmitConvertToTarget, 1,
/* 49734*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v8i16] } (AArch64vlshr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm), V128:{ *:[v8i16] }:$Rd) - Complexity = 10
                      // Dst: (USRAv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49743*/          0, // EndSwitchType
/* 49744*/        /*Scope*/ 37, /*->49782*/
/* 49745*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 49747*/          OPC_MoveParent,
/* 49748*/          OPC_MoveParent,
/* 49749*/          OPC_RecordChild1, // #2 = $Rd
/* 49750*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->49766
/* 49753*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49755*/            OPC_EmitConvertToTarget, 1,
/* 49757*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv2i32_shift), 0,
                          MVT::v2i32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v2i32] } (AArch64vlshr:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), V64:{ *:[v2i32] }:$Rd) - Complexity = 10
                      // Dst: (USRAv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49766*/          /*SwitchType*/ 13, MVT::v4i32,// ->49781
/* 49768*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49770*/            OPC_EmitConvertToTarget, 1,
/* 49772*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v4i32] } (AArch64vlshr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm), V128:{ *:[v4i32] }:$Rd) - Complexity = 10
                      // Dst: (USRAv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49781*/          0, // EndSwitchType
/* 49782*/        /*Scope*/ 37, /*->49820*/
/* 49783*/          OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 49785*/          OPC_MoveParent,
/* 49786*/          OPC_MoveParent,
/* 49787*/          OPC_RecordChild1, // #2 = $Rd
/* 49788*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i64,// ->49804
/* 49791*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49793*/            OPC_EmitConvertToTarget, 1,
/* 49795*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAv2i64_shift), 0,
                          MVT::v2i64, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v2i64] } (AArch64vlshr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), V128:{ *:[v2i64] }:$Rd) - Complexity = 10
                      // Dst: (USRAv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 49804*/          /*SwitchType*/ 13, MVT::v1i64,// ->49819
/* 49806*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49808*/            OPC_EmitConvertToTarget, 1,
/* 49810*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::USRAd), 0,
                          MVT::v1i64, 3/*#Ops*/, 2, 0, 3, 
                      // Src: (add:{ *:[v1i64] } (AArch64vlshr:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm), FPR64:{ *:[v1i64] }:$Rd) - Complexity = 10
                      // Dst: (USRAd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rd, FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 49819*/          0, // EndSwitchType
/* 49820*/        0, /*End of Scope*/
/* 49821*/      /*SwitchOpcode*/ 75, TARGET_VAL(ISD::SIGN_EXTEND),// ->49899
/* 49824*/        OPC_RecordChild0, // #0 = $Rn
/* 49825*/        OPC_Scope, 23, /*->49850*/ // 3 children in Scope
/* 49827*/          OPC_CheckChild0Type, MVT::v8i8,
/* 49829*/          OPC_MoveParent,
/* 49830*/          OPC_MoveChild1,
/* 49831*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 49834*/          OPC_RecordChild0, // #1 = $Rm
/* 49835*/          OPC_CheckChild0Type, MVT::v8i8,
/* 49837*/          OPC_MoveParent,
/* 49838*/          OPC_CheckType, MVT::v8i16,
/* 49840*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49842*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm)) - Complexity = 9
                    // Dst: (SADDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 49850*/        /*Scope*/ 23, /*->49874*/
/* 49851*/          OPC_CheckChild0Type, MVT::v4i16,
/* 49853*/          OPC_MoveParent,
/* 49854*/          OPC_MoveChild1,
/* 49855*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 49858*/          OPC_RecordChild0, // #1 = $Rm
/* 49859*/          OPC_CheckChild0Type, MVT::v4i16,
/* 49861*/          OPC_MoveParent,
/* 49862*/          OPC_CheckType, MVT::v4i32,
/* 49864*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49866*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm)) - Complexity = 9
                    // Dst: (SADDLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 49874*/        /*Scope*/ 23, /*->49898*/
/* 49875*/          OPC_CheckChild0Type, MVT::v2i32,
/* 49877*/          OPC_MoveParent,
/* 49878*/          OPC_MoveChild1,
/* 49879*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 49882*/          OPC_RecordChild0, // #1 = $Rm
/* 49883*/          OPC_CheckChild0Type, MVT::v2i32,
/* 49885*/          OPC_MoveParent,
/* 49886*/          OPC_CheckType, MVT::v2i64,
/* 49888*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49890*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDLv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm)) - Complexity = 9
                    // Dst: (SADDLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 49898*/        0, /*End of Scope*/
/* 49899*/      /*SwitchOpcode*/ 75, TARGET_VAL(ISD::ZERO_EXTEND),// ->49977
/* 49902*/        OPC_RecordChild0, // #0 = $Rn
/* 49903*/        OPC_Scope, 23, /*->49928*/ // 3 children in Scope
/* 49905*/          OPC_CheckChild0Type, MVT::v8i8,
/* 49907*/          OPC_MoveParent,
/* 49908*/          OPC_MoveChild1,
/* 49909*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 49912*/          OPC_RecordChild0, // #1 = $Rm
/* 49913*/          OPC_CheckChild0Type, MVT::v8i8,
/* 49915*/          OPC_MoveParent,
/* 49916*/          OPC_CheckType, MVT::v8i16,
/* 49918*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49920*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm)) - Complexity = 9
                    // Dst: (UADDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 49928*/        /*Scope*/ 23, /*->49952*/
/* 49929*/          OPC_CheckChild0Type, MVT::v4i16,
/* 49931*/          OPC_MoveParent,
/* 49932*/          OPC_MoveChild1,
/* 49933*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 49936*/          OPC_RecordChild0, // #1 = $Rm
/* 49937*/          OPC_CheckChild0Type, MVT::v4i16,
/* 49939*/          OPC_MoveParent,
/* 49940*/          OPC_CheckType, MVT::v4i32,
/* 49942*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49944*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm)) - Complexity = 9
                    // Dst: (UADDLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 49952*/        /*Scope*/ 23, /*->49976*/
/* 49953*/          OPC_CheckChild0Type, MVT::v2i32,
/* 49955*/          OPC_MoveParent,
/* 49956*/          OPC_MoveChild1,
/* 49957*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 49960*/          OPC_RecordChild0, // #1 = $Rm
/* 49961*/          OPC_CheckChild0Type, MVT::v2i32,
/* 49963*/          OPC_MoveParent,
/* 49964*/          OPC_CheckType, MVT::v2i64,
/* 49966*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49968*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDLv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm)) - Complexity = 9
                    // Dst: (UADDLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 49976*/        0, /*End of Scope*/
/* 49977*/      0, // EndSwitchOpcode
/* 49978*/    /*Scope*/ 50|128,2/*306*/, /*->50286*/
/* 49980*/      OPC_RecordChild0, // #0 = $Rd
/* 49981*/      OPC_MoveChild1,
/* 49982*/      OPC_SwitchOpcode /*5 cases */, 83, TARGET_VAL(ISD::MUL),// ->50069
/* 49986*/        OPC_RecordChild0, // #1 = $Rn
/* 49987*/        OPC_RecordChild1, // #2 = $Rm
/* 49988*/        OPC_MoveParent,
/* 49989*/        OPC_SwitchType /*6 cases */, 11, MVT::v8i8,// ->50003
/* 49992*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 49994*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv8i8), 0,
                        MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, (mul:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                    // Dst: (MLAv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50003*/        /*SwitchType*/ 11, MVT::v16i8,// ->50016
/* 50005*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50007*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (mul:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)) - Complexity = 6
                    // Dst: (MLAv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 50016*/        /*SwitchType*/ 11, MVT::v4i16,// ->50029
/* 50018*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50020*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i16), 0,
                        MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (mul:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                    // Dst: (MLAv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50029*/        /*SwitchType*/ 11, MVT::v8i16,// ->50042
/* 50031*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50033*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (mul:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 6
                    // Dst: (MLAv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 50042*/        /*SwitchType*/ 11, MVT::v2i32,// ->50055
/* 50044*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50046*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv2i32), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (mul:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                    // Dst: (MLAv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50055*/        /*SwitchType*/ 11, MVT::v4i32,// ->50068
/* 50057*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50059*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (mul:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 6
                    // Dst: (MLAv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 50068*/        0, // EndSwitchType
/* 50069*/      /*SwitchOpcode*/ 51, TARGET_VAL(ISD::SIGN_EXTEND),// ->50123
/* 50072*/        OPC_RecordChild0, // #1 = $Rm
/* 50073*/        OPC_Scope, 15, /*->50090*/ // 3 children in Scope
/* 50075*/          OPC_CheckChild0Type, MVT::v8i8,
/* 50077*/          OPC_MoveParent,
/* 50078*/          OPC_CheckType, MVT::v8i16,
/* 50080*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50082*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                    // Dst: (SADDWv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50090*/        /*Scope*/ 15, /*->50106*/
/* 50091*/          OPC_CheckChild0Type, MVT::v4i16,
/* 50093*/          OPC_MoveParent,
/* 50094*/          OPC_CheckType, MVT::v4i32,
/* 50096*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50098*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                    // Dst: (SADDWv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50106*/        /*Scope*/ 15, /*->50122*/
/* 50107*/          OPC_CheckChild0Type, MVT::v2i32,
/* 50109*/          OPC_MoveParent,
/* 50110*/          OPC_CheckType, MVT::v2i64,
/* 50112*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50114*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                    // Dst: (SADDWv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50122*/        0, /*End of Scope*/
/* 50123*/      /*SwitchOpcode*/ 51, TARGET_VAL(ISD::ZERO_EXTEND),// ->50177
/* 50126*/        OPC_RecordChild0, // #1 = $Rm
/* 50127*/        OPC_Scope, 15, /*->50144*/ // 3 children in Scope
/* 50129*/          OPC_CheckChild0Type, MVT::v8i8,
/* 50131*/          OPC_MoveParent,
/* 50132*/          OPC_CheckType, MVT::v8i16,
/* 50134*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50136*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                    // Dst: (UADDWv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50144*/        /*Scope*/ 15, /*->50160*/
/* 50145*/          OPC_CheckChild0Type, MVT::v4i16,
/* 50147*/          OPC_MoveParent,
/* 50148*/          OPC_CheckType, MVT::v4i32,
/* 50150*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50152*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                    // Dst: (UADDWv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50160*/        /*Scope*/ 15, /*->50176*/
/* 50161*/          OPC_CheckChild0Type, MVT::v2i32,
/* 50163*/          OPC_MoveParent,
/* 50164*/          OPC_CheckType, MVT::v2i64,
/* 50166*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50168*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                    // Dst: (UADDWv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50176*/        0, /*End of Scope*/
/* 50177*/      /*SwitchOpcode*/ 51, TARGET_VAL(AArch64ISD::SMULL),// ->50231
/* 50180*/        OPC_RecordChild0, // #1 = $Rn
/* 50181*/        OPC_Scope, 15, /*->50198*/ // 3 children in Scope
/* 50183*/          OPC_CheckChild0Type, MVT::v8i8,
/* 50185*/          OPC_RecordChild1, // #2 = $Rm
/* 50186*/          OPC_MoveParent,
/* 50187*/          OPC_CheckType, MVT::v8i16,
/* 50189*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv8i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (AArch64smull:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                    // Dst: (SMLALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50198*/        /*Scope*/ 15, /*->50214*/
/* 50199*/          OPC_CheckChild0Type, MVT::v4i16,
/* 50201*/          OPC_RecordChild1, // #2 = $Rm
/* 50202*/          OPC_MoveParent,
/* 50203*/          OPC_CheckType, MVT::v4i32,
/* 50205*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (AArch64smull:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                    // Dst: (SMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50214*/        /*Scope*/ 15, /*->50230*/
/* 50215*/          OPC_CheckChild0Type, MVT::v2i32,
/* 50217*/          OPC_RecordChild1, // #2 = $Rm
/* 50218*/          OPC_MoveParent,
/* 50219*/          OPC_CheckType, MVT::v2i64,
/* 50221*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv2i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (AArch64smull:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                    // Dst: (SMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50230*/        0, /*End of Scope*/
/* 50231*/      /*SwitchOpcode*/ 51, TARGET_VAL(AArch64ISD::UMULL),// ->50285
/* 50234*/        OPC_RecordChild0, // #1 = $Rn
/* 50235*/        OPC_Scope, 15, /*->50252*/ // 3 children in Scope
/* 50237*/          OPC_CheckChild0Type, MVT::v8i8,
/* 50239*/          OPC_RecordChild1, // #2 = $Rm
/* 50240*/          OPC_MoveParent,
/* 50241*/          OPC_CheckType, MVT::v8i16,
/* 50243*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv8i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (AArch64umull:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 6
                    // Dst: (UMLALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50252*/        /*Scope*/ 15, /*->50268*/
/* 50253*/          OPC_CheckChild0Type, MVT::v4i16,
/* 50255*/          OPC_RecordChild1, // #2 = $Rm
/* 50256*/          OPC_MoveParent,
/* 50257*/          OPC_CheckType, MVT::v4i32,
/* 50259*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (AArch64umull:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 6
                    // Dst: (UMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50268*/        /*Scope*/ 15, /*->50284*/
/* 50269*/          OPC_CheckChild0Type, MVT::v2i32,
/* 50271*/          OPC_RecordChild1, // #2 = $Rm
/* 50272*/          OPC_MoveParent,
/* 50273*/          OPC_CheckType, MVT::v2i64,
/* 50275*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv2i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (AArch64umull:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 6
                    // Dst: (UMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50284*/        0, /*End of Scope*/
/* 50285*/      0, // EndSwitchOpcode
/* 50286*/    /*Scope*/ 62|128,2/*318*/, /*->50606*/
/* 50288*/      OPC_MoveChild0,
/* 50289*/      OPC_SwitchOpcode /*5 cases */, 84, TARGET_VAL(ISD::MUL),// ->50377
/* 50293*/        OPC_RecordChild0, // #0 = $Rn
/* 50294*/        OPC_RecordChild1, // #1 = $Rm
/* 50295*/        OPC_MoveParent,
/* 50296*/        OPC_RecordChild1, // #2 = $Rd
/* 50297*/        OPC_SwitchType /*6 cases */, 11, MVT::v8i8,// ->50311
/* 50300*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50302*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv8i8), 0,
                        MVT::v8i8, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i8] } (mul:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm), V64:{ *:[v8i8] }:$Rd) - Complexity = 6
                    // Dst: (MLAv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50311*/        /*SwitchType*/ 11, MVT::v16i8,// ->50324
/* 50313*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50315*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v16i8] } (mul:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm), V128:{ *:[v16i8] }:$Rd) - Complexity = 6
                    // Dst: (MLAv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 50324*/        /*SwitchType*/ 11, MVT::v4i16,// ->50337
/* 50326*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50328*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i16), 0,
                        MVT::v4i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i16] } (mul:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm), V64:{ *:[v4i16] }:$Rd) - Complexity = 6
                    // Dst: (MLAv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50337*/        /*SwitchType*/ 11, MVT::v8i16,// ->50350
/* 50339*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50341*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm), V128:{ *:[v8i16] }:$Rd) - Complexity = 6
                    // Dst: (MLAv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 50350*/        /*SwitchType*/ 11, MVT::v2i32,// ->50363
/* 50352*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50354*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv2i32), 0,
                        MVT::v2i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i32] } (mul:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm), V64:{ *:[v2i32] }:$Rd) - Complexity = 6
                    // Dst: (MLAv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50363*/        /*SwitchType*/ 11, MVT::v4i32,// ->50376
/* 50365*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50367*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MLAv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm), V128:{ *:[v4i32] }:$Rd) - Complexity = 6
                    // Dst: (MLAv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 50376*/        0, // EndSwitchType
/* 50377*/      /*SwitchOpcode*/ 54, TARGET_VAL(ISD::SIGN_EXTEND),// ->50434
/* 50380*/        OPC_RecordChild0, // #0 = $Rm
/* 50381*/        OPC_Scope, 16, /*->50399*/ // 3 children in Scope
/* 50383*/          OPC_CheckChild0Type, MVT::v8i8,
/* 50385*/          OPC_MoveParent,
/* 50386*/          OPC_RecordChild1, // #1 = $Rn
/* 50387*/          OPC_CheckType, MVT::v8i16,
/* 50389*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50391*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v8i16] } (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm), V128:{ *:[v8i16] }:$Rn) - Complexity = 6
                    // Dst: (SADDWv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50399*/        /*Scope*/ 16, /*->50416*/
/* 50400*/          OPC_CheckChild0Type, MVT::v4i16,
/* 50402*/          OPC_MoveParent,
/* 50403*/          OPC_RecordChild1, // #1 = $Rn
/* 50404*/          OPC_CheckType, MVT::v4i32,
/* 50406*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50408*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v4i32] } (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm), V128:{ *:[v4i32] }:$Rn) - Complexity = 6
                    // Dst: (SADDWv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50416*/        /*Scope*/ 16, /*->50433*/
/* 50417*/          OPC_CheckChild0Type, MVT::v2i32,
/* 50419*/          OPC_MoveParent,
/* 50420*/          OPC_RecordChild1, // #1 = $Rn
/* 50421*/          OPC_CheckType, MVT::v2i64,
/* 50423*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50425*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SADDWv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v2i64] } (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm), V128:{ *:[v2i64] }:$Rn) - Complexity = 6
                    // Dst: (SADDWv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50433*/        0, /*End of Scope*/
/* 50434*/      /*SwitchOpcode*/ 54, TARGET_VAL(ISD::ZERO_EXTEND),// ->50491
/* 50437*/        OPC_RecordChild0, // #0 = $Rm
/* 50438*/        OPC_Scope, 16, /*->50456*/ // 3 children in Scope
/* 50440*/          OPC_CheckChild0Type, MVT::v8i8,
/* 50442*/          OPC_MoveParent,
/* 50443*/          OPC_RecordChild1, // #1 = $Rn
/* 50444*/          OPC_CheckType, MVT::v8i16,
/* 50446*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50448*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rm), V128:{ *:[v8i16] }:$Rn) - Complexity = 6
                    // Dst: (UADDWv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50456*/        /*Scope*/ 16, /*->50473*/
/* 50457*/          OPC_CheckChild0Type, MVT::v4i16,
/* 50459*/          OPC_MoveParent,
/* 50460*/          OPC_RecordChild1, // #1 = $Rn
/* 50461*/          OPC_CheckType, MVT::v4i32,
/* 50463*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50465*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v4i32] } (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rm), V128:{ *:[v4i32] }:$Rn) - Complexity = 6
                    // Dst: (UADDWv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50473*/        /*Scope*/ 16, /*->50490*/
/* 50474*/          OPC_CheckChild0Type, MVT::v2i32,
/* 50476*/          OPC_MoveParent,
/* 50477*/          OPC_RecordChild1, // #1 = $Rn
/* 50478*/          OPC_CheckType, MVT::v2i64,
/* 50480*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50482*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UADDWv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[v2i64] } (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rm), V128:{ *:[v2i64] }:$Rn) - Complexity = 6
                    // Dst: (UADDWv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50490*/        0, /*End of Scope*/
/* 50491*/      /*SwitchOpcode*/ 54, TARGET_VAL(AArch64ISD::SMULL),// ->50548
/* 50494*/        OPC_RecordChild0, // #0 = $Rn
/* 50495*/        OPC_Scope, 16, /*->50513*/ // 3 children in Scope
/* 50497*/          OPC_CheckChild0Type, MVT::v8i8,
/* 50499*/          OPC_RecordChild1, // #1 = $Rm
/* 50500*/          OPC_MoveParent,
/* 50501*/          OPC_RecordChild1, // #2 = $Rd
/* 50502*/          OPC_CheckType, MVT::v8i16,
/* 50504*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv8i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (AArch64smull:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm), V128:{ *:[v8i16] }:$Rd) - Complexity = 6
                    // Dst: (SMLALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50513*/        /*Scope*/ 16, /*->50530*/
/* 50514*/          OPC_CheckChild0Type, MVT::v4i16,
/* 50516*/          OPC_RecordChild1, // #1 = $Rm
/* 50517*/          OPC_MoveParent,
/* 50518*/          OPC_RecordChild1, // #2 = $Rd
/* 50519*/          OPC_CheckType, MVT::v4i32,
/* 50521*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv4i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (AArch64smull:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm), V128:{ *:[v4i32] }:$Rd) - Complexity = 6
                    // Dst: (SMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50530*/        /*Scope*/ 16, /*->50547*/
/* 50531*/          OPC_CheckChild0Type, MVT::v2i32,
/* 50533*/          OPC_RecordChild1, // #1 = $Rm
/* 50534*/          OPC_MoveParent,
/* 50535*/          OPC_RecordChild1, // #2 = $Rd
/* 50536*/          OPC_CheckType, MVT::v2i64,
/* 50538*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMLALv2i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (AArch64smull:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm), V128:{ *:[v2i64] }:$Rd) - Complexity = 6
                    // Dst: (SMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50547*/        0, /*End of Scope*/
/* 50548*/      /*SwitchOpcode*/ 54, TARGET_VAL(AArch64ISD::UMULL),// ->50605
/* 50551*/        OPC_RecordChild0, // #0 = $Rn
/* 50552*/        OPC_Scope, 16, /*->50570*/ // 3 children in Scope
/* 50554*/          OPC_CheckChild0Type, MVT::v8i8,
/* 50556*/          OPC_RecordChild1, // #1 = $Rm
/* 50557*/          OPC_MoveParent,
/* 50558*/          OPC_RecordChild1, // #2 = $Rd
/* 50559*/          OPC_CheckType, MVT::v8i16,
/* 50561*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv8i8_v8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v8i16] } (AArch64umull:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm), V128:{ *:[v8i16] }:$Rd) - Complexity = 6
                    // Dst: (UMLALv8i8_v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50570*/        /*Scope*/ 16, /*->50587*/
/* 50571*/          OPC_CheckChild0Type, MVT::v4i16,
/* 50573*/          OPC_RecordChild1, // #1 = $Rm
/* 50574*/          OPC_MoveParent,
/* 50575*/          OPC_RecordChild1, // #2 = $Rd
/* 50576*/          OPC_CheckType, MVT::v4i32,
/* 50578*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv4i16_v4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v4i32] } (AArch64umull:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm), V128:{ *:[v4i32] }:$Rd) - Complexity = 6
                    // Dst: (UMLALv4i16_v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50587*/        /*Scope*/ 16, /*->50604*/
/* 50588*/          OPC_CheckChild0Type, MVT::v2i32,
/* 50590*/          OPC_RecordChild1, // #1 = $Rm
/* 50591*/          OPC_MoveParent,
/* 50592*/          OPC_RecordChild1, // #2 = $Rd
/* 50593*/          OPC_CheckType, MVT::v2i64,
/* 50595*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMLALv2i32_v2i64), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (add:{ *:[v2i64] } (AArch64umull:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm), V128:{ *:[v2i64] }:$Rd) - Complexity = 6
                    // Dst: (UMLALv2i32_v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50604*/        0, /*End of Scope*/
/* 50605*/      0, // EndSwitchOpcode
/* 50606*/    /*Scope*/ 100, /*->50707*/
/* 50607*/      OPC_RecordChild0, // #0 = $Rn
/* 50608*/      OPC_RecordChild1, // #1 = $Rm
/* 50609*/      OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->50622
/* 50612*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50614*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                  // Dst: (ADDv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 50622*/      /*SwitchType*/ 10, MVT::v16i8,// ->50634
/* 50624*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50626*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                  // Dst: (ADDv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 50634*/      /*SwitchType*/ 10, MVT::v4i16,// ->50646
/* 50636*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50638*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                  // Dst: (ADDv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 50646*/      /*SwitchType*/ 10, MVT::v8i16,// ->50658
/* 50648*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50650*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                  // Dst: (ADDv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 50658*/      /*SwitchType*/ 10, MVT::v2i32,// ->50670
/* 50660*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50662*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                  // Dst: (ADDv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 50670*/      /*SwitchType*/ 10, MVT::v4i32,// ->50682
/* 50672*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50674*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                  // Dst: (ADDv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 50682*/      /*SwitchType*/ 10, MVT::v2i64,// ->50694
/* 50684*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50686*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                  // Dst: (ADDv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 50694*/      /*SwitchType*/ 10, MVT::v1i64,// ->50706
/* 50696*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 50698*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 3
                  // Dst: (ADDv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 50706*/      0, // EndSwitchType
/* 50707*/    0, /*End of Scope*/
/* 50708*/  /*SwitchOpcode*/ 107|128,2/*363*/, TARGET_VAL(ISD::ATOMIC_LOAD),// ->51075
/* 50712*/    OPC_RecordMemRef,
/* 50713*/    OPC_RecordNode, // #0 = 'atomic_load' chained node
/* 50714*/    OPC_RecordChild1, // #1 = $ro_Windexed8:Rn:Rm:offset
/* 50715*/    OPC_Scope, 38, /*->50755*/ // 9 children in Scope
/* 50717*/      OPC_CheckPredicate, 47, // Predicate_atomic_load_8
/* 50719*/      OPC_CheckPredicate, 48, // Predicate_anonymous_4549
/* 50721*/      OPC_CheckType, MVT::i32,
/* 50723*/      OPC_Scope, 14, /*->50739*/ // 2 children in Scope
/* 50725*/        OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 50728*/        OPC_EmitMergeInputChains1_0,
/* 50729*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$offset))<<P:Predicate_atomic_load_8>><<P:Predicate_anonymous_4549>> - Complexity = 19
                  // Dst: (LDRBBroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$offset)
/* 50739*/      /*Scope*/ 14, /*->50754*/
/* 50740*/        OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 50743*/        OPC_EmitMergeInputChains1_0,
/* 50744*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$offset))<<P:Predicate_atomic_load_8>><<P:Predicate_anonymous_4549>> - Complexity = 19
                  // Dst: (LDRBBroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$offset)
/* 50754*/      0, /*End of Scope*/
/* 50755*/    /*Scope*/ 38, /*->50794*/
/* 50756*/      OPC_CheckPredicate, 49, // Predicate_atomic_load_16
/* 50758*/      OPC_CheckPredicate, 48, // Predicate_anonymous_4556
/* 50760*/      OPC_CheckType, MVT::i32,
/* 50762*/      OPC_Scope, 14, /*->50778*/ // 2 children in Scope
/* 50764*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 50767*/        OPC_EmitMergeInputChains1_0,
/* 50768*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHroW), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_atomic_load_16>><<P:Predicate_anonymous_4556>> - Complexity = 19
                  // Dst: (LDRHHroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/* 50778*/      /*Scope*/ 14, /*->50793*/
/* 50779*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 50782*/        OPC_EmitMergeInputChains1_0,
/* 50783*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHroX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend))<<P:Predicate_atomic_load_16>><<P:Predicate_anonymous_4556>> - Complexity = 19
                  // Dst: (LDRHHroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/* 50793*/      0, /*End of Scope*/
/* 50794*/    /*Scope*/ 38, /*->50833*/
/* 50795*/      OPC_CheckPredicate, 50, // Predicate_atomic_load_32
/* 50797*/      OPC_CheckPredicate, 48, // Predicate_anonymous_4563
/* 50799*/      OPC_CheckType, MVT::i32,
/* 50801*/      OPC_Scope, 14, /*->50817*/ // 2 children in Scope
/* 50803*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 50806*/        OPC_EmitMergeInputChains1_0,
/* 50807*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRWroW), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_atomic_load_32>><<P:Predicate_anonymous_4563>> - Complexity = 19
                  // Dst: (LDRWroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/* 50817*/      /*Scope*/ 14, /*->50832*/
/* 50818*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 50821*/        OPC_EmitMergeInputChains1_0,
/* 50822*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRWroX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend))<<P:Predicate_atomic_load_32>><<P:Predicate_anonymous_4563>> - Complexity = 19
                  // Dst: (LDRWroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/* 50832*/      0, /*End of Scope*/
/* 50833*/    /*Scope*/ 38, /*->50872*/
/* 50834*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_64
/* 50836*/      OPC_CheckPredicate, 48, // Predicate_anonymous_4570
/* 50838*/      OPC_CheckType, MVT::i64,
/* 50840*/      OPC_Scope, 14, /*->50856*/ // 2 children in Scope
/* 50842*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 50845*/        OPC_EmitMergeInputChains1_0,
/* 50846*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRXroW), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i64] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_atomic_load_64>><<P:Predicate_anonymous_4570>> - Complexity = 19
                  // Dst: (LDRXroW:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 50856*/      /*Scope*/ 14, /*->50871*/
/* 50857*/        OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 50860*/        OPC_EmitMergeInputChains1_0,
/* 50861*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRXroX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (atomic_load:{ *:[i64] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_atomic_load_64>><<P:Predicate_anonymous_4570>> - Complexity = 19
                  // Dst: (LDRXroX:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 50871*/      0, /*End of Scope*/
/* 50872*/    /*Scope*/ 34, /*->50907*/
/* 50873*/      OPC_CheckPredicate, 47, // Predicate_atomic_load_8
/* 50875*/      OPC_CheckPredicate, 48, // Predicate_anonymous_4549
/* 50877*/      OPC_CheckType, MVT::i32,
/* 50879*/      OPC_Scope, 12, /*->50893*/ // 2 children in Scope
/* 50881*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 50884*/        OPC_EmitMergeInputChains1_0,
/* 50885*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_atomic_load_8>><<P:Predicate_anonymous_4549>> - Complexity = 13
                  // Dst: (LDRBBui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 50893*/      /*Scope*/ 12, /*->50906*/
/* 50894*/        OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 50897*/        OPC_EmitMergeInputChains1_0,
/* 50898*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_atomic_load_8>><<P:Predicate_anonymous_4549>> - Complexity = 13
                  // Dst: (LDURBBi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 50906*/      0, /*End of Scope*/
/* 50907*/    /*Scope*/ 34, /*->50942*/
/* 50908*/      OPC_CheckPredicate, 49, // Predicate_atomic_load_16
/* 50910*/      OPC_CheckPredicate, 48, // Predicate_anonymous_4556
/* 50912*/      OPC_CheckType, MVT::i32,
/* 50914*/      OPC_Scope, 12, /*->50928*/ // 2 children in Scope
/* 50916*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 50919*/        OPC_EmitMergeInputChains1_0,
/* 50920*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRHHui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_atomic_load_16>><<P:Predicate_anonymous_4556>> - Complexity = 13
                  // Dst: (LDRHHui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/* 50928*/      /*Scope*/ 12, /*->50941*/
/* 50929*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 50932*/        OPC_EmitMergeInputChains1_0,
/* 50933*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_atomic_load_16>><<P:Predicate_anonymous_4556>> - Complexity = 13
                  // Dst: (LDURHHi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 50941*/      0, /*End of Scope*/
/* 50942*/    /*Scope*/ 34, /*->50977*/
/* 50943*/      OPC_CheckPredicate, 50, // Predicate_atomic_load_32
/* 50945*/      OPC_CheckPredicate, 48, // Predicate_anonymous_4563
/* 50947*/      OPC_CheckType, MVT::i32,
/* 50949*/      OPC_Scope, 12, /*->50963*/ // 2 children in Scope
/* 50951*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 50954*/        OPC_EmitMergeInputChains1_0,
/* 50955*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRWui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_atomic_load_32>><<P:Predicate_anonymous_4563>> - Complexity = 13
                  // Dst: (LDRWui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/* 50963*/      /*Scope*/ 12, /*->50976*/
/* 50964*/        OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #2 #3
/* 50967*/        OPC_EmitMergeInputChains1_0,
/* 50968*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURWi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_atomic_load_32>><<P:Predicate_anonymous_4563>> - Complexity = 13
                  // Dst: (LDURWi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 50976*/      0, /*End of Scope*/
/* 50977*/    /*Scope*/ 34, /*->51012*/
/* 50978*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_64
/* 50980*/      OPC_CheckPredicate, 48, // Predicate_anonymous_4570
/* 50982*/      OPC_CheckType, MVT::i64,
/* 50984*/      OPC_Scope, 12, /*->50998*/ // 2 children in Scope
/* 50986*/        OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 50989*/        OPC_EmitMergeInputChains1_0,
/* 50990*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRXui), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i64] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_atomic_load_64>><<P:Predicate_anonymous_4570>> - Complexity = 13
                  // Dst: (LDRXui:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 50998*/      /*Scope*/ 12, /*->51011*/
/* 50999*/        OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #2 #3
/* 51002*/        OPC_EmitMergeInputChains1_0,
/* 51003*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDURXi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i64] } (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_atomic_load_64>><<P:Predicate_anonymous_4570>> - Complexity = 13
                  // Dst: (LDURXi:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 51011*/      0, /*End of Scope*/
/* 51012*/    /*Scope*/ 61, /*->51074*/
/* 51013*/      OPC_CheckChild1Type, MVT::i64,
/* 51015*/      OPC_SwitchType /*2 cases */, 41, MVT::i32,// ->51059
/* 51018*/        OPC_Scope, 12, /*->51032*/ // 3 children in Scope
/* 51020*/          OPC_CheckPredicate, 47, // Predicate_atomic_load_8
/* 51022*/          OPC_CheckPredicate, 52, // Predicate_anonymous_4547
/* 51024*/          OPC_EmitMergeInputChains1_0,
/* 51025*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDARB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (atomic_load:{ *:[i32] } GPR64sp:{ *:[i64] }:$ptr)<<P:Predicate_atomic_load_8>><<P:Predicate_anonymous_4547>> - Complexity = 4
                    // Dst: (LDARB:{ *:[i32] } GPR64sp:{ *:[i64] }:$ptr)
/* 51032*/        /*Scope*/ 12, /*->51045*/
/* 51033*/          OPC_CheckPredicate, 49, // Predicate_atomic_load_16
/* 51035*/          OPC_CheckPredicate, 52, // Predicate_anonymous_4554
/* 51037*/          OPC_EmitMergeInputChains1_0,
/* 51038*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDARH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (atomic_load:{ *:[i32] } GPR64sp:{ *:[i64] }:$ptr)<<P:Predicate_atomic_load_16>><<P:Predicate_anonymous_4554>> - Complexity = 4
                    // Dst: (LDARH:{ *:[i32] } GPR64sp:{ *:[i64] }:$ptr)
/* 51045*/        /*Scope*/ 12, /*->51058*/
/* 51046*/          OPC_CheckPredicate, 50, // Predicate_atomic_load_32
/* 51048*/          OPC_CheckPredicate, 52, // Predicate_anonymous_4561
/* 51050*/          OPC_EmitMergeInputChains1_0,
/* 51051*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDARW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (atomic_load:{ *:[i32] } GPR64sp:{ *:[i64] }:$ptr)<<P:Predicate_atomic_load_32>><<P:Predicate_anonymous_4561>> - Complexity = 4
                    // Dst: (LDARW:{ *:[i32] } GPR64sp:{ *:[i64] }:$ptr)
/* 51058*/        0, /*End of Scope*/
/* 51059*/      /*SwitchType*/ 12, MVT::i64,// ->51073
/* 51061*/        OPC_CheckPredicate, 51, // Predicate_atomic_load_64
/* 51063*/        OPC_CheckPredicate, 52, // Predicate_anonymous_4568
/* 51065*/        OPC_EmitMergeInputChains1_0,
/* 51066*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDARX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (atomic_load:{ *:[i64] } GPR64sp:{ *:[i64] }:$ptr)<<P:Predicate_atomic_load_64>><<P:Predicate_anonymous_4568>> - Complexity = 4
                  // Dst: (LDARX:{ *:[i64] } GPR64sp:{ *:[i64] }:$ptr)
/* 51073*/      0, // EndSwitchType
/* 51074*/    0, /*End of Scope*/
/* 51075*/  /*SwitchOpcode*/ 100|128,2/*356*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->51435
/* 51079*/    OPC_RecordMemRef,
/* 51080*/    OPC_RecordNode, // #0 = 'atomic_store' chained node
/* 51081*/    OPC_RecordChild1, // #1 = $ro_Windexed8:Rn:Rm:extend
/* 51082*/    OPC_Scope, 28|128,2/*284*/, /*->51369*/ // 2 children in Scope
/* 51085*/      OPC_RecordChild2, // #2 = $val
/* 51086*/      OPC_Scope, 86|128,1/*214*/, /*->51303*/ // 2 children in Scope
/* 51089*/        OPC_CheckChild2Type, MVT::i32,
/* 51091*/        OPC_Scope, 36, /*->51129*/ // 6 children in Scope
/* 51093*/          OPC_CheckPredicate, 47, // Predicate_atomic_store_8
/* 51095*/          OPC_CheckPredicate, 53, // Predicate_anonymous_4577
/* 51097*/          OPC_Scope, 14, /*->51113*/ // 2 children in Scope
/* 51099*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #3 #4 #5 #6
/* 51102*/            OPC_EmitMergeInputChains1_0,
/* 51103*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (atomic_store (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>><<P:Predicate_anonymous_4577>> - Complexity = 19
                      // Dst: (STRBBroW GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend)
/* 51113*/          /*Scope*/ 14, /*->51128*/
/* 51114*/            OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #3 #4 #5 #6
/* 51117*/            OPC_EmitMergeInputChains1_0,
/* 51118*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (atomic_store (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>><<P:Predicate_anonymous_4577>> - Complexity = 19
                      // Dst: (STRBBroX GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend)
/* 51128*/          0, /*End of Scope*/
/* 51129*/        /*Scope*/ 36, /*->51166*/
/* 51130*/          OPC_CheckPredicate, 49, // Predicate_atomic_store_16
/* 51132*/          OPC_CheckPredicate, 53, // Predicate_anonymous_4584
/* 51134*/          OPC_Scope, 14, /*->51150*/ // 2 children in Scope
/* 51136*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #3 #4 #5 #6
/* 51139*/            OPC_EmitMergeInputChains1_0,
/* 51140*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (atomic_store (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>><<P:Predicate_anonymous_4584>> - Complexity = 19
                      // Dst: (STRHHroW GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend)
/* 51150*/          /*Scope*/ 14, /*->51165*/
/* 51151*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #3 #4 #5 #6
/* 51154*/            OPC_EmitMergeInputChains1_0,
/* 51155*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (atomic_store (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>><<P:Predicate_anonymous_4584>> - Complexity = 19
                      // Dst: (STRHHroX GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend)
/* 51165*/          0, /*End of Scope*/
/* 51166*/        /*Scope*/ 36, /*->51203*/
/* 51167*/          OPC_CheckPredicate, 50, // Predicate_atomic_store_32
/* 51169*/          OPC_CheckPredicate, 53, // Predicate_anonymous_4591
/* 51171*/          OPC_Scope, 14, /*->51187*/ // 2 children in Scope
/* 51173*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #3 #4 #5 #6
/* 51176*/            OPC_EmitMergeInputChains1_0,
/* 51177*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWroW), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (atomic_store (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>><<P:Predicate_anonymous_4591>> - Complexity = 19
                      // Dst: (STRWroW GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend)
/* 51187*/          /*Scope*/ 14, /*->51202*/
/* 51188*/            OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #3 #4 #5 #6
/* 51191*/            OPC_EmitMergeInputChains1_0,
/* 51192*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWroX), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (atomic_store (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>><<P:Predicate_anonymous_4591>> - Complexity = 19
                      // Dst: (STRWroX GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend)
/* 51202*/          0, /*End of Scope*/
/* 51203*/        /*Scope*/ 32, /*->51236*/
/* 51204*/          OPC_CheckPredicate, 47, // Predicate_atomic_store_8
/* 51206*/          OPC_CheckPredicate, 53, // Predicate_anonymous_4577
/* 51208*/          OPC_Scope, 12, /*->51222*/ // 2 children in Scope
/* 51210*/            OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #3 #4
/* 51213*/            OPC_EmitMergeInputChains1_0,
/* 51214*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRBBui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (atomic_store (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>><<P:Predicate_anonymous_4577>> - Complexity = 13
                      // Dst: (STRBBui GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset)
/* 51222*/          /*Scope*/ 12, /*->51235*/
/* 51223*/            OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #3 #4
/* 51226*/            OPC_EmitMergeInputChains1_0,
/* 51227*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURBBi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (atomic_store (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>><<P:Predicate_anonymous_4577>> - Complexity = 13
                      // Dst: (STURBBi GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 51235*/          0, /*End of Scope*/
/* 51236*/        /*Scope*/ 32, /*->51269*/
/* 51237*/          OPC_CheckPredicate, 49, // Predicate_atomic_store_16
/* 51239*/          OPC_CheckPredicate, 53, // Predicate_anonymous_4584
/* 51241*/          OPC_Scope, 12, /*->51255*/ // 2 children in Scope
/* 51243*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #3 #4
/* 51246*/            OPC_EmitMergeInputChains1_0,
/* 51247*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRHHui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (atomic_store (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>><<P:Predicate_anonymous_4584>> - Complexity = 13
                      // Dst: (STRHHui GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset)
/* 51255*/          /*Scope*/ 12, /*->51268*/
/* 51256*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #3 #4
/* 51259*/            OPC_EmitMergeInputChains1_0,
/* 51260*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURHHi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (atomic_store (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>><<P:Predicate_anonymous_4584>> - Complexity = 13
                      // Dst: (STURHHi GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 51268*/          0, /*End of Scope*/
/* 51269*/        /*Scope*/ 32, /*->51302*/
/* 51270*/          OPC_CheckPredicate, 50, // Predicate_atomic_store_32
/* 51272*/          OPC_CheckPredicate, 53, // Predicate_anonymous_4591
/* 51274*/          OPC_Scope, 12, /*->51288*/ // 2 children in Scope
/* 51276*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #3 #4
/* 51279*/            OPC_EmitMergeInputChains1_0,
/* 51280*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRWui), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (atomic_store (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>><<P:Predicate_anonymous_4591>> - Complexity = 13
                      // Dst: (STRWui GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset)
/* 51288*/          /*Scope*/ 12, /*->51301*/
/* 51289*/            OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #3 #4
/* 51292*/            OPC_EmitMergeInputChains1_0,
/* 51293*/            OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURWi), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 2, 3, 4, 
                      // Src: (atomic_store (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>><<P:Predicate_anonymous_4591>> - Complexity = 13
                      // Dst: (STURWi GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 51301*/          0, /*End of Scope*/
/* 51302*/        0, /*End of Scope*/
/* 51303*/      /*Scope*/ 64, /*->51368*/
/* 51304*/        OPC_CheckChild2Type, MVT::i64,
/* 51306*/        OPC_CheckPredicate, 51, // Predicate_atomic_store_64
/* 51308*/        OPC_CheckPredicate, 53, // Predicate_anonymous_4598
/* 51310*/        OPC_Scope, 14, /*->51326*/ // 4 children in Scope
/* 51312*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #3 #4 #5 #6
/* 51315*/          OPC_EmitMergeInputChains1_0,
/* 51316*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRXroW), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (atomic_store (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend), GPR64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>><<P:Predicate_anonymous_4598>> - Complexity = 19
                    // Dst: (STRXroW GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 51326*/        /*Scope*/ 14, /*->51341*/
/* 51327*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #3 #4 #5 #6
/* 51330*/          OPC_EmitMergeInputChains1_0,
/* 51331*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRXroX), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (atomic_store (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend), GPR64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>><<P:Predicate_anonymous_4598>> - Complexity = 19
                    // Dst: (STRXroX GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 51341*/        /*Scope*/ 12, /*->51354*/
/* 51342*/          OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #3 #4
/* 51345*/          OPC_EmitMergeInputChains1_0,
/* 51346*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STRXui), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 2, 3, 4, 
                    // Src: (atomic_store (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset), GPR64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>><<P:Predicate_anonymous_4598>> - Complexity = 13
                    // Dst: (STRXui GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 51354*/        /*Scope*/ 12, /*->51367*/
/* 51355*/          OPC_CheckComplexPat, /*CP*/17, /*#*/1, // SelectAddrModeUnscaled64:$ #3 #4
/* 51358*/          OPC_EmitMergeInputChains1_0,
/* 51359*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STURXi), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 2, 3, 4, 
                    // Src: (atomic_store (am_unscaled64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), GPR64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>><<P:Predicate_anonymous_4598>> - Complexity = 13
                    // Dst: (STURXi GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset)
/* 51367*/        0, /*End of Scope*/
/* 51368*/      0, /*End of Scope*/
/* 51369*/    /*Scope*/ 64, /*->51434*/
/* 51370*/      OPC_CheckChild1Type, MVT::i64,
/* 51372*/      OPC_RecordChild2, // #2 = $val
/* 51373*/      OPC_Scope, 43, /*->51418*/ // 2 children in Scope
/* 51375*/        OPC_CheckChild2Type, MVT::i32,
/* 51377*/        OPC_Scope, 12, /*->51391*/ // 3 children in Scope
/* 51379*/          OPC_CheckPredicate, 47, // Predicate_atomic_store_8
/* 51381*/          OPC_CheckPredicate, 54, // Predicate_anonymous_4575
/* 51383*/          OPC_EmitMergeInputChains1_0,
/* 51384*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STLRB), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 2, 1, 
                    // Src: (atomic_store GPR64sp:{ *:[i64] }:$ptr, GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>><<P:Predicate_anonymous_4575>> - Complexity = 4
                    // Dst: (STLRB GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$ptr)
/* 51391*/        /*Scope*/ 12, /*->51404*/
/* 51392*/          OPC_CheckPredicate, 49, // Predicate_atomic_store_16
/* 51394*/          OPC_CheckPredicate, 54, // Predicate_anonymous_4582
/* 51396*/          OPC_EmitMergeInputChains1_0,
/* 51397*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STLRH), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 2, 1, 
                    // Src: (atomic_store GPR64sp:{ *:[i64] }:$ptr, GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>><<P:Predicate_anonymous_4582>> - Complexity = 4
                    // Dst: (STLRH GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$ptr)
/* 51404*/        /*Scope*/ 12, /*->51417*/
/* 51405*/          OPC_CheckPredicate, 50, // Predicate_atomic_store_32
/* 51407*/          OPC_CheckPredicate, 54, // Predicate_anonymous_4589
/* 51409*/          OPC_EmitMergeInputChains1_0,
/* 51410*/          OPC_MorphNodeTo0, TARGET_VAL(AArch64::STLRW), 0|OPFL_Chain|OPFL_MemRefs,
                        2/*#Ops*/, 2, 1, 
                    // Src: (atomic_store GPR64sp:{ *:[i64] }:$ptr, GPR32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>><<P:Predicate_anonymous_4589>> - Complexity = 4
                    // Dst: (STLRW GPR32:{ *:[i32] }:$val, GPR64sp:{ *:[i64] }:$ptr)
/* 51417*/        0, /*End of Scope*/
/* 51418*/      /*Scope*/ 14, /*->51433*/
/* 51419*/        OPC_CheckChild2Type, MVT::i64,
/* 51421*/        OPC_CheckPredicate, 51, // Predicate_atomic_store_64
/* 51423*/        OPC_CheckPredicate, 54, // Predicate_anonymous_4596
/* 51425*/        OPC_EmitMergeInputChains1_0,
/* 51426*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::STLRX), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#Ops*/, 2, 1, 
                  // Src: (atomic_store GPR64sp:{ *:[i64] }:$ptr, GPR64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>><<P:Predicate_anonymous_4596>> - Complexity = 4
                  // Dst: (STLRX GPR64:{ *:[i64] }:$val, GPR64sp:{ *:[i64] }:$ptr)
/* 51433*/      0, /*End of Scope*/
/* 51434*/    0, /*End of Scope*/
/* 51435*/  /*SwitchOpcode*/ 56, TARGET_VAL(AArch64ISD::LOADgot),// ->51494
/* 51438*/    OPC_RecordChild0, // #0 = $addr
/* 51439*/    OPC_MoveChild0,
/* 51440*/    OPC_SwitchOpcode /*4 cases */, 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->51454
/* 51444*/      OPC_MoveParent,
/* 51445*/      OPC_CheckType, MVT::i64,
/* 51447*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::LOADgot), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (AArch64LOADgot:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$addr) - Complexity = 16
                // Dst: (LOADgot:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$addr)
/* 51454*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->51467
/* 51457*/      OPC_MoveParent,
/* 51458*/      OPC_CheckType, MVT::i64,
/* 51460*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::LOADgot), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (AArch64LOADgot:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$addr) - Complexity = 6
                // Dst: (LOADgot:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$addr)
/* 51467*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetExternalSymbol),// ->51480
/* 51470*/      OPC_MoveParent,
/* 51471*/      OPC_CheckType, MVT::i64,
/* 51473*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::LOADgot), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (AArch64LOADgot:{ *:[i64] } (texternalsym:{ *:[i64] }):$addr) - Complexity = 6
                // Dst: (LOADgot:{ *:[i64] } (texternalsym:{ *:[i64] }):$addr)
/* 51480*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetConstantPool),// ->51493
/* 51483*/      OPC_MoveParent,
/* 51484*/      OPC_CheckType, MVT::i64,
/* 51486*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::LOADgot), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (AArch64LOADgot:{ *:[i64] } (tconstpool:{ *:[i64] }):$addr) - Complexity = 6
                // Dst: (LOADgot:{ *:[i64] } (tconstpool:{ *:[i64] }):$addr)
/* 51493*/    0, // EndSwitchOpcode
/* 51494*/  /*SwitchOpcode*/ 73|128,4/*585*/, TARGET_VAL(ISD::MUL),// ->52083
/* 51498*/    OPC_Scope, 39, /*->51539*/ // 6 children in Scope
/* 51500*/      OPC_MoveChild0,
/* 51501*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51504*/      OPC_CheckChild0Integer, 0, 
/* 51506*/      OPC_RecordChild1, // #0 = $Rn
/* 51507*/      OPC_MoveParent,
/* 51508*/      OPC_RecordChild1, // #1 = $Rm
/* 51509*/      OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->51524
/* 51512*/        OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 51515*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MSUBWrrr), 0,
                      MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (mul:{ *:[i32] } (sub:{ *:[i32] } 0:{ *:[i32] }, GPR32:{ *:[i32] }:$Rn), GPR32:{ *:[i32] }:$Rm) - Complexity = 16
                  // Dst: (MSUBWrrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, WZR:{ *:[i32] })
/* 51524*/      /*SwitchType*/ 12, MVT::i64,// ->51538
/* 51526*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 51529*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MSUBXrrr), 0,
                      MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (mul:{ *:[i64] } (sub:{ *:[i64] } 0:{ *:[i64] }, GPR64:{ *:[i64] }:$Rn), GPR64:{ *:[i64] }:$Rm) - Complexity = 16
                  // Dst: (MSUBXrrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, XZR:{ *:[i64] })
/* 51538*/      0, // EndSwitchType
/* 51539*/    /*Scope*/ 39, /*->51579*/
/* 51540*/      OPC_RecordChild0, // #0 = $Rm
/* 51541*/      OPC_MoveChild1,
/* 51542*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 51545*/      OPC_CheckChild0Integer, 0, 
/* 51547*/      OPC_RecordChild1, // #1 = $Rn
/* 51548*/      OPC_MoveParent,
/* 51549*/      OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->51564
/* 51552*/        OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 51555*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MSUBWrrr), 0,
                      MVT::i32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (mul:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, (sub:{ *:[i32] } 0:{ *:[i32] }, GPR32:{ *:[i32] }:$Rn)) - Complexity = 16
                  // Dst: (MSUBWrrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, WZR:{ *:[i32] })
/* 51564*/      /*SwitchType*/ 12, MVT::i64,// ->51578
/* 51566*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 51569*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MSUBXrrr), 0,
                      MVT::i64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (mul:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, (sub:{ *:[i64] } 0:{ *:[i64] }, GPR64:{ *:[i64] }:$Rn)) - Complexity = 16
                  // Dst: (MSUBXrrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, XZR:{ *:[i64] })
/* 51578*/      0, // EndSwitchType
/* 51579*/    /*Scope*/ 53|128,1/*181*/, /*->51762*/
/* 51581*/      OPC_MoveChild0,
/* 51582*/      OPC_SwitchOpcode /*3 cases */, 60, TARGET_VAL(ISD::SIGN_EXTEND),// ->51646
/* 51586*/        OPC_RecordChild0, // #0 = $Rn
/* 51587*/        OPC_MoveParent,
/* 51588*/        OPC_Scope, 34, /*->51624*/ // 2 children in Scope
/* 51590*/          OPC_RecordChild1, // #1 = $C
/* 51591*/          OPC_MoveChild1,
/* 51592*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51595*/          OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 51597*/          OPC_MoveParent,
/* 51598*/          OPC_CheckType, MVT::i64,
/* 51600*/          OPC_EmitConvertToTarget, 1,
/* 51602*/          OPC_EmitNodeXForm, 2, 2, // trunc_imm
/* 51605*/          OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                        MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 51612*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 51615*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C) - Complexity = 15
                    // Dst: (SMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), XZR:{ *:[i64] })
/* 51624*/        /*Scope*/ 20, /*->51645*/
/* 51625*/          OPC_MoveChild1,
/* 51626*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 51629*/          OPC_RecordChild0, // #1 = $Rm
/* 51630*/          OPC_MoveParent,
/* 51631*/          OPC_CheckType, MVT::i64,
/* 51633*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 51636*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (mul:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 14
                    // Dst: (SMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, XZR:{ *:[i64] })
/* 51645*/        0, /*End of Scope*/
/* 51646*/      /*SwitchOpcode*/ 60, TARGET_VAL(ISD::ZERO_EXTEND),// ->51709
/* 51649*/        OPC_RecordChild0, // #0 = $Rn
/* 51650*/        OPC_MoveParent,
/* 51651*/        OPC_Scope, 34, /*->51687*/ // 2 children in Scope
/* 51653*/          OPC_RecordChild1, // #1 = $C
/* 51654*/          OPC_MoveChild1,
/* 51655*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51658*/          OPC_CheckPredicate, 44, // Predicate_i64imm_32bit
/* 51660*/          OPC_MoveParent,
/* 51661*/          OPC_CheckType, MVT::i64,
/* 51663*/          OPC_EmitConvertToTarget, 1,
/* 51665*/          OPC_EmitNodeXForm, 2, 2, // trunc_imm
/* 51668*/          OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                        MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 51675*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 51678*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMADDLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_i64imm_32bit>>:$C) - Complexity = 15
                    // Dst: (UMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), XZR:{ *:[i64] })
/* 51687*/        /*Scope*/ 20, /*->51708*/
/* 51688*/          OPC_MoveChild1,
/* 51689*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 51692*/          OPC_RecordChild0, // #1 = $Rm
/* 51693*/          OPC_MoveParent,
/* 51694*/          OPC_CheckType, MVT::i64,
/* 51696*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 51699*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMADDLrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (mul:{ *:[i64] } (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 14
                    // Dst: (UMADDLrrr:{ *:[i64] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, XZR:{ *:[i64] })
/* 51708*/        0, /*End of Scope*/
/* 51709*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->51761
/* 51712*/        OPC_RecordChild0, // #0 = $Rn
/* 51713*/        OPC_MoveChild1,
/* 51714*/        OPC_CheckValueType, MVT::i32,
/* 51716*/        OPC_MoveParent,
/* 51717*/        OPC_MoveParent,
/* 51718*/        OPC_RecordChild1, // #1 = $C
/* 51719*/        OPC_MoveChild1,
/* 51720*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51723*/        OPC_CheckPredicate, 43, // Predicate_s64imm_32bit
/* 51725*/        OPC_MoveParent,
/* 51726*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 51729*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 51737*/        OPC_EmitConvertToTarget, 1,
/* 51739*/        OPC_EmitNodeXForm, 2, 4, // trunc_imm
/* 51742*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 51749*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 51752*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMADDLrrr), 0,
                      MVT::i64, 3/*#Ops*/, 3, 6, 7, 
                  // Src: (mul:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i32:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_s64imm_32bit>>:$C) - Complexity = 15
                  // Dst: (SMADDLrrr:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, sub_32:{ *:[i32] }), (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$C)), XZR:{ *:[i64] })
/* 51761*/      0, // EndSwitchOpcode
/* 51762*/    /*Scope*/ 9|128,1/*137*/, /*->51901*/
/* 51764*/      OPC_RecordChild0, // #0 = $Rn
/* 51765*/      OPC_Scope, 31, /*->51798*/ // 2 children in Scope
/* 51767*/        OPC_RecordChild1, // #1 = $Rm
/* 51768*/        OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->51783
/* 51771*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 51774*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MADDWrrr), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (mul:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 8
                    // Dst: (MADDWrrr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, WZR:{ *:[i32] })
/* 51783*/        /*SwitchType*/ 12, MVT::i64,// ->51797
/* 51785*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 51788*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MADDXrrr), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (mul:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 8
                    // Dst: (MADDXrrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, XZR:{ *:[i64] })
/* 51797*/        0, // EndSwitchType
/* 51798*/      /*Scope*/ 101, /*->51900*/
/* 51799*/        OPC_MoveChild1,
/* 51800*/        OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(AArch64ISD::DUPLANE16),// ->51850
/* 51804*/          OPC_RecordChild0, // #1 = $Rm
/* 51805*/          OPC_CheckChild0Type, MVT::v8i16,
/* 51807*/          OPC_RecordChild1, // #2 = $idx
/* 51808*/          OPC_MoveChild1,
/* 51809*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51812*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 51814*/          OPC_CheckType, MVT::i64,
/* 51816*/          OPC_MoveParent,
/* 51817*/          OPC_MoveParent,
/* 51818*/          OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->51834
/* 51821*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 51823*/            OPC_EmitConvertToTarget, 2,
/* 51825*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv4i16_indexed), 0,
                          MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (mul:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 10
                      // Dst: (MULv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 51834*/          /*SwitchType*/ 13, MVT::v8i16,// ->51849
/* 51836*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 51838*/            OPC_EmitConvertToTarget, 2,
/* 51840*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv8i16_indexed), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (mul:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 10
                      // Dst: (MULv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 51849*/          0, // EndSwitchType
/* 51850*/        /*SwitchOpcode*/ 46, TARGET_VAL(AArch64ISD::DUPLANE32),// ->51899
/* 51853*/          OPC_RecordChild0, // #1 = $Rm
/* 51854*/          OPC_CheckChild0Type, MVT::v4i32,
/* 51856*/          OPC_RecordChild1, // #2 = $idx
/* 51857*/          OPC_MoveChild1,
/* 51858*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51861*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 51863*/          OPC_CheckType, MVT::i64,
/* 51865*/          OPC_MoveParent,
/* 51866*/          OPC_MoveParent,
/* 51867*/          OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->51883
/* 51870*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 51872*/            OPC_EmitConvertToTarget, 2,
/* 51874*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv2i32_indexed), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (mul:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 10
                      // Dst: (MULv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 51883*/          /*SwitchType*/ 13, MVT::v4i32,// ->51898
/* 51885*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 51887*/            OPC_EmitConvertToTarget, 2,
/* 51889*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv4i32_indexed), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (mul:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 10
                      // Dst: (MULv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 51898*/          0, // EndSwitchType
/* 51899*/        0, // EndSwitchOpcode
/* 51900*/      0, /*End of Scope*/
/* 51901*/    /*Scope*/ 103, /*->52005*/
/* 51902*/      OPC_MoveChild0,
/* 51903*/      OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(AArch64ISD::DUPLANE16),// ->51954
/* 51907*/        OPC_RecordChild0, // #0 = $Rm
/* 51908*/        OPC_CheckChild0Type, MVT::v8i16,
/* 51910*/        OPC_RecordChild1, // #1 = $idx
/* 51911*/        OPC_MoveChild1,
/* 51912*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51915*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 51917*/        OPC_CheckType, MVT::i64,
/* 51919*/        OPC_MoveParent,
/* 51920*/        OPC_MoveParent,
/* 51921*/        OPC_RecordChild1, // #2 = $Rn
/* 51922*/        OPC_SwitchType /*2 cases */, 13, MVT::v4i16,// ->51938
/* 51925*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 51927*/          OPC_EmitConvertToTarget, 1,
/* 51929*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv4i16_indexed), 0,
                        MVT::v4i16, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (mul:{ *:[v4i16] } (AArch64duplane16:{ *:[v4i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V64:{ *:[v4i16] }:$Rn) - Complexity = 10
                    // Dst: (MULv4i16_indexed:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 51938*/        /*SwitchType*/ 13, MVT::v8i16,// ->51953
/* 51940*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 51942*/          OPC_EmitConvertToTarget, 1,
/* 51944*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv8i16_indexed), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (mul:{ *:[v8i16] } (AArch64duplane16:{ *:[v8i16] } V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V128:{ *:[v8i16] }:$Rn) - Complexity = 10
                    // Dst: (MULv8i16_indexed:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128_lo:{ *:[v8i16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 51953*/        0, // EndSwitchType
/* 51954*/      /*SwitchOpcode*/ 47, TARGET_VAL(AArch64ISD::DUPLANE32),// ->52004
/* 51957*/        OPC_RecordChild0, // #0 = $Rm
/* 51958*/        OPC_CheckChild0Type, MVT::v4i32,
/* 51960*/        OPC_RecordChild1, // #1 = $idx
/* 51961*/        OPC_MoveChild1,
/* 51962*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51965*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 51967*/        OPC_CheckType, MVT::i64,
/* 51969*/        OPC_MoveParent,
/* 51970*/        OPC_MoveParent,
/* 51971*/        OPC_RecordChild1, // #2 = $Rn
/* 51972*/        OPC_SwitchType /*2 cases */, 13, MVT::v2i32,// ->51988
/* 51975*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 51977*/          OPC_EmitConvertToTarget, 1,
/* 51979*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv2i32_indexed), 0,
                        MVT::v2i32, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (mul:{ *:[v2i32] } (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2i32] }:$Rn) - Complexity = 10
                    // Dst: (MULv2i32_indexed:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 51988*/        /*SwitchType*/ 13, MVT::v4i32,// ->52003
/* 51990*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 51992*/          OPC_EmitConvertToTarget, 1,
/* 51994*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv4i32_indexed), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (mul:{ *:[v4i32] } (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4i32] }:$Rn) - Complexity = 10
                    // Dst: (MULv4i32_indexed:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 52003*/        0, // EndSwitchType
/* 52004*/      0, // EndSwitchOpcode
/* 52005*/    /*Scope*/ 76, /*->52082*/
/* 52006*/      OPC_RecordChild0, // #0 = $Rn
/* 52007*/      OPC_RecordChild1, // #1 = $Rm
/* 52008*/      OPC_SwitchType /*6 cases */, 10, MVT::v8i8,// ->52021
/* 52011*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 52013*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                  // Dst: (MULv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 52021*/      /*SwitchType*/ 10, MVT::v16i8,// ->52033
/* 52023*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 52025*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                  // Dst: (MULv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 52033*/      /*SwitchType*/ 10, MVT::v4i16,// ->52045
/* 52035*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 52037*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                  // Dst: (MULv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 52045*/      /*SwitchType*/ 10, MVT::v8i16,// ->52057
/* 52047*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 52049*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                  // Dst: (MULv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 52057*/      /*SwitchType*/ 10, MVT::v2i32,// ->52069
/* 52059*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 52061*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                  // Dst: (MULv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 52069*/      /*SwitchType*/ 10, MVT::v4i32,// ->52081
/* 52071*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 52073*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MULv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                  // Dst: (MULv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 52081*/      0, // EndSwitchType
/* 52082*/    0, /*End of Scope*/
/* 52083*/  /*SwitchOpcode*/ 77|128,6/*845*/, TARGET_VAL(AArch64ISD::CSEL),// ->52932
/* 52087*/    OPC_Scope, 1|128,1/*129*/, /*->52219*/ // 12 children in Scope
/* 52090*/      OPC_CheckChild0Integer, 0, 
/* 52092*/      OPC_Scope, 57, /*->52151*/ // 2 children in Scope
/* 52094*/        OPC_CheckChild1Integer, 1, 
/* 52096*/        OPC_RecordChild2, // #0 = $cc
/* 52097*/        OPC_MoveChild2,
/* 52098*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52101*/        OPC_CheckType, MVT::i32,
/* 52103*/        OPC_MoveParent,
/* 52104*/        OPC_RecordChild3, // #1 = physreg input NZCV
/* 52105*/        OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->52128
/* 52108*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 52111*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 52114*/          OPC_EmitConvertToTarget, 0,
/* 52116*/          OPC_EmitCopyToReg, 1, AArch64::NZCV,
/* 52119*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCWr), 0|OPFL_GlueInput,
                        MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                    // Src: (AArch64csel:{ *:[i32] } 0:{ *:[i32] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 16
                    // Dst: (CSINCWr:{ *:[i32] } WZR:{ *:[i32] }, WZR:{ *:[i32] }, (imm:{ *:[i32] }):$cc)
/* 52128*/        /*SwitchType*/ 20, MVT::i64,// ->52150
/* 52130*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 52133*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 52136*/          OPC_EmitConvertToTarget, 0,
/* 52138*/          OPC_EmitCopyToReg, 1, AArch64::NZCV,
/* 52141*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCXr), 0|OPFL_GlueInput,
                        MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                    // Src: (AArch64csel:{ *:[i64] } 0:{ *:[i64] }, 1:{ *:[i64] }, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 16
                    // Dst: (CSINCXr:{ *:[i64] } XZR:{ *:[i64] }, XZR:{ *:[i64] }, (imm:{ *:[i32] }):$cc)
/* 52150*/        0, // EndSwitchType
/* 52151*/      /*Scope*/ 66, /*->52218*/
/* 52152*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52163*/        OPC_RecordChild2, // #0 = $cc
/* 52164*/        OPC_MoveChild2,
/* 52165*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52168*/        OPC_CheckType, MVT::i32,
/* 52170*/        OPC_MoveParent,
/* 52171*/        OPC_RecordChild3, // #1 = physreg input NZCV
/* 52172*/        OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->52195
/* 52175*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 52178*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 52181*/          OPC_EmitConvertToTarget, 0,
/* 52183*/          OPC_EmitCopyToReg, 1, AArch64::NZCV,
/* 52186*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVWr), 0|OPFL_GlueInput,
                        MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                    // Src: (AArch64csel:{ *:[i32] } 0:{ *:[i32] }, -1:{ *:[i32] }, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 16
                    // Dst: (CSINVWr:{ *:[i32] } WZR:{ *:[i32] }, WZR:{ *:[i32] }, (imm:{ *:[i32] }):$cc)
/* 52195*/        /*SwitchType*/ 20, MVT::i64,// ->52217
/* 52197*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 52200*/          OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 52203*/          OPC_EmitConvertToTarget, 0,
/* 52205*/          OPC_EmitCopyToReg, 1, AArch64::NZCV,
/* 52208*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVXr), 0|OPFL_GlueInput,
                        MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                    // Src: (AArch64csel:{ *:[i64] } 0:{ *:[i64] }, -1:{ *:[i64] }, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 16
                    // Dst: (CSINVXr:{ *:[i64] } XZR:{ *:[i64] }, XZR:{ *:[i64] }, (imm:{ *:[i32] }):$cc)
/* 52217*/        0, // EndSwitchType
/* 52218*/      0, /*End of Scope*/
/* 52219*/    /*Scope*/ 52, /*->52272*/
/* 52220*/      OPC_RecordChild0, // #0 = $Rn
/* 52221*/      OPC_MoveChild1,
/* 52222*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 52225*/      OPC_RecordChild0, // #1 = $Rm
/* 52226*/      OPC_CheckChild1Integer, 1, 
/* 52228*/      OPC_MoveParent,
/* 52229*/      OPC_RecordChild2, // #2 = $cond
/* 52230*/      OPC_MoveChild2,
/* 52231*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52234*/      OPC_CheckType, MVT::i32,
/* 52236*/      OPC_MoveParent,
/* 52237*/      OPC_RecordChild3, // #3 = physreg input NZCV
/* 52238*/      OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->52255
/* 52241*/        OPC_EmitConvertToTarget, 2,
/* 52243*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52246*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (add:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, 1:{ *:[i32] }), (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSINCWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52255*/      /*SwitchType*/ 14, MVT::i64,// ->52271
/* 52257*/        OPC_EmitConvertToTarget, 2,
/* 52259*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52262*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (add:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, 1:{ *:[i64] }), (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSINCXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52271*/      0, // EndSwitchType
/* 52272*/    /*Scope*/ 58, /*->52331*/
/* 52273*/      OPC_MoveChild0,
/* 52274*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 52277*/      OPC_RecordChild0, // #0 = $Rm
/* 52278*/      OPC_CheckChild1Integer, 1, 
/* 52280*/      OPC_MoveParent,
/* 52281*/      OPC_RecordChild1, // #1 = $Rn
/* 52282*/      OPC_RecordChild2, // #2 = $cond
/* 52283*/      OPC_MoveChild2,
/* 52284*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52287*/      OPC_CheckType, MVT::i32,
/* 52289*/      OPC_MoveParent,
/* 52290*/      OPC_RecordChild3, // #3 = physreg input NZCV
/* 52291*/      OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->52311
/* 52294*/        OPC_EmitConvertToTarget, 2,
/* 52296*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52299*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52302*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 1, 0, 5, 
                  // Src: (AArch64csel:{ *:[i32] } (add:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, 1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSINCWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cond))
/* 52311*/      /*SwitchType*/ 17, MVT::i64,// ->52330
/* 52313*/        OPC_EmitConvertToTarget, 2,
/* 52315*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52318*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52321*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 1, 0, 5, 
                  // Src: (AArch64csel:{ *:[i64] } (add:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, 1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSINCXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cond))
/* 52330*/      0, // EndSwitchType
/* 52331*/    /*Scope*/ 61, /*->52393*/
/* 52332*/      OPC_RecordChild0, // #0 = $Rn
/* 52333*/      OPC_MoveChild1,
/* 52334*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 52337*/      OPC_RecordChild0, // #1 = $Rm
/* 52338*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52349*/      OPC_MoveParent,
/* 52350*/      OPC_RecordChild2, // #2 = $cond
/* 52351*/      OPC_MoveChild2,
/* 52352*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52355*/      OPC_CheckType, MVT::i32,
/* 52357*/      OPC_MoveParent,
/* 52358*/      OPC_RecordChild3, // #3 = physreg input NZCV
/* 52359*/      OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->52376
/* 52362*/        OPC_EmitConvertToTarget, 2,
/* 52364*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52367*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSINVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52376*/      /*SwitchType*/ 14, MVT::i64,// ->52392
/* 52378*/        OPC_EmitConvertToTarget, 2,
/* 52380*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52383*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSINVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52392*/      0, // EndSwitchType
/* 52393*/    /*Scope*/ 67, /*->52461*/
/* 52394*/      OPC_MoveChild0,
/* 52395*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 52398*/      OPC_RecordChild0, // #0 = $Rm
/* 52399*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52410*/      OPC_MoveParent,
/* 52411*/      OPC_RecordChild1, // #1 = $Rn
/* 52412*/      OPC_RecordChild2, // #2 = $cond
/* 52413*/      OPC_MoveChild2,
/* 52414*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52417*/      OPC_CheckType, MVT::i32,
/* 52419*/      OPC_MoveParent,
/* 52420*/      OPC_RecordChild3, // #3 = physreg input NZCV
/* 52421*/      OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->52441
/* 52424*/        OPC_EmitConvertToTarget, 2,
/* 52426*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52429*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52432*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 1, 0, 5, 
                  // Src: (AArch64csel:{ *:[i32] } (xor:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSINVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cond))
/* 52441*/      /*SwitchType*/ 17, MVT::i64,// ->52460
/* 52443*/        OPC_EmitConvertToTarget, 2,
/* 52445*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52448*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52451*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 1, 0, 5, 
                  // Src: (AArch64csel:{ *:[i64] } (xor:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, -1:{ *:[i64] }), GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSINVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cond))
/* 52460*/      0, // EndSwitchType
/* 52461*/    /*Scope*/ 52, /*->52514*/
/* 52462*/      OPC_RecordChild0, // #0 = $Rn
/* 52463*/      OPC_MoveChild1,
/* 52464*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 52467*/      OPC_CheckChild0Integer, 0, 
/* 52469*/      OPC_RecordChild1, // #1 = $Rm
/* 52470*/      OPC_MoveParent,
/* 52471*/      OPC_RecordChild2, // #2 = $cond
/* 52472*/      OPC_MoveChild2,
/* 52473*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52476*/      OPC_CheckType, MVT::i32,
/* 52478*/      OPC_MoveParent,
/* 52479*/      OPC_RecordChild3, // #3 = physreg input NZCV
/* 52480*/      OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->52497
/* 52483*/        OPC_EmitConvertToTarget, 2,
/* 52485*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52488*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSNEGWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (sub:{ *:[i32] } 0:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSNEGWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52497*/      /*SwitchType*/ 14, MVT::i64,// ->52513
/* 52499*/        OPC_EmitConvertToTarget, 2,
/* 52501*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52504*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSNEGXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (sub:{ *:[i64] } 0:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSNEGXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52513*/      0, // EndSwitchType
/* 52514*/    /*Scope*/ 58, /*->52573*/
/* 52515*/      OPC_MoveChild0,
/* 52516*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 52519*/      OPC_CheckChild0Integer, 0, 
/* 52521*/      OPC_RecordChild1, // #0 = $Rm
/* 52522*/      OPC_MoveParent,
/* 52523*/      OPC_RecordChild1, // #1 = $Rn
/* 52524*/      OPC_RecordChild2, // #2 = $cond
/* 52525*/      OPC_MoveChild2,
/* 52526*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52529*/      OPC_CheckType, MVT::i32,
/* 52531*/      OPC_MoveParent,
/* 52532*/      OPC_RecordChild3, // #3 = physreg input NZCV
/* 52533*/      OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->52553
/* 52536*/        OPC_EmitConvertToTarget, 2,
/* 52538*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52541*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52544*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSNEGWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 1, 0, 5, 
                  // Src: (AArch64csel:{ *:[i32] } (sub:{ *:[i32] } 0:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSNEGWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cond))
/* 52553*/      /*SwitchType*/ 17, MVT::i64,// ->52572
/* 52555*/        OPC_EmitConvertToTarget, 2,
/* 52557*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52560*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52563*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSNEGXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 1, 0, 5, 
                  // Src: (AArch64csel:{ *:[i64] } (sub:{ *:[i64] } 0:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 14
                  // Dst: (CSNEGXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cond))
/* 52572*/      0, // EndSwitchType
/* 52573*/    /*Scope*/ 52, /*->52626*/
/* 52574*/      OPC_RecordChild0, // #0 = $tval
/* 52575*/      OPC_CheckChild1Integer, 1, 
/* 52577*/      OPC_RecordChild2, // #1 = $cc
/* 52578*/      OPC_MoveChild2,
/* 52579*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52582*/      OPC_CheckType, MVT::i32,
/* 52584*/      OPC_MoveParent,
/* 52585*/      OPC_RecordChild3, // #2 = physreg input NZCV
/* 52586*/      OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->52606
/* 52589*/        OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 52592*/        OPC_EmitConvertToTarget, 1,
/* 52594*/        OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 52597*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 0, 3, 4, 
                  // Src: (AArch64csel:{ *:[i32] } GPR32:{ *:[i32] }:$tval, 1:{ *:[i32] }, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 11
                  // Dst: (CSINCWr:{ *:[i32] } GPR32:{ *:[i32] }:$tval, WZR:{ *:[i32] }, (imm:{ *:[i32] }):$cc)
/* 52606*/      /*SwitchType*/ 17, MVT::i64,// ->52625
/* 52608*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 52611*/        OPC_EmitConvertToTarget, 1,
/* 52613*/        OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 52616*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 0, 3, 4, 
                  // Src: (AArch64csel:{ *:[i64] } GPR64:{ *:[i64] }:$tval, 1:{ *:[i64] }, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 11
                  // Dst: (CSINCXr:{ *:[i64] } GPR64:{ *:[i64] }:$tval, XZR:{ *:[i64] }, (imm:{ *:[i32] }):$cc)
/* 52625*/      0, // EndSwitchType
/* 52626*/    /*Scope*/ 58, /*->52685*/
/* 52627*/      OPC_CheckChild0Integer, 1, 
/* 52629*/      OPC_RecordChild1, // #0 = $fval
/* 52630*/      OPC_RecordChild2, // #1 = $cc
/* 52631*/      OPC_MoveChild2,
/* 52632*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52635*/      OPC_CheckType, MVT::i32,
/* 52637*/      OPC_MoveParent,
/* 52638*/      OPC_RecordChild3, // #2 = physreg input NZCV
/* 52639*/      OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->52662
/* 52642*/        OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 52645*/        OPC_EmitConvertToTarget, 1,
/* 52647*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52650*/        OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 52653*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 0, 3, 5, 
                  // Src: (AArch64csel:{ *:[i32] } 1:{ *:[i32] }, GPR32:{ *:[i32] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 11
                  // Dst: (CSINCWr:{ *:[i32] } GPR32:{ *:[i32] }:$fval, WZR:{ *:[i32] }, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cc))
/* 52662*/      /*SwitchType*/ 20, MVT::i64,// ->52684
/* 52664*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 52667*/        OPC_EmitConvertToTarget, 1,
/* 52669*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52672*/        OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 52675*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 0, 3, 5, 
                  // Src: (AArch64csel:{ *:[i64] } 1:{ *:[i64] }, GPR64:{ *:[i64] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 11
                  // Dst: (CSINCXr:{ *:[i64] } GPR64:{ *:[i64] }:$fval, XZR:{ *:[i64] }, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cc))
/* 52684*/      0, // EndSwitchType
/* 52685*/    /*Scope*/ 61, /*->52747*/
/* 52686*/      OPC_RecordChild0, // #0 = $tval
/* 52687*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52698*/      OPC_RecordChild2, // #1 = $cc
/* 52699*/      OPC_MoveChild2,
/* 52700*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52703*/      OPC_CheckType, MVT::i32,
/* 52705*/      OPC_MoveParent,
/* 52706*/      OPC_RecordChild3, // #2 = physreg input NZCV
/* 52707*/      OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->52727
/* 52710*/        OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 52713*/        OPC_EmitConvertToTarget, 1,
/* 52715*/        OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 52718*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 0, 3, 4, 
                  // Src: (AArch64csel:{ *:[i32] } GPR32:{ *:[i32] }:$tval, -1:{ *:[i32] }, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 11
                  // Dst: (CSINVWr:{ *:[i32] } GPR32:{ *:[i32] }:$tval, WZR:{ *:[i32] }, (imm:{ *:[i32] }):$cc)
/* 52727*/      /*SwitchType*/ 17, MVT::i64,// ->52746
/* 52729*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 52732*/        OPC_EmitConvertToTarget, 1,
/* 52734*/        OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 52737*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 0, 3, 4, 
                  // Src: (AArch64csel:{ *:[i64] } GPR64:{ *:[i64] }:$tval, -1:{ *:[i64] }, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 11
                  // Dst: (CSINVXr:{ *:[i64] } GPR64:{ *:[i64] }:$tval, XZR:{ *:[i64] }, (imm:{ *:[i32] }):$cc)
/* 52746*/      0, // EndSwitchType
/* 52747*/    /*Scope*/ 67, /*->52815*/
/* 52748*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52759*/      OPC_RecordChild1, // #0 = $fval
/* 52760*/      OPC_RecordChild2, // #1 = $cc
/* 52761*/      OPC_MoveChild2,
/* 52762*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52765*/      OPC_CheckType, MVT::i32,
/* 52767*/      OPC_MoveParent,
/* 52768*/      OPC_RecordChild3, // #2 = physreg input NZCV
/* 52769*/      OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->52792
/* 52772*/        OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 52775*/        OPC_EmitConvertToTarget, 1,
/* 52777*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52780*/        OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 52783*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 0, 3, 5, 
                  // Src: (AArch64csel:{ *:[i32] } -1:{ *:[i32] }, GPR32:{ *:[i32] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 11
                  // Dst: (CSINVWr:{ *:[i32] } GPR32:{ *:[i32] }:$fval, WZR:{ *:[i32] }, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cc))
/* 52792*/      /*SwitchType*/ 20, MVT::i64,// ->52814
/* 52794*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 52797*/        OPC_EmitConvertToTarget, 1,
/* 52799*/        OPC_EmitNodeXForm, 3, 4, // inv_cond_XFORM
/* 52802*/        OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 52805*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 0, 3, 5, 
                  // Src: (AArch64csel:{ *:[i64] } -1:{ *:[i64] }, GPR64:{ *:[i64] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 11
                  // Dst: (CSINVXr:{ *:[i64] } GPR64:{ *:[i64] }:$fval, XZR:{ *:[i64] }, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$cc))
/* 52814*/      0, // EndSwitchType
/* 52815*/    /*Scope*/ 115, /*->52931*/
/* 52816*/      OPC_RecordChild0, // #0 = $Rn
/* 52817*/      OPC_RecordChild1, // #1 = $Rm
/* 52818*/      OPC_RecordChild2, // #2 = $cond
/* 52819*/      OPC_MoveChild2,
/* 52820*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52823*/      OPC_CheckType, MVT::i32,
/* 52825*/      OPC_MoveParent,
/* 52826*/      OPC_RecordChild3, // #3 = physreg input NZCV
/* 52827*/      OPC_SwitchType /*6 cases */, 14, MVT::i32,// ->52844
/* 52830*/        OPC_EmitConvertToTarget, 2,
/* 52832*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52835*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSELWr), 0|OPFL_GlueInput,
                      MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 6
                  // Dst: (CSELWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52844*/      /*SwitchType*/ 14, MVT::i64,// ->52860
/* 52846*/        OPC_EmitConvertToTarget, 2,
/* 52848*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52851*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSELXr), 0|OPFL_GlueInput,
                      MVT::i64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 6
                  // Dst: (CSELXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52860*/      /*SwitchType*/ 16, MVT::f16,// ->52878
/* 52862*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 52864*/        OPC_EmitConvertToTarget, 2,
/* 52866*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52869*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCSELHrrr), 0|OPFL_GlueInput,
                      MVT::f16, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 6
                  // Dst: (FCSELHrrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52878*/      /*SwitchType*/ 16, MVT::f32,// ->52896
/* 52880*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 52882*/        OPC_EmitConvertToTarget, 2,
/* 52884*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52887*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCSELSrrr), 0|OPFL_GlueInput,
                      MVT::f32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 6
                  // Dst: (FCSELSrrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52896*/      /*SwitchType*/ 16, MVT::f64,// ->52914
/* 52898*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 52900*/        OPC_EmitConvertToTarget, 2,
/* 52902*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52905*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCSELDrrr), 0|OPFL_GlueInput,
                      MVT::f64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 6
                  // Dst: (FCSELDrrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52914*/      /*SwitchType*/ 14, MVT::f128,// ->52930
/* 52916*/        OPC_EmitConvertToTarget, 2,
/* 52918*/        OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 52921*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::F128CSEL), 0|OPFL_GlueInput,
                      MVT::f128, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (AArch64csel:{ *:[f128] } FPR128:{ *:[f128] }:$Rn, FPR128:{ *:[f128] }:$Rm, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 6
                  // Dst: (F128CSEL:{ *:[f128] } FPR128:{ *:[f128] }:$Rn, FPR128:{ *:[f128] }:$Rm, (imm:{ *:[i32] }):$cond)
/* 52930*/      0, // EndSwitchType
/* 52931*/    0, /*End of Scope*/
/* 52932*/  /*SwitchOpcode*/ 24|128,2/*280*/, TARGET_VAL(AArch64ISD::WrapperLarge),// ->53216
/* 52936*/    OPC_RecordChild0, // #0 = $g3
/* 52937*/    OPC_MoveChild0,
/* 52938*/    OPC_SwitchOpcode /*4 cases */, 66, TARGET_VAL(ISD::TargetGlobalAddress),// ->53008
/* 52942*/      OPC_MoveParent,
/* 52943*/      OPC_RecordChild1, // #1 = $g2
/* 52944*/      OPC_MoveChild1,
/* 52945*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 52948*/      OPC_MoveParent,
/* 52949*/      OPC_RecordChild2, // #2 = $g1
/* 52950*/      OPC_MoveChild2,
/* 52951*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 52954*/      OPC_MoveParent,
/* 52955*/      OPC_RecordChild3, // #3 = $g0
/* 52956*/      OPC_MoveChild3,
/* 52957*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 52960*/      OPC_MoveParent,
/* 52961*/      OPC_EmitInteger, MVT::i32, 0, 
/* 52964*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVZXi), 0,
                    MVT::i64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 52972*/      OPC_EmitInteger, MVT::i32, 16, 
/* 52975*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 5, 2, 6,  // Results = #7
/* 52984*/      OPC_EmitInteger, MVT::i32, 32, 
/* 52987*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 52996*/      OPC_EmitInteger, MVT::i32, 48, 
/* 52999*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 9, 0, 10, 
                // Src: (AArch64WrapperLarge:{ *:[i64] } (tglobaladdr:{ *:[i32] }):$g3, (tglobaladdr:{ *:[i32] }):$g2, (tglobaladdr:{ *:[i32] }):$g1, (tglobaladdr:{ *:[i32] }):$g0) - Complexity = 15
                // Dst: (MOVKXi:{ *:[i64] } (MOVKXi:{ *:[i64] } (MOVKXi:{ *:[i64] } (MOVZXi:{ *:[i64] } (tglobaladdr:{ *:[i32] }):$g0, 0:{ *:[i32] }), (tglobaladdr:{ *:[i32] }):$g1, 16:{ *:[i32] }), (tglobaladdr:{ *:[i32] }):$g2, 32:{ *:[i32] }), (tglobaladdr:{ *:[i32] }):$g3, 48:{ *:[i32] })
/* 53008*/    /*SwitchOpcode*/ 66, TARGET_VAL(ISD::TargetBlockAddress),// ->53077
/* 53011*/      OPC_MoveParent,
/* 53012*/      OPC_RecordChild1, // #1 = $g2
/* 53013*/      OPC_MoveChild1,
/* 53014*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetBlockAddress),
/* 53017*/      OPC_MoveParent,
/* 53018*/      OPC_RecordChild2, // #2 = $g1
/* 53019*/      OPC_MoveChild2,
/* 53020*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetBlockAddress),
/* 53023*/      OPC_MoveParent,
/* 53024*/      OPC_RecordChild3, // #3 = $g0
/* 53025*/      OPC_MoveChild3,
/* 53026*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetBlockAddress),
/* 53029*/      OPC_MoveParent,
/* 53030*/      OPC_EmitInteger, MVT::i32, 0, 
/* 53033*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVZXi), 0,
                    MVT::i64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 53041*/      OPC_EmitInteger, MVT::i32, 16, 
/* 53044*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 5, 2, 6,  // Results = #7
/* 53053*/      OPC_EmitInteger, MVT::i32, 32, 
/* 53056*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 53065*/      OPC_EmitInteger, MVT::i32, 48, 
/* 53068*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 9, 0, 10, 
                // Src: (AArch64WrapperLarge:{ *:[i64] } (tblockaddress:{ *:[i32] }):$g3, (tblockaddress:{ *:[i32] }):$g2, (tblockaddress:{ *:[i32] }):$g1, (tblockaddress:{ *:[i32] }):$g0) - Complexity = 15
                // Dst: (MOVKXi:{ *:[i64] } (MOVKXi:{ *:[i64] } (MOVKXi:{ *:[i64] } (MOVZXi:{ *:[i64] } (tblockaddress:{ *:[i32] }):$g0, 0:{ *:[i32] }), (tblockaddress:{ *:[i32] }):$g1, 16:{ *:[i32] }), (tblockaddress:{ *:[i32] }):$g2, 32:{ *:[i32] }), (tblockaddress:{ *:[i32] }):$g3, 48:{ *:[i32] })
/* 53077*/    /*SwitchOpcode*/ 66, TARGET_VAL(ISD::TargetConstantPool),// ->53146
/* 53080*/      OPC_MoveParent,
/* 53081*/      OPC_RecordChild1, // #1 = $g2
/* 53082*/      OPC_MoveChild1,
/* 53083*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 53086*/      OPC_MoveParent,
/* 53087*/      OPC_RecordChild2, // #2 = $g1
/* 53088*/      OPC_MoveChild2,
/* 53089*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 53092*/      OPC_MoveParent,
/* 53093*/      OPC_RecordChild3, // #3 = $g0
/* 53094*/      OPC_MoveChild3,
/* 53095*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 53098*/      OPC_MoveParent,
/* 53099*/      OPC_EmitInteger, MVT::i32, 0, 
/* 53102*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVZXi), 0,
                    MVT::i64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 53110*/      OPC_EmitInteger, MVT::i32, 16, 
/* 53113*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 5, 2, 6,  // Results = #7
/* 53122*/      OPC_EmitInteger, MVT::i32, 32, 
/* 53125*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 53134*/      OPC_EmitInteger, MVT::i32, 48, 
/* 53137*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 9, 0, 10, 
                // Src: (AArch64WrapperLarge:{ *:[i64] } (tconstpool:{ *:[i32] }):$g3, (tconstpool:{ *:[i32] }):$g2, (tconstpool:{ *:[i32] }):$g1, (tconstpool:{ *:[i32] }):$g0) - Complexity = 15
                // Dst: (MOVKXi:{ *:[i64] } (MOVKXi:{ *:[i64] } (MOVKXi:{ *:[i64] } (MOVZXi:{ *:[i64] } (tconstpool:{ *:[i32] }):$g0, 0:{ *:[i32] }), (tconstpool:{ *:[i32] }):$g1, 16:{ *:[i32] }), (tconstpool:{ *:[i32] }):$g2, 32:{ *:[i32] }), (tconstpool:{ *:[i32] }):$g3, 48:{ *:[i32] })
/* 53146*/    /*SwitchOpcode*/ 66, TARGET_VAL(ISD::TargetJumpTable),// ->53215
/* 53149*/      OPC_MoveParent,
/* 53150*/      OPC_RecordChild1, // #1 = $g2
/* 53151*/      OPC_MoveChild1,
/* 53152*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 53155*/      OPC_MoveParent,
/* 53156*/      OPC_RecordChild2, // #2 = $g1
/* 53157*/      OPC_MoveChild2,
/* 53158*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 53161*/      OPC_MoveParent,
/* 53162*/      OPC_RecordChild3, // #3 = $g0
/* 53163*/      OPC_MoveChild3,
/* 53164*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 53167*/      OPC_MoveParent,
/* 53168*/      OPC_EmitInteger, MVT::i32, 0, 
/* 53171*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVZXi), 0,
                    MVT::i64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 53179*/      OPC_EmitInteger, MVT::i32, 16, 
/* 53182*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 5, 2, 6,  // Results = #7
/* 53191*/      OPC_EmitInteger, MVT::i32, 32, 
/* 53194*/      OPC_EmitNode1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 53203*/      OPC_EmitInteger, MVT::i32, 48, 
/* 53206*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVKXi), 0,
                    MVT::i64, 3/*#Ops*/, 9, 0, 10, 
                // Src: (AArch64WrapperLarge:{ *:[i64] } (tjumptable:{ *:[i32] }):$g3, (tjumptable:{ *:[i32] }):$g2, (tjumptable:{ *:[i32] }):$g1, (tjumptable:{ *:[i32] }):$g0) - Complexity = 15
                // Dst: (MOVKXi:{ *:[i64] } (MOVKXi:{ *:[i64] } (MOVKXi:{ *:[i64] } (MOVZXi:{ *:[i64] } (tjumptable:{ *:[i32] }):$g0, 0:{ *:[i32] }), (tjumptable:{ *:[i32] }):$g1, 16:{ *:[i32] }), (tjumptable:{ *:[i32] }):$g2, 32:{ *:[i32] }), (tjumptable:{ *:[i32] }):$g3, 48:{ *:[i32] })
/* 53215*/    0, // EndSwitchOpcode
/* 53216*/  /*SwitchOpcode*/ 0|128,2/*256*/, TARGET_VAL(AArch64ISD::ADDS),// ->53476
/* 53220*/    OPC_RecordChild0, // #0 = $R2
/* 53221*/    OPC_RecordChild1, // #1 = $R3
/* 53222*/    OPC_SwitchType /*2 cases */, 124, MVT::i32,// ->53349
/* 53225*/      OPC_Scope, 13, /*->53240*/ // 9 children in Scope
/* 53227*/        OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectArithExtendedRegister:$R3 #2 #3
/* 53230*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSWrx), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3) - Complexity = 13
                  // Dst: (ADDSWrx:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3)
/* 53240*/      /*Scope*/ 13, /*->53254*/
/* 53241*/        OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectNegArithImmed:$imm #2 #3
/* 53244*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWri), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm) - Complexity = 13
                  // Dst: (SUBSWri:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 53254*/      /*Scope*/ 13, /*->53268*/
/* 53255*/        OPC_CheckComplexPat, /*CP*/30, /*#*/0, // SelectArithExtendedRegister:$R3 #2 #3
/* 53258*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSWrx), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } anonymous_1081:{ *:[i32] }:$R3, GPR32sp:{ *:[i32] }:$R2) - Complexity = 13
                  // Dst: (ADDSWrx:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3)
/* 53268*/      /*Scope*/ 13, /*->53282*/
/* 53269*/        OPC_CheckComplexPat, /*CP*/31, /*#*/0, // SelectNegArithImmed:$imm #2 #3
/* 53272*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWri), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } neg_addsub_shifted_imm32:{ *:[i32] }:$imm, GPR32:{ *:[i32] }:$Rn) - Complexity = 13
                  // Dst: (SUBSWri:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 53282*/      /*Scope*/ 13, /*->53296*/
/* 53283*/        OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectArithImmed:$imm #2 #3
/* 53286*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSWri), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm) - Complexity = 12
                  // Dst: (ADDSWri:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 53296*/      /*Scope*/ 13, /*->53310*/
/* 53297*/        OPC_CheckComplexPat, /*CP*/33, /*#*/1, // SelectArithShiftedRegister:$Rm #2 #3
/* 53300*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSWrs), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 12
                  // Dst: (ADDSWrs:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm)
/* 53310*/      /*Scope*/ 13, /*->53324*/
/* 53311*/        OPC_CheckComplexPat, /*CP*/32, /*#*/0, // SelectArithImmed:$imm #2 #3
/* 53314*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSWri), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } addsub_shifted_imm32:{ *:[i32] }:$imm, GPR32sp:{ *:[i32] }:$Rn) - Complexity = 12
                  // Dst: (ADDSWri:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 53324*/      /*Scope*/ 13, /*->53338*/
/* 53325*/        OPC_CheckComplexPat, /*CP*/33, /*#*/0, // SelectArithShiftedRegister:$Rm #2 #3
/* 53328*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSWrs), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } arith_shifted_reg32:{ *:[i32] }:$Rm, GPR32:{ *:[i32] }:$Rn) - Complexity = 12
                  // Dst: (ADDSWrs:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm)
/* 53338*/      /*Scope*/ 9, /*->53348*/
/* 53339*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSWrr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64add_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (ADDSWrr:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 53348*/      0, /*End of Scope*/
/* 53349*/    /*SwitchType*/ 124, MVT::i64,// ->53475
/* 53351*/      OPC_Scope, 13, /*->53366*/ // 9 children in Scope
/* 53353*/        OPC_CheckComplexPat, /*CP*/38, /*#*/1, // SelectArithExtendedRegister:$R3 #2 #3
/* 53356*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSXrx), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$R2, anonymous_1091:{ *:[i64] }:$R3) - Complexity = 13
                  // Dst: (ADDSXrx:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$R2, anonymous_1091:{ *:[i64] }:$R3)
/* 53366*/      /*Scope*/ 13, /*->53380*/
/* 53367*/        OPC_CheckComplexPat, /*CP*/35, /*#*/1, // SelectNegArithImmed:$imm #2 #3
/* 53370*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXri), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm) - Complexity = 13
                  // Dst: (SUBSXri:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 53380*/      /*Scope*/ 13, /*->53394*/
/* 53381*/        OPC_CheckComplexPat, /*CP*/38, /*#*/0, // SelectArithExtendedRegister:$R3 #2 #3
/* 53384*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSXrx), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } anonymous_1091:{ *:[i64] }:$R3, GPR64sp:{ *:[i64] }:$R2) - Complexity = 13
                  // Dst: (ADDSXrx:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$R2, anonymous_1091:{ *:[i64] }:$R3)
/* 53394*/      /*Scope*/ 13, /*->53408*/
/* 53395*/        OPC_CheckComplexPat, /*CP*/35, /*#*/0, // SelectNegArithImmed:$imm #2 #3
/* 53398*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXri), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } neg_addsub_shifted_imm64:{ *:[i64] }:$imm, GPR64:{ *:[i64] }:$Rn) - Complexity = 13
                  // Dst: (SUBSXri:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 53408*/      /*Scope*/ 13, /*->53422*/
/* 53409*/        OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectArithImmed:$imm #2 #3
/* 53412*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSXri), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm) - Complexity = 12
                  // Dst: (ADDSXri:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 53422*/      /*Scope*/ 13, /*->53436*/
/* 53423*/        OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectArithShiftedRegister:$Rm #2 #3
/* 53426*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSXrs), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 12
                  // Dst: (ADDSXrs:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm)
/* 53436*/      /*Scope*/ 13, /*->53450*/
/* 53437*/        OPC_CheckComplexPat, /*CP*/36, /*#*/0, // SelectArithImmed:$imm #2 #3
/* 53440*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSXri), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } addsub_shifted_imm64:{ *:[i64] }:$imm, GPR64sp:{ *:[i64] }:$Rn) - Complexity = 12
                  // Dst: (ADDSXri:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 53450*/      /*Scope*/ 13, /*->53464*/
/* 53451*/        OPC_CheckComplexPat, /*CP*/37, /*#*/0, // SelectArithShiftedRegister:$Rm #2 #3
/* 53454*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSXrs), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } arith_shifted_reg64:{ *:[i64] }:$Rm, GPR64:{ *:[i64] }:$Rn) - Complexity = 12
                  // Dst: (ADDSXrs:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm)
/* 53464*/      /*Scope*/ 9, /*->53474*/
/* 53465*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSXrr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64add_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                  // Dst: (ADDSXrr:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 53474*/      0, /*End of Scope*/
/* 53475*/    0, // EndSwitchType
/* 53476*/  /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(AArch64ISD::SUBS),// ->53624
/* 53480*/    OPC_RecordChild0, // #0 = $R2
/* 53481*/    OPC_RecordChild1, // #1 = $R3
/* 53482*/    OPC_SwitchType /*2 cases */, 68, MVT::i32,// ->53553
/* 53485*/      OPC_Scope, 13, /*->53500*/ // 5 children in Scope
/* 53487*/        OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectArithExtendedRegister:$R3 #2 #3
/* 53490*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWrx), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64sub_flag:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3) - Complexity = 13
                  // Dst: (SUBSWrx:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$R2, anonymous_1081:{ *:[i32] }:$R3)
/* 53500*/      /*Scope*/ 13, /*->53514*/
/* 53501*/        OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectNegArithImmed:$imm #2 #3
/* 53504*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSWri), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64sub_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm) - Complexity = 13
                  // Dst: (ADDSWri:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, neg_addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 53514*/      /*Scope*/ 13, /*->53528*/
/* 53515*/        OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectArithImmed:$imm #2 #3
/* 53518*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWri), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64sub_flag:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm) - Complexity = 12
                  // Dst: (SUBSWri:{ *:[i32] }:{ *:[i32] } GPR32sp:{ *:[i32] }:$Rn, addsub_shifted_imm32:{ *:[i32] }:$imm)
/* 53528*/      /*Scope*/ 13, /*->53542*/
/* 53529*/        OPC_CheckComplexPat, /*CP*/33, /*#*/1, // SelectArithShiftedRegister:$Rm #2 #3
/* 53532*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWrs), 0,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64sub_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm) - Complexity = 12
                  // Dst: (SUBSWrs:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, arith_shifted_reg32:{ *:[i32] }:$Rm)
/* 53542*/      /*Scope*/ 9, /*->53552*/
/* 53543*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSWrr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64sub_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (SUBSWrr:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 53552*/      0, /*End of Scope*/
/* 53553*/    /*SwitchType*/ 68, MVT::i64,// ->53623
/* 53555*/      OPC_Scope, 13, /*->53570*/ // 5 children in Scope
/* 53557*/        OPC_CheckComplexPat, /*CP*/38, /*#*/1, // SelectArithExtendedRegister:$R3 #2 #3
/* 53560*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXrx), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64sub_flag:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$R2, anonymous_1091:{ *:[i64] }:$R3) - Complexity = 13
                  // Dst: (SUBSXrx:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$R2, anonymous_1091:{ *:[i64] }:$R3)
/* 53570*/      /*Scope*/ 13, /*->53584*/
/* 53571*/        OPC_CheckComplexPat, /*CP*/35, /*#*/1, // SelectNegArithImmed:$imm #2 #3
/* 53574*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADDSXri), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64sub_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm) - Complexity = 13
                  // Dst: (ADDSXri:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, neg_addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 53584*/      /*Scope*/ 13, /*->53598*/
/* 53585*/        OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectArithImmed:$imm #2 #3
/* 53588*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXri), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64sub_flag:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm) - Complexity = 12
                  // Dst: (SUBSXri:{ *:[i64] }:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, addsub_shifted_imm64:{ *:[i64] }:$imm)
/* 53598*/      /*Scope*/ 13, /*->53612*/
/* 53599*/        OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectArithShiftedRegister:$Rm #2 #3
/* 53602*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXrs), 0,
                      MVT::i64, MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (AArch64sub_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm) - Complexity = 12
                  // Dst: (SUBSXrs:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, arith_shifted_reg64:{ *:[i64] }:$Rm)
/* 53612*/      /*Scope*/ 9, /*->53622*/
/* 53613*/        OPC_MorphNodeTo2, TARGET_VAL(AArch64::SUBSXrr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64sub_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                  // Dst: (SUBSXrr:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 53622*/      0, /*End of Scope*/
/* 53623*/    0, // EndSwitchType
/* 53624*/  /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(AArch64ISD::CCMN),// ->53801
/* 53628*/    OPC_RecordChild0, // #0 = $Rn
/* 53629*/    OPC_Scope, 84, /*->53715*/ // 2 children in Scope
/* 53631*/      OPC_CheckChild0Type, MVT::i32,
/* 53633*/      OPC_RecordChild1, // #1 = $imm
/* 53634*/      OPC_Scope, 43, /*->53679*/ // 2 children in Scope
/* 53636*/        OPC_MoveChild1,
/* 53637*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53640*/        OPC_CheckPredicate, 24, // Predicate_imm32_0_31
/* 53642*/        OPC_MoveParent,
/* 53643*/        OPC_RecordChild2, // #2 = $nzcv
/* 53644*/        OPC_MoveChild2,
/* 53645*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53648*/        OPC_CheckType, MVT::i32,
/* 53650*/        OPC_MoveParent,
/* 53651*/        OPC_RecordChild3, // #3 = $cond
/* 53652*/        OPC_MoveChild3,
/* 53653*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53656*/        OPC_CheckType, MVT::i32,
/* 53658*/        OPC_MoveParent,
/* 53659*/        OPC_RecordChild4, // #4 = physreg input NZCV
/* 53660*/        OPC_EmitConvertToTarget, 1,
/* 53662*/        OPC_EmitConvertToTarget, 2,
/* 53664*/        OPC_EmitConvertToTarget, 3,
/* 53666*/        OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 53669*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CCMNWi), 0|OPFL_GlueInput,
                      MVT::i32, 4/*#Ops*/, 0, 5, 6, 7, 
                  // Src: (AArch64ccmn:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm32_0_31>>:$imm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 13
                  // Dst: (CCMNWi:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 53679*/      /*Scope*/ 34, /*->53714*/
/* 53680*/        OPC_RecordChild2, // #2 = $nzcv
/* 53681*/        OPC_MoveChild2,
/* 53682*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53685*/        OPC_CheckType, MVT::i32,
/* 53687*/        OPC_MoveParent,
/* 53688*/        OPC_RecordChild3, // #3 = $cond
/* 53689*/        OPC_MoveChild3,
/* 53690*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53693*/        OPC_CheckType, MVT::i32,
/* 53695*/        OPC_MoveParent,
/* 53696*/        OPC_RecordChild4, // #4 = physreg input NZCV
/* 53697*/        OPC_EmitConvertToTarget, 2,
/* 53699*/        OPC_EmitConvertToTarget, 3,
/* 53701*/        OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 53704*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CCMNWr), 0|OPFL_GlueInput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 5, 6, 
                  // Src: (AArch64ccmn:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 9
                  // Dst: (CCMNWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 53714*/      0, /*End of Scope*/
/* 53715*/    /*Scope*/ 84, /*->53800*/
/* 53716*/      OPC_CheckChild0Type, MVT::i64,
/* 53718*/      OPC_RecordChild1, // #1 = $imm
/* 53719*/      OPC_Scope, 43, /*->53764*/ // 2 children in Scope
/* 53721*/        OPC_MoveChild1,
/* 53722*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53725*/        OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 53727*/        OPC_MoveParent,
/* 53728*/        OPC_RecordChild2, // #2 = $nzcv
/* 53729*/        OPC_MoveChild2,
/* 53730*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53733*/        OPC_CheckType, MVT::i32,
/* 53735*/        OPC_MoveParent,
/* 53736*/        OPC_RecordChild3, // #3 = $cond
/* 53737*/        OPC_MoveChild3,
/* 53738*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53741*/        OPC_CheckType, MVT::i32,
/* 53743*/        OPC_MoveParent,
/* 53744*/        OPC_RecordChild4, // #4 = physreg input NZCV
/* 53745*/        OPC_EmitConvertToTarget, 1,
/* 53747*/        OPC_EmitConvertToTarget, 2,
/* 53749*/        OPC_EmitConvertToTarget, 3,
/* 53751*/        OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 53754*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CCMNXi), 0|OPFL_GlueInput,
                      MVT::i32, 4/*#Ops*/, 0, 5, 6, 7, 
                  // Src: (AArch64ccmn:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 13
                  // Dst: (CCMNXi:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$imm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 53764*/      /*Scope*/ 34, /*->53799*/
/* 53765*/        OPC_RecordChild2, // #2 = $nzcv
/* 53766*/        OPC_MoveChild2,
/* 53767*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53770*/        OPC_CheckType, MVT::i32,
/* 53772*/        OPC_MoveParent,
/* 53773*/        OPC_RecordChild3, // #3 = $cond
/* 53774*/        OPC_MoveChild3,
/* 53775*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53778*/        OPC_CheckType, MVT::i32,
/* 53780*/        OPC_MoveParent,
/* 53781*/        OPC_RecordChild4, // #4 = physreg input NZCV
/* 53782*/        OPC_EmitConvertToTarget, 2,
/* 53784*/        OPC_EmitConvertToTarget, 3,
/* 53786*/        OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 53789*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CCMNXr), 0|OPFL_GlueInput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 5, 6, 
                  // Src: (AArch64ccmn:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 9
                  // Dst: (CCMNXr:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 53799*/      0, /*End of Scope*/
/* 53800*/    0, /*End of Scope*/
/* 53801*/  /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(AArch64ISD::CCMP),// ->53978
/* 53805*/    OPC_RecordChild0, // #0 = $Rn
/* 53806*/    OPC_Scope, 84, /*->53892*/ // 2 children in Scope
/* 53808*/      OPC_CheckChild0Type, MVT::i32,
/* 53810*/      OPC_RecordChild1, // #1 = $imm
/* 53811*/      OPC_Scope, 43, /*->53856*/ // 2 children in Scope
/* 53813*/        OPC_MoveChild1,
/* 53814*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53817*/        OPC_CheckPredicate, 24, // Predicate_imm32_0_31
/* 53819*/        OPC_MoveParent,
/* 53820*/        OPC_RecordChild2, // #2 = $nzcv
/* 53821*/        OPC_MoveChild2,
/* 53822*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53825*/        OPC_CheckType, MVT::i32,
/* 53827*/        OPC_MoveParent,
/* 53828*/        OPC_RecordChild3, // #3 = $cond
/* 53829*/        OPC_MoveChild3,
/* 53830*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53833*/        OPC_CheckType, MVT::i32,
/* 53835*/        OPC_MoveParent,
/* 53836*/        OPC_RecordChild4, // #4 = physreg input NZCV
/* 53837*/        OPC_EmitConvertToTarget, 1,
/* 53839*/        OPC_EmitConvertToTarget, 2,
/* 53841*/        OPC_EmitConvertToTarget, 3,
/* 53843*/        OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 53846*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CCMPWi), 0|OPFL_GlueInput,
                      MVT::i32, 4/*#Ops*/, 0, 5, 6, 7, 
                  // Src: (AArch64ccmp:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm32_0_31>>:$imm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 13
                  // Dst: (CCMPWi:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 53856*/      /*Scope*/ 34, /*->53891*/
/* 53857*/        OPC_RecordChild2, // #2 = $nzcv
/* 53858*/        OPC_MoveChild2,
/* 53859*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53862*/        OPC_CheckType, MVT::i32,
/* 53864*/        OPC_MoveParent,
/* 53865*/        OPC_RecordChild3, // #3 = $cond
/* 53866*/        OPC_MoveChild3,
/* 53867*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53870*/        OPC_CheckType, MVT::i32,
/* 53872*/        OPC_MoveParent,
/* 53873*/        OPC_RecordChild4, // #4 = physreg input NZCV
/* 53874*/        OPC_EmitConvertToTarget, 2,
/* 53876*/        OPC_EmitConvertToTarget, 3,
/* 53878*/        OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 53881*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CCMPWr), 0|OPFL_GlueInput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 5, 6, 
                  // Src: (AArch64ccmp:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 9
                  // Dst: (CCMPWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 53891*/      0, /*End of Scope*/
/* 53892*/    /*Scope*/ 84, /*->53977*/
/* 53893*/      OPC_CheckChild0Type, MVT::i64,
/* 53895*/      OPC_RecordChild1, // #1 = $imm
/* 53896*/      OPC_Scope, 43, /*->53941*/ // 2 children in Scope
/* 53898*/        OPC_MoveChild1,
/* 53899*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53902*/        OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 53904*/        OPC_MoveParent,
/* 53905*/        OPC_RecordChild2, // #2 = $nzcv
/* 53906*/        OPC_MoveChild2,
/* 53907*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53910*/        OPC_CheckType, MVT::i32,
/* 53912*/        OPC_MoveParent,
/* 53913*/        OPC_RecordChild3, // #3 = $cond
/* 53914*/        OPC_MoveChild3,
/* 53915*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53918*/        OPC_CheckType, MVT::i32,
/* 53920*/        OPC_MoveParent,
/* 53921*/        OPC_RecordChild4, // #4 = physreg input NZCV
/* 53922*/        OPC_EmitConvertToTarget, 1,
/* 53924*/        OPC_EmitConvertToTarget, 2,
/* 53926*/        OPC_EmitConvertToTarget, 3,
/* 53928*/        OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 53931*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CCMPXi), 0|OPFL_GlueInput,
                      MVT::i32, 4/*#Ops*/, 0, 5, 6, 7, 
                  // Src: (AArch64ccmp:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 13
                  // Dst: (CCMPXi:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] }):$imm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 53941*/      /*Scope*/ 34, /*->53976*/
/* 53942*/        OPC_RecordChild2, // #2 = $nzcv
/* 53943*/        OPC_MoveChild2,
/* 53944*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53947*/        OPC_CheckType, MVT::i32,
/* 53949*/        OPC_MoveParent,
/* 53950*/        OPC_RecordChild3, // #3 = $cond
/* 53951*/        OPC_MoveChild3,
/* 53952*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53955*/        OPC_CheckType, MVT::i32,
/* 53957*/        OPC_MoveParent,
/* 53958*/        OPC_RecordChild4, // #4 = physreg input NZCV
/* 53959*/        OPC_EmitConvertToTarget, 2,
/* 53961*/        OPC_EmitConvertToTarget, 3,
/* 53963*/        OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 53966*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CCMPXr), 0|OPFL_GlueInput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 5, 6, 
                  // Src: (AArch64ccmp:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 9
                  // Dst: (CCMPXr:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 53976*/      0, /*End of Scope*/
/* 53977*/    0, /*End of Scope*/
/* 53978*/  /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(AArch64ISD::ADDlow),// ->54138
/* 53982*/    OPC_Scope, 6|128,1/*134*/, /*->54119*/ // 2 children in Scope
/* 53985*/      OPC_MoveChild0,
/* 53986*/      OPC_CheckOpcode, TARGET_VAL(AArch64ISD::ADRP),
/* 53989*/      OPC_RecordChild0, // #0 = $hi
/* 53990*/      OPC_MoveChild0,
/* 53991*/      OPC_SwitchOpcode /*6 cases */, 18, TARGET_VAL(ISD::TargetGlobalAddress),// ->54013
/* 53995*/        OPC_MoveParent,
/* 53996*/        OPC_MoveParent,
/* 53997*/        OPC_RecordChild1, // #1 = $low
/* 53998*/        OPC_MoveChild1,
/* 53999*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 54002*/        OPC_MoveParent,
/* 54003*/        OPC_CheckType, MVT::i64,
/* 54005*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVaddr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64addlow:{ *:[i64] } (AArch64adrp:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$hi), (tglobaladdr:{ *:[i64] }):$low) - Complexity = 12
                  // Dst: (MOVaddr:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$hi, (tglobaladdr:{ *:[i64] }):$low)
/* 54013*/      /*SwitchOpcode*/ 18, TARGET_VAL(ISD::TargetJumpTable),// ->54034
/* 54016*/        OPC_MoveParent,
/* 54017*/        OPC_MoveParent,
/* 54018*/        OPC_RecordChild1, // #1 = $low
/* 54019*/        OPC_MoveChild1,
/* 54020*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 54023*/        OPC_MoveParent,
/* 54024*/        OPC_CheckType, MVT::i64,
/* 54026*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVaddrJT), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64addlow:{ *:[i64] } (AArch64adrp:{ *:[i64] } (tjumptable:{ *:[i64] }):$hi), (tjumptable:{ *:[i64] }):$low) - Complexity = 12
                  // Dst: (MOVaddrJT:{ *:[i64] } (tjumptable:{ *:[i64] }):$hi, (tjumptable:{ *:[i64] }):$low)
/* 54034*/      /*SwitchOpcode*/ 18, TARGET_VAL(ISD::TargetConstantPool),// ->54055
/* 54037*/        OPC_MoveParent,
/* 54038*/        OPC_MoveParent,
/* 54039*/        OPC_RecordChild1, // #1 = $low
/* 54040*/        OPC_MoveChild1,
/* 54041*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 54044*/        OPC_MoveParent,
/* 54045*/        OPC_CheckType, MVT::i64,
/* 54047*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVaddrCP), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64addlow:{ *:[i64] } (AArch64adrp:{ *:[i64] } (tconstpool:{ *:[i64] }):$hi), (tconstpool:{ *:[i64] }):$low) - Complexity = 12
                  // Dst: (MOVaddrCP:{ *:[i64] } (tconstpool:{ *:[i64] }):$hi, (tconstpool:{ *:[i64] }):$low)
/* 54055*/      /*SwitchOpcode*/ 18, TARGET_VAL(ISD::TargetBlockAddress),// ->54076
/* 54058*/        OPC_MoveParent,
/* 54059*/        OPC_MoveParent,
/* 54060*/        OPC_RecordChild1, // #1 = $low
/* 54061*/        OPC_MoveChild1,
/* 54062*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetBlockAddress),
/* 54065*/        OPC_MoveParent,
/* 54066*/        OPC_CheckType, MVT::i64,
/* 54068*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVaddrBA), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64addlow:{ *:[i64] } (AArch64adrp:{ *:[i64] } (tblockaddress:{ *:[i64] }):$hi), (tblockaddress:{ *:[i64] }):$low) - Complexity = 12
                  // Dst: (MOVaddrBA:{ *:[i64] } (tblockaddress:{ *:[i64] }):$hi, (tblockaddress:{ *:[i64] }):$low)
/* 54076*/      /*SwitchOpcode*/ 18, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->54097
/* 54079*/        OPC_MoveParent,
/* 54080*/        OPC_MoveParent,
/* 54081*/        OPC_RecordChild1, // #1 = $low
/* 54082*/        OPC_MoveChild1,
/* 54083*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 54086*/        OPC_MoveParent,
/* 54087*/        OPC_CheckType, MVT::i64,
/* 54089*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVaddrTLS), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64addlow:{ *:[i64] } (AArch64adrp:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$hi), (tglobaltlsaddr:{ *:[i64] }):$low) - Complexity = 12
                  // Dst: (MOVaddrTLS:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$hi, (tglobaltlsaddr:{ *:[i64] }):$low)
/* 54097*/      /*SwitchOpcode*/ 18, TARGET_VAL(ISD::TargetExternalSymbol),// ->54118
/* 54100*/        OPC_MoveParent,
/* 54101*/        OPC_MoveParent,
/* 54102*/        OPC_RecordChild1, // #1 = $low
/* 54103*/        OPC_MoveChild1,
/* 54104*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetExternalSymbol),
/* 54107*/        OPC_MoveParent,
/* 54108*/        OPC_CheckType, MVT::i64,
/* 54110*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVaddrEXT), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64addlow:{ *:[i64] } (AArch64adrp:{ *:[i64] } (texternalsym:{ *:[i64] }):$hi), (texternalsym:{ *:[i64] }):$low) - Complexity = 12
                  // Dst: (MOVaddrEXT:{ *:[i64] } (texternalsym:{ *:[i64] }):$hi, (texternalsym:{ *:[i64] }):$low)
/* 54118*/      0, // EndSwitchOpcode
/* 54119*/    /*Scope*/ 17, /*->54137*/
/* 54120*/      OPC_RecordChild0, // #0 = $src
/* 54121*/      OPC_RecordChild1, // #1 = $low
/* 54122*/      OPC_MoveChild1,
/* 54123*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 54126*/      OPC_MoveParent,
/* 54127*/      OPC_CheckType, MVT::i64,
/* 54129*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDlowTLS), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64addlow:{ *:[i64] } GPR64:{ *:[i64] }:$src, (tglobaltlsaddr:{ *:[i64] }):$low) - Complexity = 6
                // Dst: (ADDlowTLS:{ *:[i64] } GPR64:{ *:[i64] }:$src, (tglobaltlsaddr:{ *:[i64] }):$low)
/* 54137*/    0, /*End of Scope*/
/* 54138*/  /*SwitchOpcode*/ 101, TARGET_VAL(ISD::INTRINSIC_VOID),// ->54242
/* 54141*/    OPC_RecordNode, // #0 = 'intrinsic_void' chained node
/* 54142*/    OPC_Scope, 20, /*->54164*/ // 5 children in Scope
/* 54144*/      OPC_CheckChild1Integer, 79|128,1/*207*/, 
/* 54147*/      OPC_RecordChild2, // #1 = $imm
/* 54148*/      OPC_MoveChild2,
/* 54149*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54152*/      OPC_CheckPredicate, 55, // Predicate_imm0_127
/* 54154*/      OPC_MoveParent,
/* 54155*/      OPC_EmitMergeInputChains1_0,
/* 54156*/      OPC_EmitConvertToTarget, 1,
/* 54158*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::HINT), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (intrinsic_void 207:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_127>>:$imm) - Complexity = 12
                // Dst: (HINT (imm:{ *:[i32] }):$imm)
/* 54164*/    /*Scope*/ 20, /*->54185*/
/* 54165*/      OPC_CheckChild1Integer, 76|128,1/*204*/, 
/* 54168*/      OPC_RecordChild2, // #1 = $CRm
/* 54169*/      OPC_MoveChild2,
/* 54170*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54173*/      OPC_CheckPredicate, 56, // Predicate_imm32_0_15
/* 54175*/      OPC_MoveParent,
/* 54176*/      OPC_EmitMergeInputChains1_0,
/* 54177*/      OPC_EmitConvertToTarget, 1,
/* 54179*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::DMB), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (intrinsic_void 204:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm32_0_15>>:$CRm) - Complexity = 12
                // Dst: (DMB (imm:{ *:[i32] }):$CRm)
/* 54185*/    /*Scope*/ 20, /*->54206*/
/* 54186*/      OPC_CheckChild1Integer, 77|128,1/*205*/, 
/* 54189*/      OPC_RecordChild2, // #1 = $CRm
/* 54190*/      OPC_MoveChild2,
/* 54191*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54194*/      OPC_CheckPredicate, 56, // Predicate_imm32_0_15
/* 54196*/      OPC_MoveParent,
/* 54197*/      OPC_EmitMergeInputChains1_0,
/* 54198*/      OPC_EmitConvertToTarget, 1,
/* 54200*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::DSB), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (intrinsic_void 205:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm32_0_15>>:$CRm) - Complexity = 12
                // Dst: (DSB (imm:{ *:[i32] }):$CRm)
/* 54206*/    /*Scope*/ 20, /*->54227*/
/* 54207*/      OPC_CheckChild1Integer, 80|128,1/*208*/, 
/* 54210*/      OPC_RecordChild2, // #1 = $CRm
/* 54211*/      OPC_MoveChild2,
/* 54212*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 54215*/      OPC_CheckPredicate, 56, // Predicate_imm32_0_15
/* 54217*/      OPC_MoveParent,
/* 54218*/      OPC_EmitMergeInputChains1_0,
/* 54219*/      OPC_EmitConvertToTarget, 1,
/* 54221*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::ISB), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (intrinsic_void 208:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm32_0_15>>:$CRm) - Complexity = 12
                // Dst: (ISB (imm:{ *:[i32] }):$CRm)
/* 54227*/    /*Scope*/ 13, /*->54241*/
/* 54228*/      OPC_CheckChild1Integer, 53|128,1/*181*/, 
/* 54231*/      OPC_EmitMergeInputChains1_0,
/* 54232*/      OPC_EmitInteger, MVT::i64, 15, 
/* 54235*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::CLREX), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 181:{ *:[iPTR] }) - Complexity = 8
                // Dst: (CLREX 15:{ *:[i64] })
/* 54241*/    0, /*End of Scope*/
/* 54242*/  /*SwitchOpcode*/ 62|128,4/*574*/, TARGET_VAL(ISD::FP_TO_SINT),// ->54820
/* 54246*/    OPC_Scope, 30|128,3/*414*/, /*->54663*/ // 2 children in Scope
/* 54249*/      OPC_MoveChild0,
/* 54250*/      OPC_SwitchOpcode /*5 cases */, 71|128,1/*199*/, TARGET_VAL(ISD::FMUL),// ->54454
/* 54255*/        OPC_RecordChild0, // #0 = $Rn
/* 54256*/        OPC_RecordChild1, // #1 = $scale
/* 54257*/        OPC_SwitchType /*3 cases */, 63, MVT::f16,// ->54323
/* 54260*/          OPC_MoveParent,
/* 54261*/          OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->54292
/* 54264*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 54266*/            OPC_Scope, 11, /*->54279*/ // 2 children in Scope
/* 54268*/              OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54271*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWHri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_sint:{ *:[i32] } (fmul:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZSSWHri:{ *:[i32] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)
/* 54279*/            /*Scope*/ 11, /*->54291*/
/* 54280*/              OPC_CheckComplexPat, /*CP*/22, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54283*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWHri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_sint:{ *:[i32] } (fmul:{ *:[f16] } fixedpoint_f16_i32:{ *:[f16] }:$scale, FPR16:{ *:[f16] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZSSWHri:{ *:[i32] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)
/* 54291*/            0, /*End of Scope*/
/* 54292*/          /*SwitchType*/ 28, MVT::i64,// ->54322
/* 54294*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 54296*/            OPC_Scope, 11, /*->54309*/ // 2 children in Scope
/* 54298*/              OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54301*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXHri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_sint:{ *:[i64] } (fmul:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZSSXHri:{ *:[i64] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)
/* 54309*/            /*Scope*/ 11, /*->54321*/
/* 54310*/              OPC_CheckComplexPat, /*CP*/23, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54313*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXHri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_sint:{ *:[i64] } (fmul:{ *:[f16] } fixedpoint_f16_i64:{ *:[f16] }:$scale, FPR16:{ *:[f16] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZSSXHri:{ *:[i64] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)
/* 54321*/            0, /*End of Scope*/
/* 54322*/          0, // EndSwitchType
/* 54323*/        /*SwitchType*/ 63, MVT::f32,// ->54388
/* 54325*/          OPC_MoveParent,
/* 54326*/          OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->54357
/* 54329*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54331*/            OPC_Scope, 11, /*->54344*/ // 2 children in Scope
/* 54333*/              OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54336*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWSri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_sint:{ *:[i32] } (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZSSWSri:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)
/* 54344*/            /*Scope*/ 11, /*->54356*/
/* 54345*/              OPC_CheckComplexPat, /*CP*/24, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54348*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWSri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_sint:{ *:[i32] } (fmul:{ *:[f32] } fixedpoint_f32_i32:{ *:[f32] }:$scale, FPR32:{ *:[f32] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZSSWSri:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)
/* 54356*/            0, /*End of Scope*/
/* 54357*/          /*SwitchType*/ 28, MVT::i64,// ->54387
/* 54359*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54361*/            OPC_Scope, 11, /*->54374*/ // 2 children in Scope
/* 54363*/              OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54366*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXSri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_sint:{ *:[i64] } (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZSSXSri:{ *:[i64] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)
/* 54374*/            /*Scope*/ 11, /*->54386*/
/* 54375*/              OPC_CheckComplexPat, /*CP*/25, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54378*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXSri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_sint:{ *:[i64] } (fmul:{ *:[f32] } fixedpoint_f32_i64:{ *:[f32] }:$scale, FPR32:{ *:[f32] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZSSXSri:{ *:[i64] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)
/* 54386*/            0, /*End of Scope*/
/* 54387*/          0, // EndSwitchType
/* 54388*/        /*SwitchType*/ 63, MVT::f64,// ->54453
/* 54390*/          OPC_MoveParent,
/* 54391*/          OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->54422
/* 54394*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54396*/            OPC_Scope, 11, /*->54409*/ // 2 children in Scope
/* 54398*/              OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54401*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWDri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_sint:{ *:[i32] } (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZSSWDri:{ *:[i32] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)
/* 54409*/            /*Scope*/ 11, /*->54421*/
/* 54410*/              OPC_CheckComplexPat, /*CP*/26, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54413*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSWDri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_sint:{ *:[i32] } (fmul:{ *:[f64] } fixedpoint_f64_i32:{ *:[f64] }:$scale, FPR64:{ *:[f64] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZSSWDri:{ *:[i32] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)
/* 54421*/            0, /*End of Scope*/
/* 54422*/          /*SwitchType*/ 28, MVT::i64,// ->54452
/* 54424*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54426*/            OPC_Scope, 11, /*->54439*/ // 2 children in Scope
/* 54428*/              OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54431*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXDri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_sint:{ *:[i64] } (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZSSXDri:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)
/* 54439*/            /*Scope*/ 11, /*->54451*/
/* 54440*/              OPC_CheckComplexPat, /*CP*/27, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54443*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSSXDri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_sint:{ *:[i64] } (fmul:{ *:[f64] } fixedpoint_f64_i64:{ *:[f64] }:$scale, FPR64:{ *:[f64] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZSSXDri:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)
/* 54451*/            0, /*End of Scope*/
/* 54452*/          0, // EndSwitchType
/* 54453*/        0, // EndSwitchType
/* 54454*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FCEIL),// ->54506
/* 54457*/        OPC_RecordChild0, // #0 = $Rn
/* 54458*/        OPC_SwitchType /*2 cases */, 21, MVT::f32,// ->54482
/* 54461*/          OPC_MoveParent,
/* 54462*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->54472
/* 54465*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } (fceil:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTPSUWSr:{ *:[i32] } f32:{ *:[f32] }:$Rn)
/* 54472*/          /*SwitchType*/ 7, MVT::i64,// ->54481
/* 54474*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } (fceil:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTPSUXSr:{ *:[i64] } f32:{ *:[f32] }:$Rn)
/* 54481*/          0, // EndSwitchType
/* 54482*/        /*SwitchType*/ 21, MVT::f64,// ->54505
/* 54484*/          OPC_MoveParent,
/* 54485*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->54495
/* 54488*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } (fceil:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTPSUWDr:{ *:[i32] } f64:{ *:[f64] }:$Rn)
/* 54495*/          /*SwitchType*/ 7, MVT::i64,// ->54504
/* 54497*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPSUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } (fceil:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTPSUXDr:{ *:[i64] } f64:{ *:[f64] }:$Rn)
/* 54504*/          0, // EndSwitchType
/* 54505*/        0, // EndSwitchType
/* 54506*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FFLOOR),// ->54558
/* 54509*/        OPC_RecordChild0, // #0 = $Rn
/* 54510*/        OPC_SwitchType /*2 cases */, 21, MVT::f32,// ->54534
/* 54513*/          OPC_MoveParent,
/* 54514*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->54524
/* 54517*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTMSUWSr:{ *:[i32] } f32:{ *:[f32] }:$Rn)
/* 54524*/          /*SwitchType*/ 7, MVT::i64,// ->54533
/* 54526*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } (ffloor:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTMSUXSr:{ *:[i64] } f32:{ *:[f32] }:$Rn)
/* 54533*/          0, // EndSwitchType
/* 54534*/        /*SwitchType*/ 21, MVT::f64,// ->54557
/* 54536*/          OPC_MoveParent,
/* 54537*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->54547
/* 54540*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTMSUWDr:{ *:[i32] } f64:{ *:[f64] }:$Rn)
/* 54547*/          /*SwitchType*/ 7, MVT::i64,// ->54556
/* 54549*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMSUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } (ffloor:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTMSUXDr:{ *:[i64] } f64:{ *:[f64] }:$Rn)
/* 54556*/          0, // EndSwitchType
/* 54557*/        0, // EndSwitchType
/* 54558*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FTRUNC),// ->54610
/* 54561*/        OPC_RecordChild0, // #0 = $Rn
/* 54562*/        OPC_SwitchType /*2 cases */, 21, MVT::f32,// ->54586
/* 54565*/          OPC_MoveParent,
/* 54566*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->54576
/* 54569*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } (ftrunc:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTZSUWSr:{ *:[i32] } f32:{ *:[f32] }:$Rn)
/* 54576*/          /*SwitchType*/ 7, MVT::i64,// ->54585
/* 54578*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } (ftrunc:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTZSUXSr:{ *:[i64] } f32:{ *:[f32] }:$Rn)
/* 54585*/          0, // EndSwitchType
/* 54586*/        /*SwitchType*/ 21, MVT::f64,// ->54609
/* 54588*/          OPC_MoveParent,
/* 54589*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->54599
/* 54592*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } (ftrunc:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTZSUWDr:{ *:[i32] } f64:{ *:[f64] }:$Rn)
/* 54599*/          /*SwitchType*/ 7, MVT::i64,// ->54608
/* 54601*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } (ftrunc:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTZSUXDr:{ *:[i64] } f64:{ *:[f64] }:$Rn)
/* 54608*/          0, // EndSwitchType
/* 54609*/        0, // EndSwitchType
/* 54610*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FROUND),// ->54662
/* 54613*/        OPC_RecordChild0, // #0 = $Rn
/* 54614*/        OPC_SwitchType /*2 cases */, 21, MVT::f32,// ->54638
/* 54617*/          OPC_MoveParent,
/* 54618*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->54628
/* 54621*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } (fround:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTASUWSr:{ *:[i32] } f32:{ *:[f32] }:$Rn)
/* 54628*/          /*SwitchType*/ 7, MVT::i64,// ->54637
/* 54630*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } (fround:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTASUXSr:{ *:[i64] } f32:{ *:[f32] }:$Rn)
/* 54637*/          0, // EndSwitchType
/* 54638*/        /*SwitchType*/ 21, MVT::f64,// ->54661
/* 54640*/          OPC_MoveParent,
/* 54641*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->54651
/* 54644*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i32] } (fround:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTASUWDr:{ *:[i32] } f64:{ *:[f64] }:$Rn)
/* 54651*/          /*SwitchType*/ 7, MVT::i64,// ->54660
/* 54653*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTASUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_sint:{ *:[i64] } (fround:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTASUXDr:{ *:[i64] } f64:{ *:[f64] }:$Rn)
/* 54660*/          0, // EndSwitchType
/* 54661*/        0, // EndSwitchType
/* 54662*/      0, // EndSwitchOpcode
/* 54663*/    /*Scope*/ 26|128,1/*154*/, /*->54819*/
/* 54665*/      OPC_RecordChild0, // #0 = $Rn
/* 54666*/      OPC_Scope, 26, /*->54694*/ // 8 children in Scope
/* 54668*/        OPC_CheckChild0Type, MVT::f16,
/* 54670*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->54682
/* 54673*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 54675*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[i32] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZSUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 54682*/        /*SwitchType*/ 9, MVT::i64,// ->54693
/* 54684*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 54686*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[i64] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZSUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 54693*/        0, // EndSwitchType
/* 54694*/      /*Scope*/ 26, /*->54721*/
/* 54695*/        OPC_CheckChild0Type, MVT::f32,
/* 54697*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->54709
/* 54700*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54702*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[i32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZSUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 54709*/        /*SwitchType*/ 9, MVT::i64,// ->54720
/* 54711*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54713*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[i64] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZSUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 54720*/        0, // EndSwitchType
/* 54721*/      /*Scope*/ 26, /*->54748*/
/* 54722*/        OPC_CheckChild0Type, MVT::f64,
/* 54724*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->54736
/* 54727*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54729*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZSUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 54736*/        /*SwitchType*/ 9, MVT::i64,// ->54747
/* 54738*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54740*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:{ *:[i64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZSUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 54747*/        0, // EndSwitchType
/* 54748*/      /*Scope*/ 13, /*->54762*/
/* 54749*/        OPC_CheckChild0Type, MVT::v4f16,
/* 54751*/        OPC_CheckType, MVT::v4i16,
/* 54753*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 54755*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZSv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 54762*/      /*Scope*/ 13, /*->54776*/
/* 54763*/        OPC_CheckChild0Type, MVT::v8f16,
/* 54765*/        OPC_CheckType, MVT::v8i16,
/* 54767*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 54769*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZSv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 54776*/      /*Scope*/ 13, /*->54790*/
/* 54777*/        OPC_CheckChild0Type, MVT::v2f32,
/* 54779*/        OPC_CheckType, MVT::v2i32,
/* 54781*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 54783*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZSv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 54790*/      /*Scope*/ 13, /*->54804*/
/* 54791*/        OPC_CheckChild0Type, MVT::v4f32,
/* 54793*/        OPC_CheckType, MVT::v4i32,
/* 54795*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 54797*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZSv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 54804*/      /*Scope*/ 13, /*->54818*/
/* 54805*/        OPC_CheckChild0Type, MVT::v2f64,
/* 54807*/        OPC_CheckType, MVT::v2i64,
/* 54809*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 54811*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZSv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZSv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 54818*/      0, /*End of Scope*/
/* 54819*/    0, /*End of Scope*/
/* 54820*/  /*SwitchOpcode*/ 62|128,4/*574*/, TARGET_VAL(ISD::FP_TO_UINT),// ->55398
/* 54824*/    OPC_Scope, 30|128,3/*414*/, /*->55241*/ // 2 children in Scope
/* 54827*/      OPC_MoveChild0,
/* 54828*/      OPC_SwitchOpcode /*5 cases */, 71|128,1/*199*/, TARGET_VAL(ISD::FMUL),// ->55032
/* 54833*/        OPC_RecordChild0, // #0 = $Rn
/* 54834*/        OPC_RecordChild1, // #1 = $scale
/* 54835*/        OPC_SwitchType /*3 cases */, 63, MVT::f16,// ->54901
/* 54838*/          OPC_MoveParent,
/* 54839*/          OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->54870
/* 54842*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 54844*/            OPC_Scope, 11, /*->54857*/ // 2 children in Scope
/* 54846*/              OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54849*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWHri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_uint:{ *:[i32] } (fmul:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZUSWHri:{ *:[i32] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)
/* 54857*/            /*Scope*/ 11, /*->54869*/
/* 54858*/              OPC_CheckComplexPat, /*CP*/22, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54861*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWHri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_uint:{ *:[i32] } (fmul:{ *:[f16] } fixedpoint_f16_i32:{ *:[f16] }:$scale, FPR16:{ *:[f16] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZUSWHri:{ *:[i32] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)
/* 54869*/            0, /*End of Scope*/
/* 54870*/          /*SwitchType*/ 28, MVT::i64,// ->54900
/* 54872*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 54874*/            OPC_Scope, 11, /*->54887*/ // 2 children in Scope
/* 54876*/              OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54879*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXHri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_uint:{ *:[i64] } (fmul:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZUSXHri:{ *:[i64] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)
/* 54887*/            /*Scope*/ 11, /*->54899*/
/* 54888*/              OPC_CheckComplexPat, /*CP*/23, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54891*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXHri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_uint:{ *:[i64] } (fmul:{ *:[f16] } fixedpoint_f16_i64:{ *:[f16] }:$scale, FPR16:{ *:[f16] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZUSXHri:{ *:[i64] } FPR16:{ *:[f16] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)
/* 54899*/            0, /*End of Scope*/
/* 54900*/          0, // EndSwitchType
/* 54901*/        /*SwitchType*/ 63, MVT::f32,// ->54966
/* 54903*/          OPC_MoveParent,
/* 54904*/          OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->54935
/* 54907*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54909*/            OPC_Scope, 11, /*->54922*/ // 2 children in Scope
/* 54911*/              OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54914*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWSri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_uint:{ *:[i32] } (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZUSWSri:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)
/* 54922*/            /*Scope*/ 11, /*->54934*/
/* 54923*/              OPC_CheckComplexPat, /*CP*/24, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54926*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWSri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_uint:{ *:[i32] } (fmul:{ *:[f32] } fixedpoint_f32_i32:{ *:[f32] }:$scale, FPR32:{ *:[f32] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZUSWSri:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)
/* 54934*/            0, /*End of Scope*/
/* 54935*/          /*SwitchType*/ 28, MVT::i64,// ->54965
/* 54937*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54939*/            OPC_Scope, 11, /*->54952*/ // 2 children in Scope
/* 54941*/              OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54944*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXSri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_uint:{ *:[i64] } (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZUSXSri:{ *:[i64] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)
/* 54952*/            /*Scope*/ 11, /*->54964*/
/* 54953*/              OPC_CheckComplexPat, /*CP*/25, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/* 54956*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXSri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_uint:{ *:[i64] } (fmul:{ *:[f32] } fixedpoint_f32_i64:{ *:[f32] }:$scale, FPR32:{ *:[f32] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZUSXSri:{ *:[i64] } FPR32:{ *:[f32] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)
/* 54964*/            0, /*End of Scope*/
/* 54965*/          0, // EndSwitchType
/* 54966*/        /*SwitchType*/ 63, MVT::f64,// ->55031
/* 54968*/          OPC_MoveParent,
/* 54969*/          OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->55000
/* 54972*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 54974*/            OPC_Scope, 11, /*->54987*/ // 2 children in Scope
/* 54976*/              OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54979*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWDri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_uint:{ *:[i32] } (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZUSWDri:{ *:[i32] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)
/* 54987*/            /*Scope*/ 11, /*->54999*/
/* 54988*/              OPC_CheckComplexPat, /*CP*/26, /*#*/0, // SelectCVTFixedPosOperand<32>:$scale #2
/* 54991*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSWDri), 0,
                            MVT::i32, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_uint:{ *:[i32] } (fmul:{ *:[f64] } fixedpoint_f64_i32:{ *:[f64] }:$scale, FPR64:{ *:[f64] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZUSWDri:{ *:[i32] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)
/* 54999*/            0, /*End of Scope*/
/* 55000*/          /*SwitchType*/ 28, MVT::i64,// ->55030
/* 55002*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 55004*/            OPC_Scope, 11, /*->55017*/ // 2 children in Scope
/* 55006*/              OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 55009*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXDri), 0,
                            MVT::i64, 2/*#Ops*/, 0, 2, 
                        // Src: (fp_to_uint:{ *:[i64] } (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)) - Complexity = 12
                        // Dst: (FCVTZUSXDri:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)
/* 55017*/            /*Scope*/ 11, /*->55029*/
/* 55018*/              OPC_CheckComplexPat, /*CP*/27, /*#*/0, // SelectCVTFixedPosOperand<64>:$scale #2
/* 55021*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUSXDri), 0,
                            MVT::i64, 2/*#Ops*/, 1, 2, 
                        // Src: (fp_to_uint:{ *:[i64] } (fmul:{ *:[f64] } fixedpoint_f64_i64:{ *:[f64] }:$scale, FPR64:{ *:[f64] }:$Rn)) - Complexity = 12
                        // Dst: (FCVTZUSXDri:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)
/* 55029*/            0, /*End of Scope*/
/* 55030*/          0, // EndSwitchType
/* 55031*/        0, // EndSwitchType
/* 55032*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FCEIL),// ->55084
/* 55035*/        OPC_RecordChild0, // #0 = $Rn
/* 55036*/        OPC_SwitchType /*2 cases */, 21, MVT::f32,// ->55060
/* 55039*/          OPC_MoveParent,
/* 55040*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55050
/* 55043*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i32] } (fceil:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTPUUWSr:{ *:[i32] } f32:{ *:[f32] }:$Rn)
/* 55050*/          /*SwitchType*/ 7, MVT::i64,// ->55059
/* 55052*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i64] } (fceil:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTPUUXSr:{ *:[i64] } f32:{ *:[f32] }:$Rn)
/* 55059*/          0, // EndSwitchType
/* 55060*/        /*SwitchType*/ 21, MVT::f64,// ->55083
/* 55062*/          OPC_MoveParent,
/* 55063*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55073
/* 55066*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i32] } (fceil:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTPUUWDr:{ *:[i32] } f64:{ *:[f64] }:$Rn)
/* 55073*/          /*SwitchType*/ 7, MVT::i64,// ->55082
/* 55075*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTPUUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i64] } (fceil:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTPUUXDr:{ *:[i64] } f64:{ *:[f64] }:$Rn)
/* 55082*/          0, // EndSwitchType
/* 55083*/        0, // EndSwitchType
/* 55084*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FFLOOR),// ->55136
/* 55087*/        OPC_RecordChild0, // #0 = $Rn
/* 55088*/        OPC_SwitchType /*2 cases */, 21, MVT::f32,// ->55112
/* 55091*/          OPC_MoveParent,
/* 55092*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55102
/* 55095*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTMUUWSr:{ *:[i32] } f32:{ *:[f32] }:$Rn)
/* 55102*/          /*SwitchType*/ 7, MVT::i64,// ->55111
/* 55104*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i64] } (ffloor:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTMUUXSr:{ *:[i64] } f32:{ *:[f32] }:$Rn)
/* 55111*/          0, // EndSwitchType
/* 55112*/        /*SwitchType*/ 21, MVT::f64,// ->55135
/* 55114*/          OPC_MoveParent,
/* 55115*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55125
/* 55118*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTMUUWDr:{ *:[i32] } f64:{ *:[f64] }:$Rn)
/* 55125*/          /*SwitchType*/ 7, MVT::i64,// ->55134
/* 55127*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTMUUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i64] } (ffloor:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTMUUXDr:{ *:[i64] } f64:{ *:[f64] }:$Rn)
/* 55134*/          0, // EndSwitchType
/* 55135*/        0, // EndSwitchType
/* 55136*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FTRUNC),// ->55188
/* 55139*/        OPC_RecordChild0, // #0 = $Rn
/* 55140*/        OPC_SwitchType /*2 cases */, 21, MVT::f32,// ->55164
/* 55143*/          OPC_MoveParent,
/* 55144*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55154
/* 55147*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i32] } (ftrunc:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTZUUWSr:{ *:[i32] } f32:{ *:[f32] }:$Rn)
/* 55154*/          /*SwitchType*/ 7, MVT::i64,// ->55163
/* 55156*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i64] } (ftrunc:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTZUUXSr:{ *:[i64] } f32:{ *:[f32] }:$Rn)
/* 55163*/          0, // EndSwitchType
/* 55164*/        /*SwitchType*/ 21, MVT::f64,// ->55187
/* 55166*/          OPC_MoveParent,
/* 55167*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55177
/* 55170*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i32] } (ftrunc:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTZUUWDr:{ *:[i32] } f64:{ *:[f64] }:$Rn)
/* 55177*/          /*SwitchType*/ 7, MVT::i64,// ->55186
/* 55179*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i64] } (ftrunc:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTZUUXDr:{ *:[i64] } f64:{ *:[f64] }:$Rn)
/* 55186*/          0, // EndSwitchType
/* 55187*/        0, // EndSwitchType
/* 55188*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FROUND),// ->55240
/* 55191*/        OPC_RecordChild0, // #0 = $Rn
/* 55192*/        OPC_SwitchType /*2 cases */, 21, MVT::f32,// ->55216
/* 55195*/          OPC_MoveParent,
/* 55196*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55206
/* 55199*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUWSr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i32] } (fround:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTAUUWSr:{ *:[i32] } f32:{ *:[f32] }:$Rn)
/* 55206*/          /*SwitchType*/ 7, MVT::i64,// ->55215
/* 55208*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUXSr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i64] } (fround:{ *:[f32] } f32:{ *:[f32] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTAUUXSr:{ *:[i64] } f32:{ *:[f32] }:$Rn)
/* 55215*/          0, // EndSwitchType
/* 55216*/        /*SwitchType*/ 21, MVT::f64,// ->55239
/* 55218*/          OPC_MoveParent,
/* 55219*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55229
/* 55222*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUWDr), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i32] } (fround:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTAUUWDr:{ *:[i32] } f64:{ *:[f64] }:$Rn)
/* 55229*/          /*SwitchType*/ 7, MVT::i64,// ->55238
/* 55231*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTAUUXDr), 0,
                          MVT::i64, 1/*#Ops*/, 0, 
                      // Src: (fp_to_uint:{ *:[i64] } (fround:{ *:[f64] } f64:{ *:[f64] }:$Rn)) - Complexity = 6
                      // Dst: (FCVTAUUXDr:{ *:[i64] } f64:{ *:[f64] }:$Rn)
/* 55238*/          0, // EndSwitchType
/* 55239*/        0, // EndSwitchType
/* 55240*/      0, // EndSwitchOpcode
/* 55241*/    /*Scope*/ 26|128,1/*154*/, /*->55397*/
/* 55243*/      OPC_RecordChild0, // #0 = $Rn
/* 55244*/      OPC_Scope, 26, /*->55272*/ // 8 children in Scope
/* 55246*/        OPC_CheckChild0Type, MVT::f16,
/* 55248*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->55260
/* 55251*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 55253*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUWHr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i32] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZUUWHr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 55260*/        /*SwitchType*/ 9, MVT::i64,// ->55271
/* 55262*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 55264*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUXHr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i64] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZUUXHr:{ *:[i64] } FPR16:{ *:[f16] }:$Rn)
/* 55271*/        0, // EndSwitchType
/* 55272*/      /*Scope*/ 26, /*->55299*/
/* 55273*/        OPC_CheckChild0Type, MVT::f32,
/* 55275*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->55287
/* 55278*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 55280*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUWSr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZUUWSr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 55287*/        /*SwitchType*/ 9, MVT::i64,// ->55298
/* 55289*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 55291*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUXSr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i64] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZUUXSr:{ *:[i64] } FPR32:{ *:[f32] }:$Rn)
/* 55298*/        0, // EndSwitchType
/* 55299*/      /*Scope*/ 26, /*->55326*/
/* 55300*/        OPC_CheckChild0Type, MVT::f64,
/* 55302*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->55314
/* 55305*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 55307*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUWDr), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZUUWDr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 55314*/        /*SwitchType*/ 9, MVT::i64,// ->55325
/* 55316*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 55318*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUUXDr), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_uint:{ *:[i64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                    // Dst: (FCVTZUUXDr:{ *:[i64] } FPR64:{ *:[f64] }:$Rn)
/* 55325*/        0, // EndSwitchType
/* 55326*/      /*Scope*/ 13, /*->55340*/
/* 55327*/        OPC_CheckChild0Type, MVT::v4f16,
/* 55329*/        OPC_CheckType, MVT::v4i16,
/* 55331*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 55333*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv4f16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (fp_to_uint:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZUv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 55340*/      /*Scope*/ 13, /*->55354*/
/* 55341*/        OPC_CheckChild0Type, MVT::v8f16,
/* 55343*/        OPC_CheckType, MVT::v8i16,
/* 55345*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 55347*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv8f16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (fp_to_uint:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZUv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 55354*/      /*Scope*/ 13, /*->55368*/
/* 55355*/        OPC_CheckChild0Type, MVT::v2f32,
/* 55357*/        OPC_CheckType, MVT::v2i32,
/* 55359*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 55361*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv2f32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_uint:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZUv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 55368*/      /*Scope*/ 13, /*->55382*/
/* 55369*/        OPC_CheckChild0Type, MVT::v4f32,
/* 55371*/        OPC_CheckType, MVT::v4i32,
/* 55373*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 55375*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv4f32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_uint:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZUv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 55382*/      /*Scope*/ 13, /*->55396*/
/* 55383*/        OPC_CheckChild0Type, MVT::v2f64,
/* 55385*/        OPC_CheckType, MVT::v2i64,
/* 55387*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 55389*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTZUv2f64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (fp_to_uint:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                  // Dst: (FCVTZUv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 55396*/      0, /*End of Scope*/
/* 55397*/    0, /*End of Scope*/
/* 55398*/  /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::ROTR),// ->55580
/* 55402*/    OPC_Scope, 34, /*->55438*/ // 2 children in Scope
/* 55404*/      OPC_MoveChild0,
/* 55405*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 55408*/      OPC_RecordChild0, // #0 = $Rn
/* 55409*/      OPC_MoveParent,
/* 55410*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->55424
/* 55413*/        OPC_CheckChild1Integer, 16, 
/* 55415*/        OPC_CheckChild1Type, MVT::i64,
/* 55417*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16Wr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i32] } (bswap:{ *:[i32] } GPR32:{ *:[i32] }:$Rn), 16:{ *:[i64] }) - Complexity = 11
                  // Dst: (REV16Wr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn)
/* 55424*/      /*SwitchType*/ 11, MVT::i64,// ->55437
/* 55426*/        OPC_CheckChild1Integer, 32, 
/* 55428*/        OPC_CheckChild1Type, MVT::i64,
/* 55430*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32Xr), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i64] } (bswap:{ *:[i64] } GPR64:{ *:[i64] }:$Rn), 32:{ *:[i64] }) - Complexity = 11
                  // Dst: (REV32Xr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn)
/* 55437*/      0, // EndSwitchType
/* 55438*/    /*Scope*/ 11|128,1/*139*/, /*->55579*/
/* 55440*/      OPC_RecordChild0, // #0 = $Rn
/* 55441*/      OPC_Scope, 43, /*->55486*/ // 3 children in Scope
/* 55443*/        OPC_RecordChild1, // #1 = $imm
/* 55444*/        OPC_MoveChild1,
/* 55445*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55448*/        OPC_CheckType, MVT::i64,
/* 55450*/        OPC_Scope, 16, /*->55468*/ // 2 children in Scope
/* 55452*/          OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 55454*/          OPC_MoveParent,
/* 55455*/          OPC_CheckType, MVT::i32,
/* 55457*/          OPC_EmitConvertToTarget, 1,
/* 55459*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTRWrri), 0,
                        MVT::i32, 3/*#Ops*/, 0, 0, 2, 
                    // Src: (rotr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                    // Dst: (EXTRWrri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm)
/* 55468*/        /*Scope*/ 16, /*->55485*/
/* 55469*/          OPC_CheckPredicate, 25, // Predicate_imm0_63
/* 55471*/          OPC_MoveParent,
/* 55472*/          OPC_CheckType, MVT::i64,
/* 55474*/          OPC_EmitConvertToTarget, 1,
/* 55476*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTRXrri), 0,
                        MVT::i64, 3/*#Ops*/, 0, 0, 2, 
                    // Src: (rotr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm) - Complexity = 7
                    // Dst: (EXTRXrri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm)
/* 55485*/        0, /*End of Scope*/
/* 55486*/      /*Scope*/ 54, /*->55541*/
/* 55487*/        OPC_MoveChild1,
/* 55488*/        OPC_SwitchOpcode /*3 cases */, 14, TARGET_VAL(ISD::ZERO_EXTEND),// ->55506
/* 55492*/          OPC_RecordChild0, // #1 = $Rm
/* 55493*/          OPC_CheckType, MVT::i64,
/* 55495*/          OPC_MoveParent,
/* 55496*/          OPC_CheckType, MVT::i32,
/* 55498*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::RORVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (rotr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (RORVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 55506*/        /*SwitchOpcode*/ 14, TARGET_VAL(ISD::ANY_EXTEND),// ->55523
/* 55509*/          OPC_RecordChild0, // #1 = $Rm
/* 55510*/          OPC_CheckType, MVT::i64,
/* 55512*/          OPC_MoveParent,
/* 55513*/          OPC_CheckType, MVT::i32,
/* 55515*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::RORVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (rotr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (anyext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (RORVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 55523*/        /*SwitchOpcode*/ 14, TARGET_VAL(ISD::SIGN_EXTEND),// ->55540
/* 55526*/          OPC_RecordChild0, // #1 = $Rm
/* 55527*/          OPC_CheckType, MVT::i64,
/* 55529*/          OPC_MoveParent,
/* 55530*/          OPC_CheckType, MVT::i32,
/* 55532*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::RORVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (rotr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (RORVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 55540*/        0, // EndSwitchOpcode
/* 55541*/      /*Scope*/ 36, /*->55578*/
/* 55542*/        OPC_RecordChild1, // #1 = $Rm
/* 55543*/        OPC_CheckChild1Type, MVT::i64,
/* 55545*/        OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->55556
/* 55548*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::RORVXr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (rotr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (RORVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 55556*/        /*SwitchType*/ 19, MVT::i32,// ->55577
/* 55558*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 55561*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 55569*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::RORVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (rotr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, i64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (RORVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$Rm, sub_32:{ *:[i32] }))
/* 55577*/        0, // EndSwitchType
/* 55578*/      0, /*End of Scope*/
/* 55579*/    0, /*End of Scope*/
/* 55580*/  /*SwitchOpcode*/ 62, TARGET_VAL(ISD::BSWAP),// ->55645
/* 55583*/    OPC_Scope, 37, /*->55622*/ // 2 children in Scope
/* 55585*/      OPC_MoveChild0,
/* 55586*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 55589*/      OPC_RecordChild0, // #0 = $Rn
/* 55590*/      OPC_Scope, 14, /*->55606*/ // 2 children in Scope
/* 55592*/        OPC_CheckChild1Integer, 16, 
/* 55594*/        OPC_CheckChild1Type, MVT::i64,
/* 55596*/        OPC_MoveParent,
/* 55597*/        OPC_CheckType, MVT::i32,
/* 55599*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16Wr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (bswap:{ *:[i32] } (rotr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, 16:{ *:[i64] })) - Complexity = 11
                  // Dst: (REV16Wr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn)
/* 55606*/      /*Scope*/ 14, /*->55621*/
/* 55607*/        OPC_CheckChild1Integer, 32, 
/* 55609*/        OPC_CheckChild1Type, MVT::i64,
/* 55611*/        OPC_MoveParent,
/* 55612*/        OPC_CheckType, MVT::i64,
/* 55614*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32Xr), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (bswap:{ *:[i64] } (rotr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, 32:{ *:[i64] })) - Complexity = 11
                  // Dst: (REV32Xr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn)
/* 55621*/      0, /*End of Scope*/
/* 55622*/    /*Scope*/ 21, /*->55644*/
/* 55623*/      OPC_RecordChild0, // #0 = $Rn
/* 55624*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->55634
/* 55627*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::REVWr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (bswap:{ *:[i32] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                  // Dst: (REVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn)
/* 55634*/      /*SwitchType*/ 7, MVT::i64,// ->55643
/* 55636*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::REVXr), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (bswap:{ *:[i64] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                  // Dst: (REVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn)
/* 55643*/      0, // EndSwitchType
/* 55644*/    0, /*End of Scope*/
/* 55645*/  /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->55836
/* 55649*/    OPC_Scope, 30, /*->55681*/ // 4 children in Scope
/* 55651*/      OPC_MoveChild0,
/* 55652*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 55655*/      OPC_RecordChild0, // #0 = $Rn
/* 55656*/      OPC_CheckChild0Type, MVT::v4i32,
/* 55658*/      OPC_RecordChild1, // #1 = $idx
/* 55659*/      OPC_MoveChild1,
/* 55660*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55663*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 55665*/      OPC_CheckType, MVT::i64,
/* 55667*/      OPC_MoveParent,
/* 55668*/      OPC_MoveParent,
/* 55669*/      OPC_CheckType, MVT::i64,
/* 55671*/      OPC_EmitConvertToTarget, 1,
/* 55673*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMOVvi32to64), 0,
                    MVT::i64, 2/*#Ops*/, 0, 2, 
                // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 10
                // Dst: (SMOVvi32to64:{ *:[i64] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 55681*/    /*Scope*/ 36, /*->55718*/
/* 55682*/      OPC_RecordChild0, // #0 = $src
/* 55683*/      OPC_CheckType, MVT::i64,
/* 55685*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1
/* 55691*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 55694*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 55703*/      OPC_EmitInteger, MVT::i64, 0, 
/* 55706*/      OPC_EmitInteger, MVT::i64, 31, 
/* 55709*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                    MVT::i64, 3/*#Ops*/, 3, 4, 5, 
                // Src: (sext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3
                // Dst: (SBFMXri:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GPR32:{ *:[i32] }:$src, sub_32:{ *:[i32] }), 0:{ *:[i64] }, 31:{ *:[i64] })
/* 55718*/    /*Scope*/ 67, /*->55786*/
/* 55719*/      OPC_MoveChild0,
/* 55720*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 55723*/      OPC_RecordChild0, // #0 = $Rn
/* 55724*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->55745
/* 55727*/        OPC_CheckChild1Integer, 8, 
/* 55729*/        OPC_CheckChild1Type, MVT::i64,
/* 55731*/        OPC_MoveParent,
/* 55732*/        OPC_CheckType, MVT::v8i16,
/* 55734*/        OPC_EmitInteger, MVT::i32, 0, 
/* 55737*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv16i8_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })) - Complexity = 11
                  // Dst: (SSHLLv16i8_shift:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, 0:{ *:[i32] })
/* 55745*/      /*SwitchType*/ 18, MVT::v4i16,// ->55765
/* 55747*/        OPC_CheckChild1Integer, 4, 
/* 55749*/        OPC_CheckChild1Type, MVT::i64,
/* 55751*/        OPC_MoveParent,
/* 55752*/        OPC_CheckType, MVT::v4i32,
/* 55754*/        OPC_EmitInteger, MVT::i32, 0, 
/* 55757*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv8i16_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })) - Complexity = 11
                  // Dst: (SSHLLv8i16_shift:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, 0:{ *:[i32] })
/* 55765*/      /*SwitchType*/ 18, MVT::v2i32,// ->55785
/* 55767*/        OPC_CheckChild1Integer, 2, 
/* 55769*/        OPC_CheckChild1Type, MVT::i64,
/* 55771*/        OPC_MoveParent,
/* 55772*/        OPC_CheckType, MVT::v2i64,
/* 55774*/        OPC_EmitInteger, MVT::i32, 0, 
/* 55777*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv4i32_shift), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })) - Complexity = 11
                  // Dst: (SSHLLv4i32_shift:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, 0:{ *:[i32] })
/* 55785*/      0, // EndSwitchType
/* 55786*/    /*Scope*/ 48, /*->55835*/
/* 55787*/      OPC_RecordChild0, // #0 = $Rn
/* 55788*/      OPC_SwitchType /*3 cases */, 13, MVT::v8i16,// ->55804
/* 55791*/        OPC_CheckChild0Type, MVT::v8i8,
/* 55793*/        OPC_EmitInteger, MVT::i32, 0, 
/* 55796*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv8i8_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                  // Dst: (SSHLLv8i8_shift:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, 0:{ *:[i32] })
/* 55804*/      /*SwitchType*/ 13, MVT::v4i32,// ->55819
/* 55806*/        OPC_CheckChild0Type, MVT::v4i16,
/* 55808*/        OPC_EmitInteger, MVT::i32, 0, 
/* 55811*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (SSHLLv4i16_shift:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, 0:{ *:[i32] })
/* 55819*/      /*SwitchType*/ 13, MVT::v2i64,// ->55834
/* 55821*/        OPC_CheckChild0Type, MVT::v2i32,
/* 55823*/        OPC_EmitInteger, MVT::i32, 0, 
/* 55826*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (SSHLLv2i32_shift:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, 0:{ *:[i32] })
/* 55834*/      0, // EndSwitchType
/* 55835*/    0, /*End of Scope*/
/* 55836*/  /*SwitchOpcode*/ 98|128,2/*354*/, TARGET_VAL(ISD::SHL),// ->56194
/* 55840*/    OPC_Scope, 65|128,1/*193*/, /*->56036*/ // 2 children in Scope
/* 55843*/      OPC_MoveChild0,
/* 55844*/      OPC_SwitchOpcode /*2 cases */, 4|128,1/*132*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->55981
/* 55849*/        OPC_RecordChild0, // #0 = $Rn
/* 55850*/        OPC_MoveChild1,
/* 55851*/        OPC_Scope, 63, /*->55916*/ // 2 children in Scope
/* 55853*/          OPC_CheckValueType, MVT::i8,
/* 55855*/          OPC_MoveParent,
/* 55856*/          OPC_MoveParent,
/* 55857*/          OPC_RecordChild1, // #1 = $imm
/* 55858*/          OPC_MoveChild1,
/* 55859*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55862*/          OPC_CheckType, MVT::i64,
/* 55864*/          OPC_Scope, 24, /*->55890*/ // 2 children in Scope
/* 55866*/            OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 55868*/            OPC_MoveParent,
/* 55869*/            OPC_CheckType, MVT::i32,
/* 55871*/            OPC_EmitConvertToTarget, 1,
/* 55873*/            OPC_EmitNodeXForm, 4, 2, // i32shift_a
/* 55876*/            OPC_EmitConvertToTarget, 1,
/* 55878*/            OPC_EmitNodeXForm, 5, 4, // i32shift_sext_i8
/* 55881*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMWri), 0,
                          MVT::i32, 3/*#Ops*/, 0, 3, 5, 
                      // Src: (shl:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, i8:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 10
                      // Dst: (SBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (i32shift_a:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm), (i32shift_sext_i8:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm))
/* 55890*/          /*Scope*/ 24, /*->55915*/
/* 55891*/            OPC_CheckPredicate, 25, // Predicate_imm0_63
/* 55893*/            OPC_MoveParent,
/* 55894*/            OPC_CheckType, MVT::i64,
/* 55896*/            OPC_EmitConvertToTarget, 1,
/* 55898*/            OPC_EmitNodeXForm, 6, 2, // i64shift_a
/* 55901*/            OPC_EmitConvertToTarget, 1,
/* 55903*/            OPC_EmitNodeXForm, 7, 4, // i64shift_sext_i8
/* 55906*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                          MVT::i64, 3/*#Ops*/, 0, 3, 5, 
                      // Src: (shl:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i8:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm) - Complexity = 10
                      // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (i64shift_a:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm), (i64shift_sext_i8:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm))
/* 55915*/          0, /*End of Scope*/
/* 55916*/        /*Scope*/ 63, /*->55980*/
/* 55917*/          OPC_CheckValueType, MVT::i16,
/* 55919*/          OPC_MoveParent,
/* 55920*/          OPC_MoveParent,
/* 55921*/          OPC_RecordChild1, // #1 = $imm
/* 55922*/          OPC_MoveChild1,
/* 55923*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55926*/          OPC_CheckType, MVT::i64,
/* 55928*/          OPC_Scope, 24, /*->55954*/ // 2 children in Scope
/* 55930*/            OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 55932*/            OPC_MoveParent,
/* 55933*/            OPC_CheckType, MVT::i32,
/* 55935*/            OPC_EmitConvertToTarget, 1,
/* 55937*/            OPC_EmitNodeXForm, 4, 2, // i32shift_a
/* 55940*/            OPC_EmitConvertToTarget, 1,
/* 55942*/            OPC_EmitNodeXForm, 8, 4, // i32shift_sext_i16
/* 55945*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMWri), 0,
                          MVT::i32, 3/*#Ops*/, 0, 3, 5, 
                      // Src: (shl:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, i16:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 10
                      // Dst: (SBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (i32shift_a:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm), (i32shift_sext_i16:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm))
/* 55954*/          /*Scope*/ 24, /*->55979*/
/* 55955*/            OPC_CheckPredicate, 25, // Predicate_imm0_63
/* 55957*/            OPC_MoveParent,
/* 55958*/            OPC_CheckType, MVT::i64,
/* 55960*/            OPC_EmitConvertToTarget, 1,
/* 55962*/            OPC_EmitNodeXForm, 6, 2, // i64shift_a
/* 55965*/            OPC_EmitConvertToTarget, 1,
/* 55967*/            OPC_EmitNodeXForm, 9, 4, // i64shift_sext_i16
/* 55970*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                          MVT::i64, 3/*#Ops*/, 0, 3, 5, 
                      // Src: (shl:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, i16:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm) - Complexity = 10
                      // Dst: (SBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (i64shift_a:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm), (i64shift_sext_i16:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm))
/* 55979*/          0, /*End of Scope*/
/* 55980*/        0, /*End of Scope*/
/* 55981*/      /*SwitchOpcode*/ 51, TARGET_VAL(ISD::SIGN_EXTEND),// ->56035
/* 55984*/        OPC_RecordChild0, // #0 = $Rn
/* 55985*/        OPC_MoveParent,
/* 55986*/        OPC_RecordChild1, // #1 = $imm
/* 55987*/        OPC_MoveChild1,
/* 55988*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55991*/        OPC_CheckPredicate, 25, // Predicate_imm0_63
/* 55993*/        OPC_CheckType, MVT::i64,
/* 55995*/        OPC_MoveParent,
/* 55996*/        OPC_CheckType, MVT::i64,
/* 55998*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 56004*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 56007*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 56016*/        OPC_EmitConvertToTarget, 1,
/* 56018*/        OPC_EmitNodeXForm, 6, 5, // i64shift_a
/* 56021*/        OPC_EmitConvertToTarget, 1,
/* 56023*/        OPC_EmitNodeXForm, 10, 7, // i64shift_sext_i32
/* 56026*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBFMXri), 0,
                      MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                  // Src: (shl:{ *:[i64] } (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rn), (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm) - Complexity = 10
                  // Dst: (SBFMXri:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GPR32:{ *:[i32] }:$Rn, sub_32:{ *:[i32] }), (i64shift_a:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm), (i64shift_sext_i32:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm))
/* 56035*/      0, // EndSwitchOpcode
/* 56036*/    /*Scope*/ 27|128,1/*155*/, /*->56193*/
/* 56038*/      OPC_RecordChild0, // #0 = $Rn
/* 56039*/      OPC_Scope, 59, /*->56100*/ // 3 children in Scope
/* 56041*/        OPC_RecordChild1, // #1 = $imm
/* 56042*/        OPC_MoveChild1,
/* 56043*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56046*/        OPC_CheckType, MVT::i64,
/* 56048*/        OPC_Scope, 24, /*->56074*/ // 2 children in Scope
/* 56050*/          OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 56052*/          OPC_MoveParent,
/* 56053*/          OPC_CheckType, MVT::i32,
/* 56055*/          OPC_EmitConvertToTarget, 1,
/* 56057*/          OPC_EmitNodeXForm, 4, 2, // i32shift_a
/* 56060*/          OPC_EmitConvertToTarget, 1,
/* 56062*/          OPC_EmitNodeXForm, 11, 4, // i32shift_b
/* 56065*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UBFMWri), 0,
                        MVT::i32, 3/*#Ops*/, 0, 3, 5, 
                    // Src: (shl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                    // Dst: (UBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (i32shift_a:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm), (i32shift_b:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm))
/* 56074*/        /*Scope*/ 24, /*->56099*/
/* 56075*/          OPC_CheckPredicate, 25, // Predicate_imm0_63
/* 56077*/          OPC_MoveParent,
/* 56078*/          OPC_CheckType, MVT::i64,
/* 56080*/          OPC_EmitConvertToTarget, 1,
/* 56082*/          OPC_EmitNodeXForm, 6, 2, // i64shift_a
/* 56085*/          OPC_EmitConvertToTarget, 1,
/* 56087*/          OPC_EmitNodeXForm, 12, 4, // i64shift_b
/* 56090*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UBFMXri), 0,
                        MVT::i64, 3/*#Ops*/, 0, 3, 5, 
                    // Src: (shl:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm) - Complexity = 7
                    // Dst: (UBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (i64shift_a:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm), (i64shift_b:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm))
/* 56099*/        0, /*End of Scope*/
/* 56100*/      /*Scope*/ 54, /*->56155*/
/* 56101*/        OPC_MoveChild1,
/* 56102*/        OPC_SwitchOpcode /*3 cases */, 14, TARGET_VAL(ISD::ZERO_EXTEND),// ->56120
/* 56106*/          OPC_RecordChild0, // #1 = $Rm
/* 56107*/          OPC_CheckType, MVT::i64,
/* 56109*/          OPC_MoveParent,
/* 56110*/          OPC_CheckType, MVT::i32,
/* 56112*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSLVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (shl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (LSLVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 56120*/        /*SwitchOpcode*/ 14, TARGET_VAL(ISD::ANY_EXTEND),// ->56137
/* 56123*/          OPC_RecordChild0, // #1 = $Rm
/* 56124*/          OPC_CheckType, MVT::i64,
/* 56126*/          OPC_MoveParent,
/* 56127*/          OPC_CheckType, MVT::i32,
/* 56129*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSLVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (shl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (anyext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (LSLVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 56137*/        /*SwitchOpcode*/ 14, TARGET_VAL(ISD::SIGN_EXTEND),// ->56154
/* 56140*/          OPC_RecordChild0, // #1 = $Rm
/* 56141*/          OPC_CheckType, MVT::i64,
/* 56143*/          OPC_MoveParent,
/* 56144*/          OPC_CheckType, MVT::i32,
/* 56146*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSLVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (shl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (LSLVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 56154*/        0, // EndSwitchOpcode
/* 56155*/      /*Scope*/ 36, /*->56192*/
/* 56156*/        OPC_RecordChild1, // #1 = $Rm
/* 56157*/        OPC_CheckChild1Type, MVT::i64,
/* 56159*/        OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->56170
/* 56162*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSLVXr), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (shl:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (LSLVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 56170*/        /*SwitchType*/ 19, MVT::i32,// ->56191
/* 56172*/          OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 56175*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 56183*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSLVWr), 0,
                        MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (shl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, i64:{ *:[i64] }:$Rm) - Complexity = 3
                    // Dst: (LSLVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$Rm, sub_32:{ *:[i32] }))
/* 56191*/        0, // EndSwitchType
/* 56192*/      0, /*End of Scope*/
/* 56193*/    0, /*End of Scope*/
/* 56194*/  /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_START),// ->56219
/* 56197*/    OPC_RecordNode, // #0 = 'AArch64callseq_start' chained node
/* 56198*/    OPC_RecordChild1, // #1 = $amt1
/* 56199*/    OPC_MoveChild1,
/* 56200*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56203*/    OPC_MoveParent,
/* 56204*/    OPC_RecordChild2, // #2 = $amt2
/* 56205*/    OPC_MoveChild2,
/* 56206*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56209*/    OPC_MoveParent,
/* 56210*/    OPC_EmitMergeInputChains1_0,
/* 56211*/    OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
                  MVT::i64, 2/*#Ops*/, 1, 2, 
              // Src: (AArch64callseq_start (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
              // Dst: (ADJCALLSTACKDOWN:{ *:[i64] } (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2)
/* 56219*/  /*SwitchOpcode*/ 23, TARGET_VAL(ISD::CALLSEQ_END),// ->56245
/* 56222*/    OPC_RecordNode, // #0 = 'AArch64callseq_end' chained node
/* 56223*/    OPC_CaptureGlueInput,
/* 56224*/    OPC_RecordChild1, // #1 = $amt1
/* 56225*/    OPC_MoveChild1,
/* 56226*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56229*/    OPC_MoveParent,
/* 56230*/    OPC_RecordChild2, // #2 = $amt2
/* 56231*/    OPC_MoveChild2,
/* 56232*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56235*/    OPC_MoveParent,
/* 56236*/    OPC_EmitMergeInputChains1_0,
/* 56237*/    OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i64, 2/*#Ops*/, 1, 2, 
              // Src: (AArch64callseq_end (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
              // Dst: (ADJCALLSTACKUP:{ *:[i64] } (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2)
/* 56245*/  /*SwitchOpcode*/ 123, TARGET_VAL(AArch64ISD::FCCMP),// ->56371
/* 56248*/    OPC_RecordChild0, // #0 = $Rn
/* 56249*/    OPC_Scope, 39, /*->56290*/ // 3 children in Scope
/* 56251*/      OPC_CheckChild0Type, MVT::f16,
/* 56253*/      OPC_RecordChild1, // #1 = $Rm
/* 56254*/      OPC_RecordChild2, // #2 = $nzcv
/* 56255*/      OPC_MoveChild2,
/* 56256*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56259*/      OPC_CheckType, MVT::i32,
/* 56261*/      OPC_MoveParent,
/* 56262*/      OPC_RecordChild3, // #3 = $cond
/* 56263*/      OPC_MoveChild3,
/* 56264*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56267*/      OPC_CheckType, MVT::i32,
/* 56269*/      OPC_MoveParent,
/* 56270*/      OPC_RecordChild4, // #4 = physreg input NZCV
/* 56271*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 56273*/      OPC_EmitConvertToTarget, 2,
/* 56275*/      OPC_EmitConvertToTarget, 3,
/* 56277*/      OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 56280*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCCMPHrr), 0|OPFL_GlueInput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 5, 6, 
                // Src: (AArch64fccmp:{ *:[i32] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 9
                // Dst: (FCCMPHrr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 56290*/    /*Scope*/ 39, /*->56330*/
/* 56291*/      OPC_CheckChild0Type, MVT::f32,
/* 56293*/      OPC_RecordChild1, // #1 = $Rm
/* 56294*/      OPC_RecordChild2, // #2 = $nzcv
/* 56295*/      OPC_MoveChild2,
/* 56296*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56299*/      OPC_CheckType, MVT::i32,
/* 56301*/      OPC_MoveParent,
/* 56302*/      OPC_RecordChild3, // #3 = $cond
/* 56303*/      OPC_MoveChild3,
/* 56304*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56307*/      OPC_CheckType, MVT::i32,
/* 56309*/      OPC_MoveParent,
/* 56310*/      OPC_RecordChild4, // #4 = physreg input NZCV
/* 56311*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 56313*/      OPC_EmitConvertToTarget, 2,
/* 56315*/      OPC_EmitConvertToTarget, 3,
/* 56317*/      OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 56320*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCCMPSrr), 0|OPFL_GlueInput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 5, 6, 
                // Src: (AArch64fccmp:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 9
                // Dst: (FCCMPSrr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 56330*/    /*Scope*/ 39, /*->56370*/
/* 56331*/      OPC_CheckChild0Type, MVT::f64,
/* 56333*/      OPC_RecordChild1, // #1 = $Rm
/* 56334*/      OPC_RecordChild2, // #2 = $nzcv
/* 56335*/      OPC_MoveChild2,
/* 56336*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56339*/      OPC_CheckType, MVT::i32,
/* 56341*/      OPC_MoveParent,
/* 56342*/      OPC_RecordChild3, // #3 = $cond
/* 56343*/      OPC_MoveChild3,
/* 56344*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56347*/      OPC_CheckType, MVT::i32,
/* 56349*/      OPC_MoveParent,
/* 56350*/      OPC_RecordChild4, // #4 = physreg input NZCV
/* 56351*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 56353*/      OPC_EmitConvertToTarget, 2,
/* 56355*/      OPC_EmitConvertToTarget, 3,
/* 56357*/      OPC_EmitCopyToReg, 4, AArch64::NZCV,
/* 56360*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCCMPDrr), 0|OPFL_GlueInput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 5, 6, 
                // Src: (AArch64fccmp:{ *:[i32] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 9
                // Dst: (FCCMPDrr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, (imm:{ *:[i32] }):$nzcv, (imm:{ *:[i32] }):$cond)
/* 56370*/    0, /*End of Scope*/
/* 56371*/  /*SwitchOpcode*/ 74, TARGET_VAL(AArch64ISD::TC_RETURN),// ->56448
/* 56374*/    OPC_RecordNode, // #0 = 'AArch64tcret' chained node
/* 56375*/    OPC_CaptureGlueInput,
/* 56376*/    OPC_RecordChild1, // #1 = $dst
/* 56377*/    OPC_Scope, 47, /*->56426*/ // 2 children in Scope
/* 56379*/      OPC_MoveChild1,
/* 56380*/      OPC_SwitchOpcode /*2 cases */, 19, TARGET_VAL(ISD::TargetGlobalAddress),// ->56403
/* 56384*/        OPC_MoveParent,
/* 56385*/        OPC_RecordChild2, // #2 = $FPDiff
/* 56386*/        OPC_MoveChild2,
/* 56387*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56390*/        OPC_CheckType, MVT::i32,
/* 56392*/        OPC_MoveParent,
/* 56393*/        OPC_EmitMergeInputChains1_0,
/* 56394*/        OPC_EmitConvertToTarget, 2,
/* 56396*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                      2/*#Ops*/, 1, 3, 
                  // Src: (AArch64tcret (tglobaladdr:{ *:[iPTR] }):$dst, (timm:{ *:[i32] }):$FPDiff) - Complexity = 9
                  // Dst: (TCRETURNdi (texternalsym:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$FPDiff)
/* 56403*/      /*SwitchOpcode*/ 19, TARGET_VAL(ISD::TargetExternalSymbol),// ->56425
/* 56406*/        OPC_MoveParent,
/* 56407*/        OPC_RecordChild2, // #2 = $FPDiff
/* 56408*/        OPC_MoveChild2,
/* 56409*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56412*/        OPC_CheckType, MVT::i32,
/* 56414*/        OPC_MoveParent,
/* 56415*/        OPC_EmitMergeInputChains1_0,
/* 56416*/        OPC_EmitConvertToTarget, 2,
/* 56418*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                      2/*#Ops*/, 1, 3, 
                  // Src: (AArch64tcret (texternalsym:{ *:[iPTR] }):$dst, (timm:{ *:[i32] }):$FPDiff) - Complexity = 9
                  // Dst: (TCRETURNdi (texternalsym:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$FPDiff)
/* 56425*/      0, // EndSwitchOpcode
/* 56426*/    /*Scope*/ 20, /*->56447*/
/* 56427*/      OPC_CheckChild1Type, MVT::i64,
/* 56429*/      OPC_RecordChild2, // #2 = $FPDiff
/* 56430*/      OPC_MoveChild2,
/* 56431*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56434*/      OPC_CheckType, MVT::i32,
/* 56436*/      OPC_MoveParent,
/* 56437*/      OPC_EmitMergeInputChains1_0,
/* 56438*/      OPC_EmitConvertToTarget, 2,
/* 56440*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::TCRETURNri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                    2/*#Ops*/, 1, 3, 
                // Src: (AArch64tcret tcGPR64:{ *:[i64] }:$dst, (timm:{ *:[i32] }):$FPDiff) - Complexity = 6
                // Dst: (TCRETURNri tcGPR64:{ *:[i64] }:$dst, (imm:{ *:[i32] }):$FPDiff)
/* 56447*/    0, /*End of Scope*/
/* 56448*/  /*SwitchOpcode*/ 45, TARGET_VAL(AArch64ISD::EXTR),// ->56496
/* 56451*/    OPC_RecordChild0, // #0 = $Rn
/* 56452*/    OPC_RecordChild1, // #1 = $Rm
/* 56453*/    OPC_RecordChild2, // #2 = $imm
/* 56454*/    OPC_MoveChild2,
/* 56455*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56458*/    OPC_CheckType, MVT::i64,
/* 56460*/    OPC_Scope, 16, /*->56478*/ // 2 children in Scope
/* 56462*/      OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 56464*/      OPC_MoveParent,
/* 56465*/      OPC_CheckType, MVT::i32,
/* 56467*/      OPC_EmitConvertToTarget, 2,
/* 56469*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTRWrri), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64Extr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                // Dst: (EXTRWrri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, (imm:{ *:[i64] }):$imm)
/* 56478*/    /*Scope*/ 16, /*->56495*/
/* 56479*/      OPC_CheckPredicate, 25, // Predicate_imm0_63
/* 56481*/      OPC_MoveParent,
/* 56482*/      OPC_CheckType, MVT::i64,
/* 56484*/      OPC_EmitConvertToTarget, 2,
/* 56486*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTRXrri), 0,
                    MVT::i64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64Extr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm) - Complexity = 7
                // Dst: (EXTRXrri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, (imm:{ *:[i64] }):$imm)
/* 56495*/    0, /*End of Scope*/
/* 56496*/  /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::SRL),// ->56645
/* 56500*/    OPC_RecordChild0, // #0 = $Rn
/* 56501*/    OPC_Scope, 49, /*->56552*/ // 3 children in Scope
/* 56503*/      OPC_RecordChild1, // #1 = $imm
/* 56504*/      OPC_MoveChild1,
/* 56505*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56508*/      OPC_CheckType, MVT::i64,
/* 56510*/      OPC_Scope, 19, /*->56531*/ // 2 children in Scope
/* 56512*/        OPC_CheckPredicate, 24, // Predicate_imm0_31
/* 56514*/        OPC_MoveParent,
/* 56515*/        OPC_CheckType, MVT::i32,
/* 56517*/        OPC_EmitConvertToTarget, 1,
/* 56519*/        OPC_EmitInteger, MVT::i64, 31, 
/* 56522*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UBFMWri), 0,
                      MVT::i32, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (srl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                  // Dst: (UBFMWri:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_31>>:$imm, 31:{ *:[i64] })
/* 56531*/      /*Scope*/ 19, /*->56551*/
/* 56532*/        OPC_CheckPredicate, 25, // Predicate_imm0_63
/* 56534*/        OPC_MoveParent,
/* 56535*/        OPC_CheckType, MVT::i64,
/* 56537*/        OPC_EmitConvertToTarget, 1,
/* 56539*/        OPC_EmitInteger, MVT::i64, 63, 
/* 56542*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UBFMXri), 0,
                      MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (srl:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm) - Complexity = 7
                  // Dst: (UBFMXri:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_imm0_63>>:$imm, 63:{ *:[i64] })
/* 56551*/      0, /*End of Scope*/
/* 56552*/    /*Scope*/ 54, /*->56607*/
/* 56553*/      OPC_MoveChild1,
/* 56554*/      OPC_SwitchOpcode /*3 cases */, 14, TARGET_VAL(ISD::ZERO_EXTEND),// ->56572
/* 56558*/        OPC_RecordChild0, // #1 = $Rm
/* 56559*/        OPC_CheckType, MVT::i64,
/* 56561*/        OPC_MoveParent,
/* 56562*/        OPC_CheckType, MVT::i32,
/* 56564*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSRVWr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (srl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (zext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (LSRVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 56572*/      /*SwitchOpcode*/ 14, TARGET_VAL(ISD::ANY_EXTEND),// ->56589
/* 56575*/        OPC_RecordChild0, // #1 = $Rm
/* 56576*/        OPC_CheckType, MVT::i64,
/* 56578*/        OPC_MoveParent,
/* 56579*/        OPC_CheckType, MVT::i32,
/* 56581*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSRVWr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (srl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (anyext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (LSRVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 56589*/      /*SwitchOpcode*/ 14, TARGET_VAL(ISD::SIGN_EXTEND),// ->56606
/* 56592*/        OPC_RecordChild0, // #1 = $Rm
/* 56593*/        OPC_CheckType, MVT::i64,
/* 56595*/        OPC_MoveParent,
/* 56596*/        OPC_CheckType, MVT::i32,
/* 56598*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSRVWr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (srl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (sext:{ *:[i64] } GPR32:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (LSRVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 56606*/      0, // EndSwitchOpcode
/* 56607*/    /*Scope*/ 36, /*->56644*/
/* 56608*/      OPC_RecordChild1, // #1 = $Rm
/* 56609*/      OPC_CheckChild1Type, MVT::i64,
/* 56611*/      OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->56622
/* 56614*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSRVXr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (srl:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                  // Dst: (LSRVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 56622*/      /*SwitchType*/ 19, MVT::i32,// ->56643
/* 56624*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 56627*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 56635*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LSRVWr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (srl:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, i64:{ *:[i64] }:$Rm) - Complexity = 3
                  // Dst: (LSRVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, (EXTRACT_SUBREG:{ *:[i32] } i64:{ *:[i64] }:$Rm, sub_32:{ *:[i32] }))
/* 56643*/      0, // EndSwitchType
/* 56644*/    0, /*End of Scope*/
/* 56645*/  /*SwitchOpcode*/ 99, TARGET_VAL(AArch64ISD::TBZ),// ->56747
/* 56648*/    OPC_RecordNode, // #0 = 'AArch64tbz' chained node
/* 56649*/    OPC_RecordChild1, // #1 = $Rt
/* 56650*/    OPC_Scope, 29, /*->56681*/ // 2 children in Scope
/* 56652*/      OPC_CheckChild1Type, MVT::i32,
/* 56654*/      OPC_RecordChild2, // #2 = $bit_off
/* 56655*/      OPC_MoveChild2,
/* 56656*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56659*/      OPC_CheckPredicate, 20, // Predicate_tbz_imm0_31_diag
/* 56661*/      OPC_CheckType, MVT::i64,
/* 56663*/      OPC_MoveParent,
/* 56664*/      OPC_RecordChild3, // #3 = $target
/* 56665*/      OPC_MoveChild3,
/* 56666*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 56669*/      OPC_MoveParent,
/* 56670*/      OPC_EmitMergeInputChains1_0,
/* 56671*/      OPC_EmitConvertToTarget, 2,
/* 56673*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::TBZW), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 4, 3, 
                // Src: (AArch64tbz GPR32:{ *:[i32] }:$Rt, (imm:{ *:[i64] })<<P:Predicate_tbz_imm0_31_diag>>:$bit_off, (bb:{ *:[Other] }):$target) - Complexity = 7
                // Dst: (TBZW GPR32:{ *:[i32] }:$Rt, (imm:{ *:[i64] }):$bit_off, (bb:{ *:[Other] }):$target)
/* 56681*/    /*Scope*/ 64, /*->56746*/
/* 56682*/      OPC_CheckChild1Type, MVT::i64,
/* 56684*/      OPC_RecordChild2, // #2 = $bit_off
/* 56685*/      OPC_MoveChild2,
/* 56686*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56689*/      OPC_CheckType, MVT::i64,
/* 56691*/      OPC_Scope, 20, /*->56713*/ // 2 children in Scope
/* 56693*/        OPC_CheckPredicate, 57, // Predicate_tbz_imm32_63
/* 56695*/        OPC_MoveParent,
/* 56696*/        OPC_RecordChild3, // #3 = $target
/* 56697*/        OPC_MoveChild3,
/* 56698*/        OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 56701*/        OPC_MoveParent,
/* 56702*/        OPC_EmitMergeInputChains1_0,
/* 56703*/        OPC_EmitConvertToTarget, 2,
/* 56705*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::TBZX), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 4, 3, 
                  // Src: (AArch64tbz GPR64:{ *:[i64] }:$Rt, (imm:{ *:[i64] })<<P:Predicate_tbz_imm32_63>>:$bit_off, (bb:{ *:[Other] }):$target) - Complexity = 7
                  // Dst: (TBZX GPR64:{ *:[i64] }:$Rt, (imm:{ *:[i64] }):$bit_off, (bb:{ *:[Other] }):$target)
/* 56713*/      /*Scope*/ 31, /*->56745*/
/* 56714*/        OPC_CheckPredicate, 20, // Predicate_tbz_imm0_31_diag
/* 56716*/        OPC_MoveParent,
/* 56717*/        OPC_RecordChild3, // #3 = $target
/* 56718*/        OPC_MoveChild3,
/* 56719*/        OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 56722*/        OPC_MoveParent,
/* 56723*/        OPC_EmitMergeInputChains1_0,
/* 56724*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 56727*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 56735*/        OPC_EmitConvertToTarget, 2,
/* 56737*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::TBZW), 0|OPFL_Chain,
                      3/*#Ops*/, 5, 6, 3, 
                  // Src: (AArch64tbz GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_tbz_imm0_31_diag>>:$imm, (bb:{ *:[Other] }):$target) - Complexity = 7
                  // Dst: (TBZW (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, sub_32:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_tbz_imm0_31_diag>>:$imm, (bb:{ *:[Other] }):$target)
/* 56745*/      0, /*End of Scope*/
/* 56746*/    0, /*End of Scope*/
/* 56747*/  /*SwitchOpcode*/ 99, TARGET_VAL(AArch64ISD::TBNZ),// ->56849
/* 56750*/    OPC_RecordNode, // #0 = 'AArch64tbnz' chained node
/* 56751*/    OPC_RecordChild1, // #1 = $Rt
/* 56752*/    OPC_Scope, 29, /*->56783*/ // 2 children in Scope
/* 56754*/      OPC_CheckChild1Type, MVT::i32,
/* 56756*/      OPC_RecordChild2, // #2 = $bit_off
/* 56757*/      OPC_MoveChild2,
/* 56758*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56761*/      OPC_CheckPredicate, 20, // Predicate_tbz_imm0_31_diag
/* 56763*/      OPC_CheckType, MVT::i64,
/* 56765*/      OPC_MoveParent,
/* 56766*/      OPC_RecordChild3, // #3 = $target
/* 56767*/      OPC_MoveChild3,
/* 56768*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 56771*/      OPC_MoveParent,
/* 56772*/      OPC_EmitMergeInputChains1_0,
/* 56773*/      OPC_EmitConvertToTarget, 2,
/* 56775*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::TBNZW), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 4, 3, 
                // Src: (AArch64tbnz GPR32:{ *:[i32] }:$Rt, (imm:{ *:[i64] })<<P:Predicate_tbz_imm0_31_diag>>:$bit_off, (bb:{ *:[Other] }):$target) - Complexity = 7
                // Dst: (TBNZW GPR32:{ *:[i32] }:$Rt, (imm:{ *:[i64] }):$bit_off, (bb:{ *:[Other] }):$target)
/* 56783*/    /*Scope*/ 64, /*->56848*/
/* 56784*/      OPC_CheckChild1Type, MVT::i64,
/* 56786*/      OPC_RecordChild2, // #2 = $bit_off
/* 56787*/      OPC_MoveChild2,
/* 56788*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56791*/      OPC_CheckType, MVT::i64,
/* 56793*/      OPC_Scope, 20, /*->56815*/ // 2 children in Scope
/* 56795*/        OPC_CheckPredicate, 57, // Predicate_tbz_imm32_63
/* 56797*/        OPC_MoveParent,
/* 56798*/        OPC_RecordChild3, // #3 = $target
/* 56799*/        OPC_MoveChild3,
/* 56800*/        OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 56803*/        OPC_MoveParent,
/* 56804*/        OPC_EmitMergeInputChains1_0,
/* 56805*/        OPC_EmitConvertToTarget, 2,
/* 56807*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::TBNZX), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 4, 3, 
                  // Src: (AArch64tbnz GPR64:{ *:[i64] }:$Rt, (imm:{ *:[i64] })<<P:Predicate_tbz_imm32_63>>:$bit_off, (bb:{ *:[Other] }):$target) - Complexity = 7
                  // Dst: (TBNZX GPR64:{ *:[i64] }:$Rt, (imm:{ *:[i64] }):$bit_off, (bb:{ *:[Other] }):$target)
/* 56815*/      /*Scope*/ 31, /*->56847*/
/* 56816*/        OPC_CheckPredicate, 20, // Predicate_tbz_imm0_31_diag
/* 56818*/        OPC_MoveParent,
/* 56819*/        OPC_RecordChild3, // #3 = $target
/* 56820*/        OPC_MoveChild3,
/* 56821*/        OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 56824*/        OPC_MoveParent,
/* 56825*/        OPC_EmitMergeInputChains1_0,
/* 56826*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 56829*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 56837*/        OPC_EmitConvertToTarget, 2,
/* 56839*/        OPC_MorphNodeTo0, TARGET_VAL(AArch64::TBNZW), 0|OPFL_Chain,
                      3/*#Ops*/, 5, 6, 3, 
                  // Src: (AArch64tbnz GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_tbz_imm0_31_diag>>:$imm, (bb:{ *:[Other] }):$target) - Complexity = 7
                  // Dst: (TBNZW (EXTRACT_SUBREG:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, sub_32:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_tbz_imm0_31_diag>>:$imm, (bb:{ *:[Other] }):$target)
/* 56847*/      0, /*End of Scope*/
/* 56848*/    0, /*End of Scope*/
/* 56849*/  /*SwitchOpcode*/ 105, TARGET_VAL(AArch64ISD::FCMP),// ->56957
/* 56852*/    OPC_RecordChild0, // #0 = $Rn
/* 56853*/    OPC_Scope, 33, /*->56888*/ // 3 children in Scope
/* 56855*/      OPC_CheckChild0Type, MVT::f16,
/* 56857*/      OPC_Scope, 16, /*->56875*/ // 2 children in Scope
/* 56859*/        OPC_MoveChild1,
/* 56860*/        OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/* 56863*/        OPC_CheckPredicate, 58, // Predicate_fpimm0
/* 56865*/        OPC_MoveParent,
/* 56866*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 56868*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMPHri), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (AArch64fcmp FPR16:{ *:[f16] }:$Rn, (fpimm:{ *:[f16] })<<P:Predicate_fpimm0>>) - Complexity = 7
                  // Dst: (FCMPHri:{ *:[i32] } FPR16:{ *:[f16] }:$Rn)
/* 56875*/      /*Scope*/ 11, /*->56887*/
/* 56876*/        OPC_RecordChild1, // #1 = $Rm
/* 56877*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 56879*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMPHrr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64fcmp FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                  // Dst: (FCMPHrr:{ *:[i32] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 56887*/      0, /*End of Scope*/
/* 56888*/    /*Scope*/ 33, /*->56922*/
/* 56889*/      OPC_CheckChild0Type, MVT::f32,
/* 56891*/      OPC_Scope, 16, /*->56909*/ // 2 children in Scope
/* 56893*/        OPC_MoveChild1,
/* 56894*/        OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/* 56897*/        OPC_CheckPredicate, 58, // Predicate_fpimm0
/* 56899*/        OPC_MoveParent,
/* 56900*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 56902*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMPSri), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (AArch64fcmp FPR32:{ *:[f32] }:$Rn, (fpimm:{ *:[f32] })<<P:Predicate_fpimm0>>) - Complexity = 7
                  // Dst: (FCMPSri:{ *:[i32] } FPR32:{ *:[f32] }:$Rn)
/* 56909*/      /*Scope*/ 11, /*->56921*/
/* 56910*/        OPC_RecordChild1, // #1 = $Rm
/* 56911*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 56913*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMPSrr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64fcmp FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                  // Dst: (FCMPSrr:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 56921*/      0, /*End of Scope*/
/* 56922*/    /*Scope*/ 33, /*->56956*/
/* 56923*/      OPC_CheckChild0Type, MVT::f64,
/* 56925*/      OPC_Scope, 16, /*->56943*/ // 2 children in Scope
/* 56927*/        OPC_MoveChild1,
/* 56928*/        OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/* 56931*/        OPC_CheckPredicate, 58, // Predicate_fpimm0
/* 56933*/        OPC_MoveParent,
/* 56934*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 56936*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMPDri), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (AArch64fcmp FPR64:{ *:[f64] }:$Rn, (fpimm:{ *:[f64] })<<P:Predicate_fpimm0>>) - Complexity = 7
                  // Dst: (FCMPDri:{ *:[i32] } FPR64:{ *:[f64] }:$Rn)
/* 56943*/      /*Scope*/ 11, /*->56955*/
/* 56944*/        OPC_RecordChild1, // #1 = $Rm
/* 56945*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 56947*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMPDrr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64fcmp FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                  // Dst: (FCMPDrr:{ *:[i32] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 56955*/      0, /*End of Scope*/
/* 56956*/    0, /*End of Scope*/
/* 56957*/  /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(AArch64ISD::SQSHLU_I),// ->57143
/* 56961*/    OPC_RecordChild0, // #0 = $Rn
/* 56962*/    OPC_RecordChild1, // #1 = $imm
/* 56963*/    OPC_MoveChild1,
/* 56964*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56967*/    OPC_CheckType, MVT::i32,
/* 56969*/    OPC_Scope, 17, /*->56988*/ // 6 children in Scope
/* 56971*/      OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 56973*/      OPC_MoveParent,
/* 56974*/      OPC_CheckType, MVT::i32,
/* 56976*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 56978*/      OPC_EmitConvertToTarget, 1,
/* 56980*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUs), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64sqshlui:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                // Dst: (SQSHLUs:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 56988*/    /*Scope*/ 33, /*->57022*/
/* 56989*/      OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 56991*/      OPC_MoveParent,
/* 56992*/      OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->57007
/* 56995*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 56997*/        OPC_EmitConvertToTarget, 1,
/* 56999*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshlui:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                  // Dst: (SQSHLUd:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57007*/      /*SwitchType*/ 12, MVT::v1i64,// ->57021
/* 57009*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57011*/        OPC_EmitConvertToTarget, 1,
/* 57013*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshlui:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                  // Dst: (SQSHLUd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm)
/* 57021*/      0, // EndSwitchType
/* 57022*/    /*Scope*/ 33, /*->57056*/
/* 57023*/      OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 57025*/      OPC_MoveParent,
/* 57026*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->57041
/* 57029*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57031*/        OPC_EmitConvertToTarget, 1,
/* 57033*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshlui:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 7
                  // Dst: (SQSHLUv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57041*/      /*SwitchType*/ 12, MVT::v16i8,// ->57055
/* 57043*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57045*/        OPC_EmitConvertToTarget, 1,
/* 57047*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUv16i8_shift), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshlui:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 7
                  // Dst: (SQSHLUv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57055*/      0, // EndSwitchType
/* 57056*/    /*Scope*/ 33, /*->57090*/
/* 57057*/      OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 57059*/      OPC_MoveParent,
/* 57060*/      OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->57075
/* 57063*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57065*/        OPC_EmitConvertToTarget, 1,
/* 57067*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshlui:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 7
                  // Dst: (SQSHLUv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57075*/      /*SwitchType*/ 12, MVT::v8i16,// ->57089
/* 57077*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57079*/        OPC_EmitConvertToTarget, 1,
/* 57081*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshlui:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 7
                  // Dst: (SQSHLUv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57089*/      0, // EndSwitchType
/* 57090*/    /*Scope*/ 33, /*->57124*/
/* 57091*/      OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 57093*/      OPC_MoveParent,
/* 57094*/      OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->57109
/* 57097*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57099*/        OPC_EmitConvertToTarget, 1,
/* 57101*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshlui:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                  // Dst: (SQSHLUv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57109*/      /*SwitchType*/ 12, MVT::v4i32,// ->57123
/* 57111*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57113*/        OPC_EmitConvertToTarget, 1,
/* 57115*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshlui:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                  // Dst: (SQSHLUv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57123*/      0, // EndSwitchType
/* 57124*/    /*Scope*/ 17, /*->57142*/
/* 57125*/      OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 57127*/      OPC_MoveParent,
/* 57128*/      OPC_CheckType, MVT::v2i64,
/* 57130*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57132*/      OPC_EmitConvertToTarget, 1,
/* 57134*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLUv2i64_shift), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64sqshlui:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                // Dst: (SQSHLUv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57142*/    0, /*End of Scope*/
/* 57143*/  /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(AArch64ISD::SQSHL_I),// ->57329
/* 57147*/    OPC_RecordChild0, // #0 = $Rn
/* 57148*/    OPC_RecordChild1, // #1 = $imm
/* 57149*/    OPC_MoveChild1,
/* 57150*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57153*/    OPC_CheckType, MVT::i32,
/* 57155*/    OPC_Scope, 17, /*->57174*/ // 6 children in Scope
/* 57157*/      OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 57159*/      OPC_MoveParent,
/* 57160*/      OPC_CheckType, MVT::i32,
/* 57162*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57164*/      OPC_EmitConvertToTarget, 1,
/* 57166*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLs), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64sqshli:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                // Dst: (SQSHLs:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57174*/    /*Scope*/ 33, /*->57208*/
/* 57175*/      OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 57177*/      OPC_MoveParent,
/* 57178*/      OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->57193
/* 57181*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57183*/        OPC_EmitConvertToTarget, 1,
/* 57185*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshli:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                  // Dst: (SQSHLd:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57193*/      /*SwitchType*/ 12, MVT::v1i64,// ->57207
/* 57195*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57197*/        OPC_EmitConvertToTarget, 1,
/* 57199*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshli:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                  // Dst: (SQSHLd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm)
/* 57207*/      0, // EndSwitchType
/* 57208*/    /*Scope*/ 33, /*->57242*/
/* 57209*/      OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 57211*/      OPC_MoveParent,
/* 57212*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->57227
/* 57215*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57217*/        OPC_EmitConvertToTarget, 1,
/* 57219*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshli:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 7
                  // Dst: (SQSHLv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57227*/      /*SwitchType*/ 12, MVT::v16i8,// ->57241
/* 57229*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57231*/        OPC_EmitConvertToTarget, 1,
/* 57233*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv16i8_shift), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshli:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 7
                  // Dst: (SQSHLv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57241*/      0, // EndSwitchType
/* 57242*/    /*Scope*/ 33, /*->57276*/
/* 57243*/      OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 57245*/      OPC_MoveParent,
/* 57246*/      OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->57261
/* 57249*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57251*/        OPC_EmitConvertToTarget, 1,
/* 57253*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshli:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 7
                  // Dst: (SQSHLv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57261*/      /*SwitchType*/ 12, MVT::v8i16,// ->57275
/* 57263*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57265*/        OPC_EmitConvertToTarget, 1,
/* 57267*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshli:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 7
                  // Dst: (SQSHLv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57275*/      0, // EndSwitchType
/* 57276*/    /*Scope*/ 33, /*->57310*/
/* 57277*/      OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 57279*/      OPC_MoveParent,
/* 57280*/      OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->57295
/* 57283*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57285*/        OPC_EmitConvertToTarget, 1,
/* 57287*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshli:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                  // Dst: (SQSHLv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57295*/      /*SwitchType*/ 12, MVT::v4i32,// ->57309
/* 57297*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57299*/        OPC_EmitConvertToTarget, 1,
/* 57301*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64sqshli:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                  // Dst: (SQSHLv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57309*/      0, // EndSwitchType
/* 57310*/    /*Scope*/ 17, /*->57328*/
/* 57311*/      OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 57313*/      OPC_MoveParent,
/* 57314*/      OPC_CheckType, MVT::v2i64,
/* 57316*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57318*/      OPC_EmitConvertToTarget, 1,
/* 57320*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHLv2i64_shift), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64sqshli:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                // Dst: (SQSHLv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57328*/    0, /*End of Scope*/
/* 57329*/  /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(AArch64ISD::SRSHR_I),// ->57497
/* 57333*/    OPC_RecordChild0, // #0 = $Rn
/* 57334*/    OPC_RecordChild1, // #1 = $imm
/* 57335*/    OPC_MoveChild1,
/* 57336*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57339*/    OPC_CheckType, MVT::i32,
/* 57341*/    OPC_Scope, 33, /*->57376*/ // 5 children in Scope
/* 57343*/      OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 57345*/      OPC_MoveParent,
/* 57346*/      OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->57361
/* 57349*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57351*/        OPC_EmitConvertToTarget, 1,
/* 57353*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64srshri:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                  // Dst: (SRSHRd:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57361*/      /*SwitchType*/ 12, MVT::v1i64,// ->57375
/* 57363*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57365*/        OPC_EmitConvertToTarget, 1,
/* 57367*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64srshri:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                  // Dst: (SRSHRd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 57375*/      0, // EndSwitchType
/* 57376*/    /*Scope*/ 33, /*->57410*/
/* 57377*/      OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 57379*/      OPC_MoveParent,
/* 57380*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->57395
/* 57383*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57385*/        OPC_EmitConvertToTarget, 1,
/* 57387*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64srshri:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 7
                  // Dst: (SRSHRv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57395*/      /*SwitchType*/ 12, MVT::v16i8,// ->57409
/* 57397*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57399*/        OPC_EmitConvertToTarget, 1,
/* 57401*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRv16i8_shift), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64srshri:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 7
                  // Dst: (SRSHRv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57409*/      0, // EndSwitchType
/* 57410*/    /*Scope*/ 33, /*->57444*/
/* 57411*/      OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 57413*/      OPC_MoveParent,
/* 57414*/      OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->57429
/* 57417*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57419*/        OPC_EmitConvertToTarget, 1,
/* 57421*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64srshri:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 7
                  // Dst: (SRSHRv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57429*/      /*SwitchType*/ 12, MVT::v8i16,// ->57443
/* 57431*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57433*/        OPC_EmitConvertToTarget, 1,
/* 57435*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64srshri:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 7
                  // Dst: (SRSHRv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57443*/      0, // EndSwitchType
/* 57444*/    /*Scope*/ 33, /*->57478*/
/* 57445*/      OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 57447*/      OPC_MoveParent,
/* 57448*/      OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->57463
/* 57451*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57453*/        OPC_EmitConvertToTarget, 1,
/* 57455*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64srshri:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 7
                  // Dst: (SRSHRv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57463*/      /*SwitchType*/ 12, MVT::v4i32,// ->57477
/* 57465*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57467*/        OPC_EmitConvertToTarget, 1,
/* 57469*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64srshri:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 7
                  // Dst: (SRSHRv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57477*/      0, // EndSwitchType
/* 57478*/    /*Scope*/ 17, /*->57496*/
/* 57479*/      OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 57481*/      OPC_MoveParent,
/* 57482*/      OPC_CheckType, MVT::v2i64,
/* 57484*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57486*/      OPC_EmitConvertToTarget, 1,
/* 57488*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SRSHRv2i64_shift), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64srshri:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                // Dst: (SRSHRv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57496*/    0, /*End of Scope*/
/* 57497*/  /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(AArch64ISD::VASHR),// ->57665
/* 57501*/    OPC_RecordChild0, // #0 = $Rn
/* 57502*/    OPC_RecordChild1, // #1 = $imm
/* 57503*/    OPC_MoveChild1,
/* 57504*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57507*/    OPC_CheckType, MVT::i32,
/* 57509*/    OPC_Scope, 33, /*->57544*/ // 5 children in Scope
/* 57511*/      OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 57513*/      OPC_MoveParent,
/* 57514*/      OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->57529
/* 57517*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57519*/        OPC_EmitConvertToTarget, 1,
/* 57521*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vashr:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                  // Dst: (SSHRd:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57529*/      /*SwitchType*/ 12, MVT::v1i64,// ->57543
/* 57531*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57533*/        OPC_EmitConvertToTarget, 1,
/* 57535*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vashr:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                  // Dst: (SSHRd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 57543*/      0, // EndSwitchType
/* 57544*/    /*Scope*/ 33, /*->57578*/
/* 57545*/      OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 57547*/      OPC_MoveParent,
/* 57548*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->57563
/* 57551*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57553*/        OPC_EmitConvertToTarget, 1,
/* 57555*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vashr:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 7
                  // Dst: (SSHRv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57563*/      /*SwitchType*/ 12, MVT::v16i8,// ->57577
/* 57565*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57567*/        OPC_EmitConvertToTarget, 1,
/* 57569*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRv16i8_shift), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vashr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 7
                  // Dst: (SSHRv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57577*/      0, // EndSwitchType
/* 57578*/    /*Scope*/ 33, /*->57612*/
/* 57579*/      OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 57581*/      OPC_MoveParent,
/* 57582*/      OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->57597
/* 57585*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57587*/        OPC_EmitConvertToTarget, 1,
/* 57589*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vashr:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 7
                  // Dst: (SSHRv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57597*/      /*SwitchType*/ 12, MVT::v8i16,// ->57611
/* 57599*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57601*/        OPC_EmitConvertToTarget, 1,
/* 57603*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vashr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 7
                  // Dst: (SSHRv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57611*/      0, // EndSwitchType
/* 57612*/    /*Scope*/ 33, /*->57646*/
/* 57613*/      OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 57615*/      OPC_MoveParent,
/* 57616*/      OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->57631
/* 57619*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57621*/        OPC_EmitConvertToTarget, 1,
/* 57623*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vashr:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 7
                  // Dst: (SSHRv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57631*/      /*SwitchType*/ 12, MVT::v4i32,// ->57645
/* 57633*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57635*/        OPC_EmitConvertToTarget, 1,
/* 57637*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vashr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 7
                  // Dst: (SSHRv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57645*/      0, // EndSwitchType
/* 57646*/    /*Scope*/ 17, /*->57664*/
/* 57647*/      OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 57649*/      OPC_MoveParent,
/* 57650*/      OPC_CheckType, MVT::v2i64,
/* 57652*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57654*/      OPC_EmitConvertToTarget, 1,
/* 57656*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHRv2i64_shift), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64vashr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                // Dst: (SSHRv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57664*/    0, /*End of Scope*/
/* 57665*/  /*SwitchOpcode*/ 54|128,1/*182*/, TARGET_VAL(AArch64ISD::UQSHL_I),// ->57851
/* 57669*/    OPC_RecordChild0, // #0 = $Rn
/* 57670*/    OPC_RecordChild1, // #1 = $imm
/* 57671*/    OPC_MoveChild1,
/* 57672*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57675*/    OPC_CheckType, MVT::i32,
/* 57677*/    OPC_Scope, 17, /*->57696*/ // 6 children in Scope
/* 57679*/      OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 57681*/      OPC_MoveParent,
/* 57682*/      OPC_CheckType, MVT::i32,
/* 57684*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57686*/      OPC_EmitConvertToTarget, 1,
/* 57688*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLs), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64uqshli:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                // Dst: (UQSHLs:{ *:[i32] } FPR32:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57696*/    /*Scope*/ 33, /*->57730*/
/* 57697*/      OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 57699*/      OPC_MoveParent,
/* 57700*/      OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->57715
/* 57703*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57705*/        OPC_EmitConvertToTarget, 1,
/* 57707*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64uqshli:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                  // Dst: (UQSHLd:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57715*/      /*SwitchType*/ 12, MVT::v1i64,// ->57729
/* 57717*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57719*/        OPC_EmitConvertToTarget, 1,
/* 57721*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64uqshli:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                  // Dst: (UQSHLd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm)
/* 57729*/      0, // EndSwitchType
/* 57730*/    /*Scope*/ 33, /*->57764*/
/* 57731*/      OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 57733*/      OPC_MoveParent,
/* 57734*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->57749
/* 57737*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57739*/        OPC_EmitConvertToTarget, 1,
/* 57741*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64uqshli:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 7
                  // Dst: (UQSHLv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57749*/      /*SwitchType*/ 12, MVT::v16i8,// ->57763
/* 57751*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57753*/        OPC_EmitConvertToTarget, 1,
/* 57755*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv16i8_shift), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64uqshli:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 7
                  // Dst: (UQSHLv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57763*/      0, // EndSwitchType
/* 57764*/    /*Scope*/ 33, /*->57798*/
/* 57765*/      OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 57767*/      OPC_MoveParent,
/* 57768*/      OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->57783
/* 57771*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57773*/        OPC_EmitConvertToTarget, 1,
/* 57775*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64uqshli:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 7
                  // Dst: (UQSHLv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57783*/      /*SwitchType*/ 12, MVT::v8i16,// ->57797
/* 57785*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57787*/        OPC_EmitConvertToTarget, 1,
/* 57789*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64uqshli:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 7
                  // Dst: (UQSHLv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57797*/      0, // EndSwitchType
/* 57798*/    /*Scope*/ 33, /*->57832*/
/* 57799*/      OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 57801*/      OPC_MoveParent,
/* 57802*/      OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->57817
/* 57805*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57807*/        OPC_EmitConvertToTarget, 1,
/* 57809*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64uqshli:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                  // Dst: (UQSHLv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57817*/      /*SwitchType*/ 12, MVT::v4i32,// ->57831
/* 57819*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57821*/        OPC_EmitConvertToTarget, 1,
/* 57823*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64uqshli:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                  // Dst: (UQSHLv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57831*/      0, // EndSwitchType
/* 57832*/    /*Scope*/ 17, /*->57850*/
/* 57833*/      OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 57835*/      OPC_MoveParent,
/* 57836*/      OPC_CheckType, MVT::v2i64,
/* 57838*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57840*/      OPC_EmitConvertToTarget, 1,
/* 57842*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHLv2i64_shift), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64uqshli:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                // Dst: (UQSHLv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57850*/    0, /*End of Scope*/
/* 57851*/  /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(AArch64ISD::URSHR_I),// ->58019
/* 57855*/    OPC_RecordChild0, // #0 = $Rn
/* 57856*/    OPC_RecordChild1, // #1 = $imm
/* 57857*/    OPC_MoveChild1,
/* 57858*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57861*/    OPC_CheckType, MVT::i32,
/* 57863*/    OPC_Scope, 33, /*->57898*/ // 5 children in Scope
/* 57865*/      OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 57867*/      OPC_MoveParent,
/* 57868*/      OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->57883
/* 57871*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57873*/        OPC_EmitConvertToTarget, 1,
/* 57875*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64urshri:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                  // Dst: (URSHRd:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57883*/      /*SwitchType*/ 12, MVT::v1i64,// ->57897
/* 57885*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57887*/        OPC_EmitConvertToTarget, 1,
/* 57889*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64urshri:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                  // Dst: (URSHRd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 57897*/      0, // EndSwitchType
/* 57898*/    /*Scope*/ 33, /*->57932*/
/* 57899*/      OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 57901*/      OPC_MoveParent,
/* 57902*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->57917
/* 57905*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57907*/        OPC_EmitConvertToTarget, 1,
/* 57909*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64urshri:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 7
                  // Dst: (URSHRv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57917*/      /*SwitchType*/ 12, MVT::v16i8,// ->57931
/* 57919*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57921*/        OPC_EmitConvertToTarget, 1,
/* 57923*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRv16i8_shift), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64urshri:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 7
                  // Dst: (URSHRv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57931*/      0, // EndSwitchType
/* 57932*/    /*Scope*/ 33, /*->57966*/
/* 57933*/      OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 57935*/      OPC_MoveParent,
/* 57936*/      OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->57951
/* 57939*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57941*/        OPC_EmitConvertToTarget, 1,
/* 57943*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64urshri:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 7
                  // Dst: (URSHRv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57951*/      /*SwitchType*/ 12, MVT::v8i16,// ->57965
/* 57953*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57955*/        OPC_EmitConvertToTarget, 1,
/* 57957*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64urshri:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 7
                  // Dst: (URSHRv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57965*/      0, // EndSwitchType
/* 57966*/    /*Scope*/ 33, /*->58000*/
/* 57967*/      OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 57969*/      OPC_MoveParent,
/* 57970*/      OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->57985
/* 57973*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57975*/        OPC_EmitConvertToTarget, 1,
/* 57977*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64urshri:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 7
                  // Dst: (URSHRv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57985*/      /*SwitchType*/ 12, MVT::v4i32,// ->57999
/* 57987*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 57989*/        OPC_EmitConvertToTarget, 1,
/* 57991*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64urshri:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 7
                  // Dst: (URSHRv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 57999*/      0, // EndSwitchType
/* 58000*/    /*Scope*/ 17, /*->58018*/
/* 58001*/      OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 58003*/      OPC_MoveParent,
/* 58004*/      OPC_CheckType, MVT::v2i64,
/* 58006*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58008*/      OPC_EmitConvertToTarget, 1,
/* 58010*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::URSHRv2i64_shift), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64urshri:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                // Dst: (URSHRv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58018*/    0, /*End of Scope*/
/* 58019*/  /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(AArch64ISD::VLSHR),// ->58187
/* 58023*/    OPC_RecordChild0, // #0 = $Rn
/* 58024*/    OPC_RecordChild1, // #1 = $imm
/* 58025*/    OPC_MoveChild1,
/* 58026*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58029*/    OPC_CheckType, MVT::i32,
/* 58031*/    OPC_Scope, 33, /*->58066*/ // 5 children in Scope
/* 58033*/      OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 58035*/      OPC_MoveParent,
/* 58036*/      OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->58051
/* 58039*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58041*/        OPC_EmitConvertToTarget, 1,
/* 58043*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRd), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vlshr:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                  // Dst: (USHRd:{ *:[i64] } FPR64:{ *:[i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58051*/      /*SwitchType*/ 12, MVT::v1i64,// ->58065
/* 58053*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58055*/        OPC_EmitConvertToTarget, 1,
/* 58057*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vlshr:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                  // Dst: (USHRd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm)
/* 58065*/      0, // EndSwitchType
/* 58066*/    /*Scope*/ 33, /*->58100*/
/* 58067*/      OPC_CheckPredicate, 16, // Predicate_vecshiftR8
/* 58069*/      OPC_MoveParent,
/* 58070*/      OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->58085
/* 58073*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58075*/        OPC_EmitConvertToTarget, 1,
/* 58077*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRv8i8_shift), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vlshr:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 7
                  // Dst: (USHRv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58085*/      /*SwitchType*/ 12, MVT::v16i8,// ->58099
/* 58087*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58089*/        OPC_EmitConvertToTarget, 1,
/* 58091*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRv16i8_shift), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vlshr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR8>>:$imm) - Complexity = 7
                  // Dst: (USHRv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58099*/      0, // EndSwitchType
/* 58100*/    /*Scope*/ 33, /*->58134*/
/* 58101*/      OPC_CheckPredicate, 17, // Predicate_vecshiftR16
/* 58103*/      OPC_MoveParent,
/* 58104*/      OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->58119
/* 58107*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58109*/        OPC_EmitConvertToTarget, 1,
/* 58111*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRv4i16_shift), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vlshr:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 7
                  // Dst: (USHRv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58119*/      /*SwitchType*/ 12, MVT::v8i16,// ->58133
/* 58121*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58123*/        OPC_EmitConvertToTarget, 1,
/* 58125*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRv8i16_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vlshr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16>>:$imm) - Complexity = 7
                  // Dst: (USHRv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58133*/      0, // EndSwitchType
/* 58134*/    /*Scope*/ 33, /*->58168*/
/* 58135*/      OPC_CheckPredicate, 14, // Predicate_vecshiftR32
/* 58137*/      OPC_MoveParent,
/* 58138*/      OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->58153
/* 58141*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58143*/        OPC_EmitConvertToTarget, 1,
/* 58145*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRv2i32_shift), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vlshr:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 7
                  // Dst: (USHRv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58153*/      /*SwitchType*/ 12, MVT::v4i32,// ->58167
/* 58155*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58157*/        OPC_EmitConvertToTarget, 1,
/* 58159*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRv4i32_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vlshr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32>>:$imm) - Complexity = 7
                  // Dst: (USHRv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58167*/      0, // EndSwitchType
/* 58168*/    /*Scope*/ 17, /*->58186*/
/* 58169*/      OPC_CheckPredicate, 15, // Predicate_vecshiftR64
/* 58171*/      OPC_MoveParent,
/* 58172*/      OPC_CheckType, MVT::v2i64,
/* 58174*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58176*/      OPC_EmitConvertToTarget, 1,
/* 58178*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHRv2i64_shift), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64vlshr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64>>:$imm) - Complexity = 7
                // Dst: (USHRv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 58186*/    0, /*End of Scope*/
/* 58187*/  /*SwitchOpcode*/ 45, TARGET_VAL(AArch64ISD::CSINV),// ->58235
/* 58190*/    OPC_RecordChild0, // #0 = $tval
/* 58191*/    OPC_RecordChild1, // #1 = $fval
/* 58192*/    OPC_RecordChild2, // #2 = $cc
/* 58193*/    OPC_MoveChild2,
/* 58194*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58197*/    OPC_CheckType, MVT::i32,
/* 58199*/    OPC_MoveParent,
/* 58200*/    OPC_RecordChild3, // #3 = physreg input NZCV
/* 58201*/    OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->58218
/* 58204*/      OPC_EmitConvertToTarget, 2,
/* 58206*/      OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 58209*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVWr), 0|OPFL_GlueInput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                // Src: (AArch64csinv:{ *:[i32] } GPR32:{ *:[i32] }:$tval, GPR32:{ *:[i32] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 6
                // Dst: (CSINVWr:{ *:[i32] } GPR32:{ *:[i32] }:$tval, GPR32:{ *:[i32] }:$fval, (imm:{ *:[i32] }):$cc)
/* 58218*/    /*SwitchType*/ 14, MVT::i64,// ->58234
/* 58220*/      OPC_EmitConvertToTarget, 2,
/* 58222*/      OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 58225*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINVXr), 0|OPFL_GlueInput,
                    MVT::i64, 3/*#Ops*/, 0, 1, 4, 
                // Src: (AArch64csinv:{ *:[i64] } GPR64:{ *:[i64] }:$tval, GPR64:{ *:[i64] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 6
                // Dst: (CSINVXr:{ *:[i64] } GPR64:{ *:[i64] }:$tval, GPR64:{ *:[i64] }:$fval, (imm:{ *:[i32] }):$cc)
/* 58234*/    0, // EndSwitchType
/* 58235*/  /*SwitchOpcode*/ 45, TARGET_VAL(AArch64ISD::CSNEG),// ->58283
/* 58238*/    OPC_RecordChild0, // #0 = $tval
/* 58239*/    OPC_RecordChild1, // #1 = $fval
/* 58240*/    OPC_RecordChild2, // #2 = $cc
/* 58241*/    OPC_MoveChild2,
/* 58242*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58245*/    OPC_CheckType, MVT::i32,
/* 58247*/    OPC_MoveParent,
/* 58248*/    OPC_RecordChild3, // #3 = physreg input NZCV
/* 58249*/    OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->58266
/* 58252*/      OPC_EmitConvertToTarget, 2,
/* 58254*/      OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 58257*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSNEGWr), 0|OPFL_GlueInput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                // Src: (AArch64csneg:{ *:[i32] } GPR32:{ *:[i32] }:$tval, GPR32:{ *:[i32] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 6
                // Dst: (CSNEGWr:{ *:[i32] } GPR32:{ *:[i32] }:$tval, GPR32:{ *:[i32] }:$fval, (imm:{ *:[i32] }):$cc)
/* 58266*/    /*SwitchType*/ 14, MVT::i64,// ->58282
/* 58268*/      OPC_EmitConvertToTarget, 2,
/* 58270*/      OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 58273*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSNEGXr), 0|OPFL_GlueInput,
                    MVT::i64, 3/*#Ops*/, 0, 1, 4, 
                // Src: (AArch64csneg:{ *:[i64] } GPR64:{ *:[i64] }:$tval, GPR64:{ *:[i64] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 6
                // Dst: (CSNEGXr:{ *:[i64] } GPR64:{ *:[i64] }:$tval, GPR64:{ *:[i64] }:$fval, (imm:{ *:[i32] }):$cc)
/* 58282*/    0, // EndSwitchType
/* 58283*/  /*SwitchOpcode*/ 45, TARGET_VAL(AArch64ISD::CSINC),// ->58331
/* 58286*/    OPC_RecordChild0, // #0 = $tval
/* 58287*/    OPC_RecordChild1, // #1 = $fval
/* 58288*/    OPC_RecordChild2, // #2 = $cc
/* 58289*/    OPC_MoveChild2,
/* 58290*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58293*/    OPC_CheckType, MVT::i32,
/* 58295*/    OPC_MoveParent,
/* 58296*/    OPC_RecordChild3, // #3 = physreg input NZCV
/* 58297*/    OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->58314
/* 58300*/      OPC_EmitConvertToTarget, 2,
/* 58302*/      OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 58305*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCWr), 0|OPFL_GlueInput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                // Src: (AArch64csinc:{ *:[i32] } GPR32:{ *:[i32] }:$tval, GPR32:{ *:[i32] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 6
                // Dst: (CSINCWr:{ *:[i32] } GPR32:{ *:[i32] }:$tval, GPR32:{ *:[i32] }:$fval, (imm:{ *:[i32] }):$cc)
/* 58314*/    /*SwitchType*/ 14, MVT::i64,// ->58330
/* 58316*/      OPC_EmitConvertToTarget, 2,
/* 58318*/      OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 58321*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CSINCXr), 0|OPFL_GlueInput,
                    MVT::i64, 3/*#Ops*/, 0, 1, 4, 
                // Src: (AArch64csinc:{ *:[i64] } GPR64:{ *:[i64] }:$tval, GPR64:{ *:[i64] }:$fval, (imm:{ *:[i32] }):$cc, NZCV:{ *:[i32] }) - Complexity = 6
                // Dst: (CSINCXr:{ *:[i64] } GPR64:{ *:[i64] }:$tval, GPR64:{ *:[i64] }:$fval, (imm:{ *:[i32] }):$cc)
/* 58330*/    0, // EndSwitchType
/* 58331*/  /*SwitchOpcode*/ 56, TARGET_VAL(AArch64ISD::ADRP),// ->58390
/* 58334*/    OPC_RecordChild0, // #0 = $label
/* 58335*/    OPC_MoveChild0,
/* 58336*/    OPC_SwitchOpcode /*4 cases */, 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->58350
/* 58340*/      OPC_MoveParent,
/* 58341*/      OPC_CheckType, MVT::i64,
/* 58343*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADRP), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (AArch64adrp:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$label) - Complexity = 6
                // Dst: (ADRP:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$label)
/* 58350*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetConstantPool),// ->58363
/* 58353*/      OPC_MoveParent,
/* 58354*/      OPC_CheckType, MVT::i64,
/* 58356*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADRP), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (AArch64adrp:{ *:[i64] } (tconstpool:{ *:[i64] }):$cp) - Complexity = 6
                // Dst: (ADRP:{ *:[i64] } (tconstpool:{ *:[i64] }):$cp)
/* 58363*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetBlockAddress),// ->58376
/* 58366*/      OPC_MoveParent,
/* 58367*/      OPC_CheckType, MVT::i64,
/* 58369*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADRP), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (AArch64adrp:{ *:[i64] } (tblockaddress:{ *:[i64] }):$cp) - Complexity = 6
                // Dst: (ADRP:{ *:[i64] } (tblockaddress:{ *:[i64] }):$cp)
/* 58376*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetExternalSymbol),// ->58389
/* 58379*/      OPC_MoveParent,
/* 58380*/      OPC_CheckType, MVT::i64,
/* 58382*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADRP), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (AArch64adrp:{ *:[i64] } (texternalsym:{ *:[i64] }):$sym) - Complexity = 6
                // Dst: (ADRP:{ *:[i64] } (texternalsym:{ *:[i64] }):$sym)
/* 58389*/    0, // EndSwitchOpcode
/* 58390*/  /*SwitchOpcode*/ 30, TARGET_VAL(AArch64ISD::TLSDESC_CALLSEQ),// ->58423
/* 58393*/    OPC_RecordNode, // #0 = 'AArch64tlsdesc_callseq' chained node
/* 58394*/    OPC_CaptureGlueInput,
/* 58395*/    OPC_RecordChild1, // #1 = $sym
/* 58396*/    OPC_MoveChild1,
/* 58397*/    OPC_SwitchOpcode /*2 cases */, 9, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->58410
/* 58401*/      OPC_MoveParent,
/* 58402*/      OPC_EmitMergeInputChains1_0,
/* 58403*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TLSDESC_CALLSEQ), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (AArch64tlsdesc_callseq (tglobaltlsaddr:{ *:[iPTR] }):$sym) - Complexity = 6
                // Dst: (TLSDESC_CALLSEQ:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$sym)
/* 58410*/    /*SwitchOpcode*/ 9, TARGET_VAL(ISD::TargetExternalSymbol),// ->58422
/* 58413*/      OPC_MoveParent,
/* 58414*/      OPC_EmitMergeInputChains1_0,
/* 58415*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TLSDESC_CALLSEQ), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (AArch64tlsdesc_callseq (texternalsym:{ *:[iPTR] }):$sym) - Complexity = 6
                // Dst: (TLSDESC_CALLSEQ:{ *:[i64] } (texternalsym:{ *:[i64] }):$sym)
/* 58422*/    0, // EndSwitchOpcode
/* 58423*/  /*SwitchOpcode*/ 27, TARGET_VAL(AArch64ISD::BRCOND),// ->58453
/* 58426*/    OPC_RecordNode, // #0 = 'AArch64brcond' chained node
/* 58427*/    OPC_RecordChild1, // #1 = $target
/* 58428*/    OPC_MoveChild1,
/* 58429*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 58432*/    OPC_MoveParent,
/* 58433*/    OPC_RecordChild2, // #2 = $cond
/* 58434*/    OPC_MoveChild2,
/* 58435*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58438*/    OPC_MoveParent,
/* 58439*/    OPC_RecordChild3, // #3 = physreg input NZCV
/* 58440*/    OPC_EmitMergeInputChains1_0,
/* 58441*/    OPC_EmitConvertToTarget, 2,
/* 58443*/    OPC_EmitCopyToReg, 3, AArch64::NZCV,
/* 58446*/    OPC_MorphNodeTo0, TARGET_VAL(AArch64::Bcc), 0|OPFL_Chain|OPFL_GlueInput,
                  2/*#Ops*/, 4, 1, 
              // Src: (AArch64brcond (bb:{ *:[Other] }):$target, (imm:{ *:[i32] }):$cond, NZCV:{ *:[i32] }) - Complexity = 6
              // Dst: (Bcc (imm:{ *:[i32] }):$cond, (bb:{ *:[Other] }):$target)
/* 58453*/  /*SwitchOpcode*/ 44, TARGET_VAL(AArch64ISD::CALL),// ->58500
/* 58456*/    OPC_RecordNode, // #0 = 'AArch64call' chained node
/* 58457*/    OPC_CaptureGlueInput,
/* 58458*/    OPC_RecordChild1, // #1 = $addr
/* 58459*/    OPC_Scope, 27, /*->58488*/ // 2 children in Scope
/* 58461*/      OPC_MoveChild1,
/* 58462*/      OPC_SwitchOpcode /*2 cases */, 9, TARGET_VAL(ISD::TargetGlobalAddress),// ->58475
/* 58466*/        OPC_MoveParent,
/* 58467*/        OPC_EmitMergeInputChains1_0,
/* 58468*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (AArch64call (tglobaladdr:{ *:[iPTR] }):$addr) - Complexity = 6
                  // Dst: (BL:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$addr)
/* 58475*/      /*SwitchOpcode*/ 9, TARGET_VAL(ISD::TargetExternalSymbol),// ->58487
/* 58478*/        OPC_MoveParent,
/* 58479*/        OPC_EmitMergeInputChains1_0,
/* 58480*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::BL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (AArch64call (texternalsym:{ *:[iPTR] }):$func) - Complexity = 6
                  // Dst: (BL:{ *:[i64] } (texternalsym:{ *:[i64] }):$func)
/* 58487*/      0, // EndSwitchOpcode
/* 58488*/    /*Scope*/ 10, /*->58499*/
/* 58489*/      OPC_CheckChild1Type, MVT::i64,
/* 58491*/      OPC_EmitMergeInputChains1_0,
/* 58492*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BLR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (AArch64call GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                // Dst: (BLR:{ *:[i64] } GPR64:{ *:[i64] }:$Rn)
/* 58499*/    0, /*End of Scope*/
/* 58500*/  /*SwitchOpcode*/ 37|128,4/*549*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->59053
/* 58504*/    OPC_Scope, 58, /*->58564*/ // 3 children in Scope
/* 58506*/      OPC_RecordChild0, // #0 = $src
/* 58507*/      OPC_Scope, 21, /*->58530*/ // 2 children in Scope
/* 58509*/        OPC_MoveChild0,
/* 58510*/        OPC_CheckPredicate, 59, // Predicate_def32
/* 58512*/        OPC_MoveParent,
/* 58513*/        OPC_CheckType, MVT::i64,
/* 58515*/        OPC_EmitInteger, MVT::i64, 0, 
/* 58518*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 58521*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (zext:{ *:[i64] } GPR32:{ *:[i32] }<<P:Predicate_def32>>:$src) - Complexity = 4
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, GPR32:{ *:[i32] }:$src, sub_32:{ *:[i32] })
/* 58530*/      /*Scope*/ 32, /*->58563*/
/* 58531*/        OPC_CheckType, MVT::i64,
/* 58533*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58536*/        OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 58539*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58542*/        OPC_EmitNode1, TARGET_VAL(AArch64::ORRWrs), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 58551*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 58554*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 1, 4, 5, 
                  // Src: (zext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i32] }, (ORRWrs:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$src, 0:{ *:[i32] }), sub_32:{ *:[i32] })
/* 58563*/      0, /*End of Scope*/
/* 58564*/    /*Scope*/ 53|128,3/*437*/, /*->59003*/
/* 58566*/      OPC_MoveChild0,
/* 58567*/      OPC_SwitchOpcode /*2 cases */, 108|128,2/*364*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->58936
/* 58572*/        OPC_Scope, 51|128,1/*179*/, /*->58754*/ // 2 children in Scope
/* 58575*/          OPC_CheckChild0Integer, 72|128,2/*328*/, 
/* 58578*/          OPC_Scope, 109, /*->58689*/ // 2 children in Scope
/* 58580*/            OPC_MoveChild1,
/* 58581*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 58584*/            OPC_RecordChild0, // #0 = $Rn
/* 58585*/            OPC_SwitchType /*3 cases */, 32, MVT::v8i8,// ->58620
/* 58588*/              OPC_CheckChild1Integer, 8, 
/* 58590*/              OPC_CheckChild1Type, MVT::i64,
/* 58592*/              OPC_MoveParent,
/* 58593*/              OPC_MoveChild2,
/* 58594*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 58597*/              OPC_RecordChild0, // #1 = $Rm
/* 58598*/              OPC_CheckChild1Integer, 8, 
/* 58600*/              OPC_CheckChild1Type, MVT::i64,
/* 58602*/              OPC_CheckType, MVT::v8i8,
/* 58604*/              OPC_MoveParent,
/* 58605*/              OPC_CheckType, MVT::v8i8,
/* 58607*/              OPC_MoveParent,
/* 58608*/              OPC_CheckType, MVT::v8i16,
/* 58610*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58612*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv16i8_v8i16), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 27
                        // Dst: (UABDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 58620*/            /*SwitchType*/ 32, MVT::v4i16,// ->58654
/* 58622*/              OPC_CheckChild1Integer, 4, 
/* 58624*/              OPC_CheckChild1Type, MVT::i64,
/* 58626*/              OPC_MoveParent,
/* 58627*/              OPC_MoveChild2,
/* 58628*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 58631*/              OPC_RecordChild0, // #1 = $Rm
/* 58632*/              OPC_CheckChild1Integer, 4, 
/* 58634*/              OPC_CheckChild1Type, MVT::i64,
/* 58636*/              OPC_CheckType, MVT::v4i16,
/* 58638*/              OPC_MoveParent,
/* 58639*/              OPC_CheckType, MVT::v4i16,
/* 58641*/              OPC_MoveParent,
/* 58642*/              OPC_CheckType, MVT::v4i32,
/* 58644*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58646*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv8i16_v4i32), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 27
                        // Dst: (UABDLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 58654*/            /*SwitchType*/ 32, MVT::v2i32,// ->58688
/* 58656*/              OPC_CheckChild1Integer, 2, 
/* 58658*/              OPC_CheckChild1Type, MVT::i64,
/* 58660*/              OPC_MoveParent,
/* 58661*/              OPC_MoveChild2,
/* 58662*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 58665*/              OPC_RecordChild0, // #1 = $Rm
/* 58666*/              OPC_CheckChild1Integer, 2, 
/* 58668*/              OPC_CheckChild1Type, MVT::i64,
/* 58670*/              OPC_CheckType, MVT::v2i32,
/* 58672*/              OPC_MoveParent,
/* 58673*/              OPC_CheckType, MVT::v2i32,
/* 58675*/              OPC_MoveParent,
/* 58676*/              OPC_CheckType, MVT::v2i64,
/* 58678*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58680*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv4i32_v2i64), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 27
                        // Dst: (UABDLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 58688*/            0, // EndSwitchType
/* 58689*/          /*Scope*/ 63, /*->58753*/
/* 58690*/            OPC_RecordChild1, // #0 = $Rn
/* 58691*/            OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->58712
/* 58694*/              OPC_CheckChild1Type, MVT::v8i8,
/* 58696*/              OPC_RecordChild2, // #1 = $Rm
/* 58697*/              OPC_CheckChild2Type, MVT::v8i8,
/* 58699*/              OPC_MoveParent,
/* 58700*/              OPC_CheckType, MVT::v8i16,
/* 58702*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58704*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv8i8_v8i16), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 328:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 11
                        // Dst: (UABDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 58712*/            /*SwitchType*/ 18, MVT::v4i16,// ->58732
/* 58714*/              OPC_CheckChild1Type, MVT::v4i16,
/* 58716*/              OPC_RecordChild2, // #1 = $Rm
/* 58717*/              OPC_CheckChild2Type, MVT::v4i16,
/* 58719*/              OPC_MoveParent,
/* 58720*/              OPC_CheckType, MVT::v4i32,
/* 58722*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58724*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv4i16_v4i32), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 328:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 11
                        // Dst: (UABDLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 58732*/            /*SwitchType*/ 18, MVT::v2i32,// ->58752
/* 58734*/              OPC_CheckChild1Type, MVT::v2i32,
/* 58736*/              OPC_RecordChild2, // #1 = $Rm
/* 58737*/              OPC_CheckChild2Type, MVT::v2i32,
/* 58739*/              OPC_MoveParent,
/* 58740*/              OPC_CheckType, MVT::v2i64,
/* 58742*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58744*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv2i32_v2i64), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 328:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 11
                        // Dst: (UABDLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 58752*/            0, // EndSwitchType
/* 58753*/          0, /*End of Scope*/
/* 58754*/        /*Scope*/ 51|128,1/*179*/, /*->58935*/
/* 58756*/          OPC_CheckChild0Integer, 14|128,2/*270*/, 
/* 58759*/          OPC_Scope, 109, /*->58870*/ // 2 children in Scope
/* 58761*/            OPC_MoveChild1,
/* 58762*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 58765*/            OPC_RecordChild0, // #0 = $Rn
/* 58766*/            OPC_SwitchType /*3 cases */, 32, MVT::v8i8,// ->58801
/* 58769*/              OPC_CheckChild1Integer, 8, 
/* 58771*/              OPC_CheckChild1Type, MVT::i64,
/* 58773*/              OPC_MoveParent,
/* 58774*/              OPC_MoveChild2,
/* 58775*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 58778*/              OPC_RecordChild0, // #1 = $Rm
/* 58779*/              OPC_CheckChild1Integer, 8, 
/* 58781*/              OPC_CheckChild1Type, MVT::i64,
/* 58783*/              OPC_CheckType, MVT::v8i8,
/* 58785*/              OPC_MoveParent,
/* 58786*/              OPC_CheckType, MVT::v8i8,
/* 58788*/              OPC_MoveParent,
/* 58789*/              OPC_CheckType, MVT::v8i16,
/* 58791*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58793*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDLv16i8_v8i16), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] }))) - Complexity = 27
                        // Dst: (SABDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 58801*/            /*SwitchType*/ 32, MVT::v4i16,// ->58835
/* 58803*/              OPC_CheckChild1Integer, 4, 
/* 58805*/              OPC_CheckChild1Type, MVT::i64,
/* 58807*/              OPC_MoveParent,
/* 58808*/              OPC_MoveChild2,
/* 58809*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 58812*/              OPC_RecordChild0, // #1 = $Rm
/* 58813*/              OPC_CheckChild1Integer, 4, 
/* 58815*/              OPC_CheckChild1Type, MVT::i64,
/* 58817*/              OPC_CheckType, MVT::v4i16,
/* 58819*/              OPC_MoveParent,
/* 58820*/              OPC_CheckType, MVT::v4i16,
/* 58822*/              OPC_MoveParent,
/* 58823*/              OPC_CheckType, MVT::v4i32,
/* 58825*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58827*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDLv8i16_v4i32), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] }))) - Complexity = 27
                        // Dst: (SABDLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 58835*/            /*SwitchType*/ 32, MVT::v2i32,// ->58869
/* 58837*/              OPC_CheckChild1Integer, 2, 
/* 58839*/              OPC_CheckChild1Type, MVT::i64,
/* 58841*/              OPC_MoveParent,
/* 58842*/              OPC_MoveChild2,
/* 58843*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 58846*/              OPC_RecordChild0, // #1 = $Rm
/* 58847*/              OPC_CheckChild1Integer, 2, 
/* 58849*/              OPC_CheckChild1Type, MVT::i64,
/* 58851*/              OPC_CheckType, MVT::v2i32,
/* 58853*/              OPC_MoveParent,
/* 58854*/              OPC_CheckType, MVT::v2i32,
/* 58856*/              OPC_MoveParent,
/* 58857*/              OPC_CheckType, MVT::v2i64,
/* 58859*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58861*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDLv4i32_v2i64), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] }))) - Complexity = 27
                        // Dst: (SABDLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 58869*/            0, // EndSwitchType
/* 58870*/          /*Scope*/ 63, /*->58934*/
/* 58871*/            OPC_RecordChild1, // #0 = $Rn
/* 58872*/            OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->58893
/* 58875*/              OPC_CheckChild1Type, MVT::v8i8,
/* 58877*/              OPC_RecordChild2, // #1 = $Rm
/* 58878*/              OPC_CheckChild2Type, MVT::v8i8,
/* 58880*/              OPC_MoveParent,
/* 58881*/              OPC_CheckType, MVT::v8i16,
/* 58883*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58885*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDLv8i8_v8i16), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 270:{ *:[iPTR] }, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)) - Complexity = 11
                        // Dst: (SABDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 58893*/            /*SwitchType*/ 18, MVT::v4i16,// ->58913
/* 58895*/              OPC_CheckChild1Type, MVT::v4i16,
/* 58897*/              OPC_RecordChild2, // #1 = $Rm
/* 58898*/              OPC_CheckChild2Type, MVT::v4i16,
/* 58900*/              OPC_MoveParent,
/* 58901*/              OPC_CheckType, MVT::v4i32,
/* 58903*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58905*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDLv4i16_v4i32), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 270:{ *:[iPTR] }, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)) - Complexity = 11
                        // Dst: (SABDLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 58913*/            /*SwitchType*/ 18, MVT::v2i32,// ->58933
/* 58915*/              OPC_CheckChild1Type, MVT::v2i32,
/* 58917*/              OPC_RecordChild2, // #1 = $Rm
/* 58918*/              OPC_CheckChild2Type, MVT::v2i32,
/* 58920*/              OPC_MoveParent,
/* 58921*/              OPC_CheckType, MVT::v2i64,
/* 58923*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 58925*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SABDLv2i32_v2i64), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 270:{ *:[iPTR] }, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)) - Complexity = 11
                        // Dst: (SABDLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 58933*/            0, // EndSwitchType
/* 58934*/          0, /*End of Scope*/
/* 58935*/        0, /*End of Scope*/
/* 58936*/      /*SwitchOpcode*/ 63, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->59002
/* 58939*/        OPC_RecordChild0, // #0 = $Rn
/* 58940*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->58961
/* 58943*/          OPC_CheckChild1Integer, 8, 
/* 58945*/          OPC_CheckChild1Type, MVT::i64,
/* 58947*/          OPC_MoveParent,
/* 58948*/          OPC_CheckType, MVT::v8i16,
/* 58950*/          OPC_EmitInteger, MVT::i32, 0, 
/* 58953*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv16i8_shift), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })) - Complexity = 11
                    // Dst: (USHLLv16i8_shift:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, 0:{ *:[i32] })
/* 58961*/        /*SwitchType*/ 18, MVT::v4i16,// ->58981
/* 58963*/          OPC_CheckChild1Integer, 4, 
/* 58965*/          OPC_CheckChild1Type, MVT::i64,
/* 58967*/          OPC_MoveParent,
/* 58968*/          OPC_CheckType, MVT::v4i32,
/* 58970*/          OPC_EmitInteger, MVT::i32, 0, 
/* 58973*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv8i16_shift), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })) - Complexity = 11
                    // Dst: (USHLLv8i16_shift:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, 0:{ *:[i32] })
/* 58981*/        /*SwitchType*/ 18, MVT::v2i32,// ->59001
/* 58983*/          OPC_CheckChild1Integer, 2, 
/* 58985*/          OPC_CheckChild1Type, MVT::i64,
/* 58987*/          OPC_MoveParent,
/* 58988*/          OPC_CheckType, MVT::v2i64,
/* 58990*/          OPC_EmitInteger, MVT::i32, 0, 
/* 58993*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv4i32_shift), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })) - Complexity = 11
                    // Dst: (USHLLv4i32_shift:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, 0:{ *:[i32] })
/* 59001*/        0, // EndSwitchType
/* 59002*/      0, // EndSwitchOpcode
/* 59003*/    /*Scope*/ 48, /*->59052*/
/* 59004*/      OPC_RecordChild0, // #0 = $Rn
/* 59005*/      OPC_SwitchType /*3 cases */, 13, MVT::v8i16,// ->59021
/* 59008*/        OPC_CheckChild0Type, MVT::v8i8,
/* 59010*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59013*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv8i8_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                  // Dst: (USHLLv8i8_shift:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, 0:{ *:[i32] })
/* 59021*/      /*SwitchType*/ 13, MVT::v4i32,// ->59036
/* 59023*/        OPC_CheckChild0Type, MVT::v4i16,
/* 59025*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59028*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv4i16_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (USHLLv4i16_shift:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, 0:{ *:[i32] })
/* 59036*/      /*SwitchType*/ 13, MVT::v2i64,// ->59051
/* 59038*/        OPC_CheckChild0Type, MVT::v2i32,
/* 59040*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59043*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv2i32_shift), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (USHLLv2i32_shift:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, 0:{ *:[i32] })
/* 59051*/      0, // EndSwitchType
/* 59052*/    0, /*End of Scope*/
/* 59053*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->59371
/* 59057*/    OPC_RecordMemRef,
/* 59058*/    OPC_RecordNode, // #0 = 'atomic_load_add' chained node
/* 59059*/    OPC_RecordChild1, // #1 = $Rn
/* 59060*/    OPC_CheckChild1Type, MVT::i64,
/* 59062*/    OPC_RecordChild2, // #2 = $Rm
/* 59063*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->59140
/* 59066*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_add_64
/* 59068*/      OPC_Scope, 13, /*->59083*/ // 5 children in Scope
/* 59070*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_add_64_monotonic
/* 59072*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59074*/        OPC_EmitMergeInputChains1_0,
/* 59075*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_add:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_monotonic>> - Complexity = 4
                  // Dst: (LDADDX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59083*/      /*Scope*/ 13, /*->59097*/
/* 59084*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_add_64_acquire
/* 59086*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59088*/        OPC_EmitMergeInputChains1_0,
/* 59089*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_add:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acquire>> - Complexity = 4
                  // Dst: (LDADDAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59097*/      /*Scope*/ 13, /*->59111*/
/* 59098*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_add_64_release
/* 59100*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59102*/        OPC_EmitMergeInputChains1_0,
/* 59103*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_add:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_release>> - Complexity = 4
                  // Dst: (LDADDLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59111*/      /*Scope*/ 13, /*->59125*/
/* 59112*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_add_64_acq_rel
/* 59114*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59116*/        OPC_EmitMergeInputChains1_0,
/* 59117*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_add:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acq_rel>> - Complexity = 4
                  // Dst: (LDADDALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59125*/      /*Scope*/ 13, /*->59139*/
/* 59126*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_add_64_seq_cst
/* 59128*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59130*/        OPC_EmitMergeInputChains1_0,
/* 59131*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_add:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_seq_cst>> - Complexity = 4
                  // Dst: (LDADDALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59139*/      0, /*End of Scope*/
/* 59140*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->59370
/* 59143*/      OPC_Scope, 74, /*->59219*/ // 3 children in Scope
/* 59145*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_add_32
/* 59147*/        OPC_Scope, 13, /*->59162*/ // 5 children in Scope
/* 59149*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_add_32_monotonic
/* 59151*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59153*/          OPC_EmitMergeInputChains1_0,
/* 59154*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_monotonic>> - Complexity = 4
                    // Dst: (LDADDW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59162*/        /*Scope*/ 13, /*->59176*/
/* 59163*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_add_32_acquire
/* 59165*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59167*/          OPC_EmitMergeInputChains1_0,
/* 59168*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acquire>> - Complexity = 4
                    // Dst: (LDADDAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59176*/        /*Scope*/ 13, /*->59190*/
/* 59177*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_add_32_release
/* 59179*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59181*/          OPC_EmitMergeInputChains1_0,
/* 59182*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_release>> - Complexity = 4
                    // Dst: (LDADDLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59190*/        /*Scope*/ 13, /*->59204*/
/* 59191*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_add_32_acq_rel
/* 59193*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59195*/          OPC_EmitMergeInputChains1_0,
/* 59196*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acq_rel>> - Complexity = 4
                    // Dst: (LDADDALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59204*/        /*Scope*/ 13, /*->59218*/
/* 59205*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_add_32_seq_cst
/* 59207*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59209*/          OPC_EmitMergeInputChains1_0,
/* 59210*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_seq_cst>> - Complexity = 4
                    // Dst: (LDADDALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59218*/        0, /*End of Scope*/
/* 59219*/      /*Scope*/ 74, /*->59294*/
/* 59220*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_add_16
/* 59222*/        OPC_Scope, 13, /*->59237*/ // 5 children in Scope
/* 59224*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_add_16_monotonic
/* 59226*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59228*/          OPC_EmitMergeInputChains1_0,
/* 59229*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_16>><<P:Predicate_atomic_load_add_16_monotonic>> - Complexity = 4
                    // Dst: (LDADDH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59237*/        /*Scope*/ 13, /*->59251*/
/* 59238*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_add_16_acquire
/* 59240*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59242*/          OPC_EmitMergeInputChains1_0,
/* 59243*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_16>><<P:Predicate_atomic_load_add_16_acquire>> - Complexity = 4
                    // Dst: (LDADDAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59251*/        /*Scope*/ 13, /*->59265*/
/* 59252*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_add_16_release
/* 59254*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59256*/          OPC_EmitMergeInputChains1_0,
/* 59257*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_16>><<P:Predicate_atomic_load_add_16_release>> - Complexity = 4
                    // Dst: (LDADDLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59265*/        /*Scope*/ 13, /*->59279*/
/* 59266*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_add_16_acq_rel
/* 59268*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59270*/          OPC_EmitMergeInputChains1_0,
/* 59271*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_16>><<P:Predicate_atomic_load_add_16_acq_rel>> - Complexity = 4
                    // Dst: (LDADDALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59279*/        /*Scope*/ 13, /*->59293*/
/* 59280*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_add_16_seq_cst
/* 59282*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59284*/          OPC_EmitMergeInputChains1_0,
/* 59285*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_16>><<P:Predicate_atomic_load_add_16_seq_cst>> - Complexity = 4
                    // Dst: (LDADDALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59293*/        0, /*End of Scope*/
/* 59294*/      /*Scope*/ 74, /*->59369*/
/* 59295*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_add_8
/* 59297*/        OPC_Scope, 13, /*->59312*/ // 5 children in Scope
/* 59299*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_add_8_monotonic
/* 59301*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59303*/          OPC_EmitMergeInputChains1_0,
/* 59304*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_8>><<P:Predicate_atomic_load_add_8_monotonic>> - Complexity = 4
                    // Dst: (LDADDB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59312*/        /*Scope*/ 13, /*->59326*/
/* 59313*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_add_8_acquire
/* 59315*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59317*/          OPC_EmitMergeInputChains1_0,
/* 59318*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_8>><<P:Predicate_atomic_load_add_8_acquire>> - Complexity = 4
                    // Dst: (LDADDAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59326*/        /*Scope*/ 13, /*->59340*/
/* 59327*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_add_8_release
/* 59329*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59331*/          OPC_EmitMergeInputChains1_0,
/* 59332*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_8>><<P:Predicate_atomic_load_add_8_release>> - Complexity = 4
                    // Dst: (LDADDLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59340*/        /*Scope*/ 13, /*->59354*/
/* 59341*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_add_8_acq_rel
/* 59343*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59345*/          OPC_EmitMergeInputChains1_0,
/* 59346*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_8>><<P:Predicate_atomic_load_add_8_acq_rel>> - Complexity = 4
                    // Dst: (LDADDALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59354*/        /*Scope*/ 13, /*->59368*/
/* 59355*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_add_8_seq_cst
/* 59357*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59359*/          OPC_EmitMergeInputChains1_0,
/* 59360*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_add:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_add_8>><<P:Predicate_atomic_load_add_8_seq_cst>> - Complexity = 4
                    // Dst: (LDADDALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59368*/        0, /*End of Scope*/
/* 59369*/      0, /*End of Scope*/
/* 59370*/    0, // EndSwitchType
/* 59371*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_LOAD_OR),// ->59689
/* 59375*/    OPC_RecordMemRef,
/* 59376*/    OPC_RecordNode, // #0 = 'atomic_load_or' chained node
/* 59377*/    OPC_RecordChild1, // #1 = $Rn
/* 59378*/    OPC_CheckChild1Type, MVT::i64,
/* 59380*/    OPC_RecordChild2, // #2 = $Rm
/* 59381*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->59458
/* 59384*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_or_64
/* 59386*/      OPC_Scope, 13, /*->59401*/ // 5 children in Scope
/* 59388*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_or_64_monotonic
/* 59390*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59392*/        OPC_EmitMergeInputChains1_0,
/* 59393*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_or:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_monotonic>> - Complexity = 4
                  // Dst: (LDSETX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59401*/      /*Scope*/ 13, /*->59415*/
/* 59402*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_or_64_acquire
/* 59404*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59406*/        OPC_EmitMergeInputChains1_0,
/* 59407*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_or:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acquire>> - Complexity = 4
                  // Dst: (LDSETAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59415*/      /*Scope*/ 13, /*->59429*/
/* 59416*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_or_64_release
/* 59418*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59420*/        OPC_EmitMergeInputChains1_0,
/* 59421*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_or:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_release>> - Complexity = 4
                  // Dst: (LDSETLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59429*/      /*Scope*/ 13, /*->59443*/
/* 59430*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_or_64_acq_rel
/* 59432*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59434*/        OPC_EmitMergeInputChains1_0,
/* 59435*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_or:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acq_rel>> - Complexity = 4
                  // Dst: (LDSETALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59443*/      /*Scope*/ 13, /*->59457*/
/* 59444*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_or_64_seq_cst
/* 59446*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59448*/        OPC_EmitMergeInputChains1_0,
/* 59449*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_or:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_seq_cst>> - Complexity = 4
                  // Dst: (LDSETALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59457*/      0, /*End of Scope*/
/* 59458*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->59688
/* 59461*/      OPC_Scope, 74, /*->59537*/ // 3 children in Scope
/* 59463*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_or_32
/* 59465*/        OPC_Scope, 13, /*->59480*/ // 5 children in Scope
/* 59467*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_or_32_monotonic
/* 59469*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59471*/          OPC_EmitMergeInputChains1_0,
/* 59472*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_monotonic>> - Complexity = 4
                    // Dst: (LDSETW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59480*/        /*Scope*/ 13, /*->59494*/
/* 59481*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_or_32_acquire
/* 59483*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59485*/          OPC_EmitMergeInputChains1_0,
/* 59486*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acquire>> - Complexity = 4
                    // Dst: (LDSETAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59494*/        /*Scope*/ 13, /*->59508*/
/* 59495*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_or_32_release
/* 59497*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59499*/          OPC_EmitMergeInputChains1_0,
/* 59500*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_release>> - Complexity = 4
                    // Dst: (LDSETLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59508*/        /*Scope*/ 13, /*->59522*/
/* 59509*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_or_32_acq_rel
/* 59511*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59513*/          OPC_EmitMergeInputChains1_0,
/* 59514*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acq_rel>> - Complexity = 4
                    // Dst: (LDSETALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59522*/        /*Scope*/ 13, /*->59536*/
/* 59523*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_or_32_seq_cst
/* 59525*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59527*/          OPC_EmitMergeInputChains1_0,
/* 59528*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_seq_cst>> - Complexity = 4
                    // Dst: (LDSETALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59536*/        0, /*End of Scope*/
/* 59537*/      /*Scope*/ 74, /*->59612*/
/* 59538*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_or_16
/* 59540*/        OPC_Scope, 13, /*->59555*/ // 5 children in Scope
/* 59542*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_or_16_monotonic
/* 59544*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59546*/          OPC_EmitMergeInputChains1_0,
/* 59547*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_16>><<P:Predicate_atomic_load_or_16_monotonic>> - Complexity = 4
                    // Dst: (LDSETH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59555*/        /*Scope*/ 13, /*->59569*/
/* 59556*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_or_16_acquire
/* 59558*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59560*/          OPC_EmitMergeInputChains1_0,
/* 59561*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_16>><<P:Predicate_atomic_load_or_16_acquire>> - Complexity = 4
                    // Dst: (LDSETAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59569*/        /*Scope*/ 13, /*->59583*/
/* 59570*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_or_16_release
/* 59572*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59574*/          OPC_EmitMergeInputChains1_0,
/* 59575*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_16>><<P:Predicate_atomic_load_or_16_release>> - Complexity = 4
                    // Dst: (LDSETLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59583*/        /*Scope*/ 13, /*->59597*/
/* 59584*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_or_16_acq_rel
/* 59586*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59588*/          OPC_EmitMergeInputChains1_0,
/* 59589*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_16>><<P:Predicate_atomic_load_or_16_acq_rel>> - Complexity = 4
                    // Dst: (LDSETALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59597*/        /*Scope*/ 13, /*->59611*/
/* 59598*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_or_16_seq_cst
/* 59600*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59602*/          OPC_EmitMergeInputChains1_0,
/* 59603*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_16>><<P:Predicate_atomic_load_or_16_seq_cst>> - Complexity = 4
                    // Dst: (LDSETALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59611*/        0, /*End of Scope*/
/* 59612*/      /*Scope*/ 74, /*->59687*/
/* 59613*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_or_8
/* 59615*/        OPC_Scope, 13, /*->59630*/ // 5 children in Scope
/* 59617*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_or_8_monotonic
/* 59619*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59621*/          OPC_EmitMergeInputChains1_0,
/* 59622*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_8>><<P:Predicate_atomic_load_or_8_monotonic>> - Complexity = 4
                    // Dst: (LDSETB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59630*/        /*Scope*/ 13, /*->59644*/
/* 59631*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_or_8_acquire
/* 59633*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59635*/          OPC_EmitMergeInputChains1_0,
/* 59636*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_8>><<P:Predicate_atomic_load_or_8_acquire>> - Complexity = 4
                    // Dst: (LDSETAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59644*/        /*Scope*/ 13, /*->59658*/
/* 59645*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_or_8_release
/* 59647*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59649*/          OPC_EmitMergeInputChains1_0,
/* 59650*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_8>><<P:Predicate_atomic_load_or_8_release>> - Complexity = 4
                    // Dst: (LDSETLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59658*/        /*Scope*/ 13, /*->59672*/
/* 59659*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_or_8_acq_rel
/* 59661*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59663*/          OPC_EmitMergeInputChains1_0,
/* 59664*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_8>><<P:Predicate_atomic_load_or_8_acq_rel>> - Complexity = 4
                    // Dst: (LDSETALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59672*/        /*Scope*/ 13, /*->59686*/
/* 59673*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_or_8_seq_cst
/* 59675*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59677*/          OPC_EmitMergeInputChains1_0,
/* 59678*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSETALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_or:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_or_8>><<P:Predicate_atomic_load_or_8_seq_cst>> - Complexity = 4
                    // Dst: (LDSETALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59686*/        0, /*End of Scope*/
/* 59687*/      0, /*End of Scope*/
/* 59688*/    0, // EndSwitchType
/* 59689*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),// ->60007
/* 59693*/    OPC_RecordMemRef,
/* 59694*/    OPC_RecordNode, // #0 = 'atomic_load_xor' chained node
/* 59695*/    OPC_RecordChild1, // #1 = $Rn
/* 59696*/    OPC_CheckChild1Type, MVT::i64,
/* 59698*/    OPC_RecordChild2, // #2 = $Rm
/* 59699*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->59776
/* 59702*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_xor_64
/* 59704*/      OPC_Scope, 13, /*->59719*/ // 5 children in Scope
/* 59706*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_xor_64_monotonic
/* 59708*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59710*/        OPC_EmitMergeInputChains1_0,
/* 59711*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_xor:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_monotonic>> - Complexity = 4
                  // Dst: (LDEORX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59719*/      /*Scope*/ 13, /*->59733*/
/* 59720*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_xor_64_acquire
/* 59722*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59724*/        OPC_EmitMergeInputChains1_0,
/* 59725*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_xor:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acquire>> - Complexity = 4
                  // Dst: (LDEORAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59733*/      /*Scope*/ 13, /*->59747*/
/* 59734*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_xor_64_release
/* 59736*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59738*/        OPC_EmitMergeInputChains1_0,
/* 59739*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_xor:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_release>> - Complexity = 4
                  // Dst: (LDEORLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59747*/      /*Scope*/ 13, /*->59761*/
/* 59748*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_xor_64_acq_rel
/* 59750*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59752*/        OPC_EmitMergeInputChains1_0,
/* 59753*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_xor:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acq_rel>> - Complexity = 4
                  // Dst: (LDEORALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59761*/      /*Scope*/ 13, /*->59775*/
/* 59762*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_xor_64_seq_cst
/* 59764*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59766*/        OPC_EmitMergeInputChains1_0,
/* 59767*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_xor:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_seq_cst>> - Complexity = 4
                  // Dst: (LDEORALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59775*/      0, /*End of Scope*/
/* 59776*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->60006
/* 59779*/      OPC_Scope, 74, /*->59855*/ // 3 children in Scope
/* 59781*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_xor_32
/* 59783*/        OPC_Scope, 13, /*->59798*/ // 5 children in Scope
/* 59785*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_xor_32_monotonic
/* 59787*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59789*/          OPC_EmitMergeInputChains1_0,
/* 59790*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_monotonic>> - Complexity = 4
                    // Dst: (LDEORW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59798*/        /*Scope*/ 13, /*->59812*/
/* 59799*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_xor_32_acquire
/* 59801*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59803*/          OPC_EmitMergeInputChains1_0,
/* 59804*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acquire>> - Complexity = 4
                    // Dst: (LDEORAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59812*/        /*Scope*/ 13, /*->59826*/
/* 59813*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_xor_32_release
/* 59815*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59817*/          OPC_EmitMergeInputChains1_0,
/* 59818*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_release>> - Complexity = 4
                    // Dst: (LDEORLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59826*/        /*Scope*/ 13, /*->59840*/
/* 59827*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_xor_32_acq_rel
/* 59829*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59831*/          OPC_EmitMergeInputChains1_0,
/* 59832*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acq_rel>> - Complexity = 4
                    // Dst: (LDEORALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59840*/        /*Scope*/ 13, /*->59854*/
/* 59841*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_xor_32_seq_cst
/* 59843*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59845*/          OPC_EmitMergeInputChains1_0,
/* 59846*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_seq_cst>> - Complexity = 4
                    // Dst: (LDEORALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59854*/        0, /*End of Scope*/
/* 59855*/      /*Scope*/ 74, /*->59930*/
/* 59856*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_xor_16
/* 59858*/        OPC_Scope, 13, /*->59873*/ // 5 children in Scope
/* 59860*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_xor_16_monotonic
/* 59862*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59864*/          OPC_EmitMergeInputChains1_0,
/* 59865*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_16>><<P:Predicate_atomic_load_xor_16_monotonic>> - Complexity = 4
                    // Dst: (LDEORH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59873*/        /*Scope*/ 13, /*->59887*/
/* 59874*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_xor_16_acquire
/* 59876*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59878*/          OPC_EmitMergeInputChains1_0,
/* 59879*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_16>><<P:Predicate_atomic_load_xor_16_acquire>> - Complexity = 4
                    // Dst: (LDEORAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59887*/        /*Scope*/ 13, /*->59901*/
/* 59888*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_xor_16_release
/* 59890*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59892*/          OPC_EmitMergeInputChains1_0,
/* 59893*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_16>><<P:Predicate_atomic_load_xor_16_release>> - Complexity = 4
                    // Dst: (LDEORLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59901*/        /*Scope*/ 13, /*->59915*/
/* 59902*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_xor_16_acq_rel
/* 59904*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59906*/          OPC_EmitMergeInputChains1_0,
/* 59907*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_16>><<P:Predicate_atomic_load_xor_16_acq_rel>> - Complexity = 4
                    // Dst: (LDEORALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59915*/        /*Scope*/ 13, /*->59929*/
/* 59916*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_xor_16_seq_cst
/* 59918*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59920*/          OPC_EmitMergeInputChains1_0,
/* 59921*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_16>><<P:Predicate_atomic_load_xor_16_seq_cst>> - Complexity = 4
                    // Dst: (LDEORALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59929*/        0, /*End of Scope*/
/* 59930*/      /*Scope*/ 74, /*->60005*/
/* 59931*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_xor_8
/* 59933*/        OPC_Scope, 13, /*->59948*/ // 5 children in Scope
/* 59935*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_xor_8_monotonic
/* 59937*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59939*/          OPC_EmitMergeInputChains1_0,
/* 59940*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_8>><<P:Predicate_atomic_load_xor_8_monotonic>> - Complexity = 4
                    // Dst: (LDEORB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59948*/        /*Scope*/ 13, /*->59962*/
/* 59949*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_xor_8_acquire
/* 59951*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59953*/          OPC_EmitMergeInputChains1_0,
/* 59954*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_8>><<P:Predicate_atomic_load_xor_8_acquire>> - Complexity = 4
                    // Dst: (LDEORAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59962*/        /*Scope*/ 13, /*->59976*/
/* 59963*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_xor_8_release
/* 59965*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59967*/          OPC_EmitMergeInputChains1_0,
/* 59968*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_8>><<P:Predicate_atomic_load_xor_8_release>> - Complexity = 4
                    // Dst: (LDEORLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59976*/        /*Scope*/ 13, /*->59990*/
/* 59977*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_xor_8_acq_rel
/* 59979*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59981*/          OPC_EmitMergeInputChains1_0,
/* 59982*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_8>><<P:Predicate_atomic_load_xor_8_acq_rel>> - Complexity = 4
                    // Dst: (LDEORALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 59990*/        /*Scope*/ 13, /*->60004*/
/* 59991*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_xor_8_seq_cst
/* 59993*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 59995*/          OPC_EmitMergeInputChains1_0,
/* 59996*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDEORALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_xor:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_xor_8>><<P:Predicate_atomic_load_xor_8_seq_cst>> - Complexity = 4
                    // Dst: (LDEORALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60004*/        0, /*End of Scope*/
/* 60005*/      0, /*End of Scope*/
/* 60006*/    0, // EndSwitchType
/* 60007*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_LOAD_CLR),// ->60325
/* 60011*/    OPC_RecordMemRef,
/* 60012*/    OPC_RecordNode, // #0 = 'atomic_load_clr' chained node
/* 60013*/    OPC_RecordChild1, // #1 = $Rn
/* 60014*/    OPC_CheckChild1Type, MVT::i64,
/* 60016*/    OPC_RecordChild2, // #2 = $Rm
/* 60017*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->60094
/* 60020*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_clr_64
/* 60022*/      OPC_Scope, 13, /*->60037*/ // 5 children in Scope
/* 60024*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_clr_64_monotonic
/* 60026*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60028*/        OPC_EmitMergeInputChains1_0,
/* 60029*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_clr:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_clr_64>><<P:Predicate_atomic_load_clr_64_monotonic>> - Complexity = 4
                  // Dst: (LDCLRX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60037*/      /*Scope*/ 13, /*->60051*/
/* 60038*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_clr_64_acquire
/* 60040*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60042*/        OPC_EmitMergeInputChains1_0,
/* 60043*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_clr:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_clr_64>><<P:Predicate_atomic_load_clr_64_acquire>> - Complexity = 4
                  // Dst: (LDCLRAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60051*/      /*Scope*/ 13, /*->60065*/
/* 60052*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_clr_64_release
/* 60054*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60056*/        OPC_EmitMergeInputChains1_0,
/* 60057*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_clr:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_clr_64>><<P:Predicate_atomic_load_clr_64_release>> - Complexity = 4
                  // Dst: (LDCLRLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60065*/      /*Scope*/ 13, /*->60079*/
/* 60066*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_clr_64_acq_rel
/* 60068*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60070*/        OPC_EmitMergeInputChains1_0,
/* 60071*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_clr:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_clr_64>><<P:Predicate_atomic_load_clr_64_acq_rel>> - Complexity = 4
                  // Dst: (LDCLRALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60079*/      /*Scope*/ 13, /*->60093*/
/* 60080*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_clr_64_seq_cst
/* 60082*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60084*/        OPC_EmitMergeInputChains1_0,
/* 60085*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_clr:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_clr_64>><<P:Predicate_atomic_load_clr_64_seq_cst>> - Complexity = 4
                  // Dst: (LDCLRALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60093*/      0, /*End of Scope*/
/* 60094*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->60324
/* 60097*/      OPC_Scope, 74, /*->60173*/ // 3 children in Scope
/* 60099*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_clr_32
/* 60101*/        OPC_Scope, 13, /*->60116*/ // 5 children in Scope
/* 60103*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_clr_32_monotonic
/* 60105*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60107*/          OPC_EmitMergeInputChains1_0,
/* 60108*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_32>><<P:Predicate_atomic_load_clr_32_monotonic>> - Complexity = 4
                    // Dst: (LDCLRW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60116*/        /*Scope*/ 13, /*->60130*/
/* 60117*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_clr_32_acquire
/* 60119*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60121*/          OPC_EmitMergeInputChains1_0,
/* 60122*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_32>><<P:Predicate_atomic_load_clr_32_acquire>> - Complexity = 4
                    // Dst: (LDCLRAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60130*/        /*Scope*/ 13, /*->60144*/
/* 60131*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_clr_32_release
/* 60133*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60135*/          OPC_EmitMergeInputChains1_0,
/* 60136*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_32>><<P:Predicate_atomic_load_clr_32_release>> - Complexity = 4
                    // Dst: (LDCLRLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60144*/        /*Scope*/ 13, /*->60158*/
/* 60145*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_clr_32_acq_rel
/* 60147*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60149*/          OPC_EmitMergeInputChains1_0,
/* 60150*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_32>><<P:Predicate_atomic_load_clr_32_acq_rel>> - Complexity = 4
                    // Dst: (LDCLRALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60158*/        /*Scope*/ 13, /*->60172*/
/* 60159*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_clr_32_seq_cst
/* 60161*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60163*/          OPC_EmitMergeInputChains1_0,
/* 60164*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_32>><<P:Predicate_atomic_load_clr_32_seq_cst>> - Complexity = 4
                    // Dst: (LDCLRALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60172*/        0, /*End of Scope*/
/* 60173*/      /*Scope*/ 74, /*->60248*/
/* 60174*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_clr_16
/* 60176*/        OPC_Scope, 13, /*->60191*/ // 5 children in Scope
/* 60178*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_clr_16_monotonic
/* 60180*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60182*/          OPC_EmitMergeInputChains1_0,
/* 60183*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_16>><<P:Predicate_atomic_load_clr_16_monotonic>> - Complexity = 4
                    // Dst: (LDCLRH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60191*/        /*Scope*/ 13, /*->60205*/
/* 60192*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_clr_16_acquire
/* 60194*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60196*/          OPC_EmitMergeInputChains1_0,
/* 60197*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_16>><<P:Predicate_atomic_load_clr_16_acquire>> - Complexity = 4
                    // Dst: (LDCLRAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60205*/        /*Scope*/ 13, /*->60219*/
/* 60206*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_clr_16_release
/* 60208*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60210*/          OPC_EmitMergeInputChains1_0,
/* 60211*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_16>><<P:Predicate_atomic_load_clr_16_release>> - Complexity = 4
                    // Dst: (LDCLRLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60219*/        /*Scope*/ 13, /*->60233*/
/* 60220*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_clr_16_acq_rel
/* 60222*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60224*/          OPC_EmitMergeInputChains1_0,
/* 60225*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_16>><<P:Predicate_atomic_load_clr_16_acq_rel>> - Complexity = 4
                    // Dst: (LDCLRALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60233*/        /*Scope*/ 13, /*->60247*/
/* 60234*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_clr_16_seq_cst
/* 60236*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60238*/          OPC_EmitMergeInputChains1_0,
/* 60239*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_16>><<P:Predicate_atomic_load_clr_16_seq_cst>> - Complexity = 4
                    // Dst: (LDCLRALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60247*/        0, /*End of Scope*/
/* 60248*/      /*Scope*/ 74, /*->60323*/
/* 60249*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_clr_8
/* 60251*/        OPC_Scope, 13, /*->60266*/ // 5 children in Scope
/* 60253*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_clr_8_monotonic
/* 60255*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60257*/          OPC_EmitMergeInputChains1_0,
/* 60258*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_8>><<P:Predicate_atomic_load_clr_8_monotonic>> - Complexity = 4
                    // Dst: (LDCLRB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60266*/        /*Scope*/ 13, /*->60280*/
/* 60267*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_clr_8_acquire
/* 60269*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60271*/          OPC_EmitMergeInputChains1_0,
/* 60272*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_8>><<P:Predicate_atomic_load_clr_8_acquire>> - Complexity = 4
                    // Dst: (LDCLRAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60280*/        /*Scope*/ 13, /*->60294*/
/* 60281*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_clr_8_release
/* 60283*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60285*/          OPC_EmitMergeInputChains1_0,
/* 60286*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_8>><<P:Predicate_atomic_load_clr_8_release>> - Complexity = 4
                    // Dst: (LDCLRLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60294*/        /*Scope*/ 13, /*->60308*/
/* 60295*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_clr_8_acq_rel
/* 60297*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60299*/          OPC_EmitMergeInputChains1_0,
/* 60300*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_8>><<P:Predicate_atomic_load_clr_8_acq_rel>> - Complexity = 4
                    // Dst: (LDCLRALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60308*/        /*Scope*/ 13, /*->60322*/
/* 60309*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_clr_8_seq_cst
/* 60311*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60313*/          OPC_EmitMergeInputChains1_0,
/* 60314*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_clr:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_clr_8>><<P:Predicate_atomic_load_clr_8_seq_cst>> - Complexity = 4
                    // Dst: (LDCLRALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60322*/        0, /*End of Scope*/
/* 60323*/      0, /*End of Scope*/
/* 60324*/    0, // EndSwitchType
/* 60325*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_LOAD_MAX),// ->60643
/* 60329*/    OPC_RecordMemRef,
/* 60330*/    OPC_RecordNode, // #0 = 'atomic_load_max' chained node
/* 60331*/    OPC_RecordChild1, // #1 = $Rn
/* 60332*/    OPC_CheckChild1Type, MVT::i64,
/* 60334*/    OPC_RecordChild2, // #2 = $Rm
/* 60335*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->60412
/* 60338*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_max_64
/* 60340*/      OPC_Scope, 13, /*->60355*/ // 5 children in Scope
/* 60342*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_max_64_monotonic
/* 60344*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60346*/        OPC_EmitMergeInputChains1_0,
/* 60347*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_max:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_monotonic>> - Complexity = 4
                  // Dst: (LDSMAXX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60355*/      /*Scope*/ 13, /*->60369*/
/* 60356*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_max_64_acquire
/* 60358*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60360*/        OPC_EmitMergeInputChains1_0,
/* 60361*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_max:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acquire>> - Complexity = 4
                  // Dst: (LDSMAXAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60369*/      /*Scope*/ 13, /*->60383*/
/* 60370*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_max_64_release
/* 60372*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60374*/        OPC_EmitMergeInputChains1_0,
/* 60375*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_max:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_release>> - Complexity = 4
                  // Dst: (LDSMAXLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60383*/      /*Scope*/ 13, /*->60397*/
/* 60384*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_max_64_acq_rel
/* 60386*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60388*/        OPC_EmitMergeInputChains1_0,
/* 60389*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_max:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acq_rel>> - Complexity = 4
                  // Dst: (LDSMAXALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60397*/      /*Scope*/ 13, /*->60411*/
/* 60398*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_max_64_seq_cst
/* 60400*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60402*/        OPC_EmitMergeInputChains1_0,
/* 60403*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_max:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_seq_cst>> - Complexity = 4
                  // Dst: (LDSMAXALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60411*/      0, /*End of Scope*/
/* 60412*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->60642
/* 60415*/      OPC_Scope, 74, /*->60491*/ // 3 children in Scope
/* 60417*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_max_32
/* 60419*/        OPC_Scope, 13, /*->60434*/ // 5 children in Scope
/* 60421*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_max_32_monotonic
/* 60423*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60425*/          OPC_EmitMergeInputChains1_0,
/* 60426*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_monotonic>> - Complexity = 4
                    // Dst: (LDSMAXW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60434*/        /*Scope*/ 13, /*->60448*/
/* 60435*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_max_32_acquire
/* 60437*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60439*/          OPC_EmitMergeInputChains1_0,
/* 60440*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acquire>> - Complexity = 4
                    // Dst: (LDSMAXAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60448*/        /*Scope*/ 13, /*->60462*/
/* 60449*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_max_32_release
/* 60451*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60453*/          OPC_EmitMergeInputChains1_0,
/* 60454*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_release>> - Complexity = 4
                    // Dst: (LDSMAXLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60462*/        /*Scope*/ 13, /*->60476*/
/* 60463*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_max_32_acq_rel
/* 60465*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60467*/          OPC_EmitMergeInputChains1_0,
/* 60468*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acq_rel>> - Complexity = 4
                    // Dst: (LDSMAXALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60476*/        /*Scope*/ 13, /*->60490*/
/* 60477*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_max_32_seq_cst
/* 60479*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60481*/          OPC_EmitMergeInputChains1_0,
/* 60482*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_seq_cst>> - Complexity = 4
                    // Dst: (LDSMAXALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60490*/        0, /*End of Scope*/
/* 60491*/      /*Scope*/ 74, /*->60566*/
/* 60492*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_max_16
/* 60494*/        OPC_Scope, 13, /*->60509*/ // 5 children in Scope
/* 60496*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_max_16_monotonic
/* 60498*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60500*/          OPC_EmitMergeInputChains1_0,
/* 60501*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_16>><<P:Predicate_atomic_load_max_16_monotonic>> - Complexity = 4
                    // Dst: (LDSMAXH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60509*/        /*Scope*/ 13, /*->60523*/
/* 60510*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_max_16_acquire
/* 60512*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60514*/          OPC_EmitMergeInputChains1_0,
/* 60515*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_16>><<P:Predicate_atomic_load_max_16_acquire>> - Complexity = 4
                    // Dst: (LDSMAXAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60523*/        /*Scope*/ 13, /*->60537*/
/* 60524*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_max_16_release
/* 60526*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60528*/          OPC_EmitMergeInputChains1_0,
/* 60529*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_16>><<P:Predicate_atomic_load_max_16_release>> - Complexity = 4
                    // Dst: (LDSMAXLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60537*/        /*Scope*/ 13, /*->60551*/
/* 60538*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_max_16_acq_rel
/* 60540*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60542*/          OPC_EmitMergeInputChains1_0,
/* 60543*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_16>><<P:Predicate_atomic_load_max_16_acq_rel>> - Complexity = 4
                    // Dst: (LDSMAXALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60551*/        /*Scope*/ 13, /*->60565*/
/* 60552*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_max_16_seq_cst
/* 60554*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60556*/          OPC_EmitMergeInputChains1_0,
/* 60557*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_16>><<P:Predicate_atomic_load_max_16_seq_cst>> - Complexity = 4
                    // Dst: (LDSMAXALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60565*/        0, /*End of Scope*/
/* 60566*/      /*Scope*/ 74, /*->60641*/
/* 60567*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_max_8
/* 60569*/        OPC_Scope, 13, /*->60584*/ // 5 children in Scope
/* 60571*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_max_8_monotonic
/* 60573*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60575*/          OPC_EmitMergeInputChains1_0,
/* 60576*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_8>><<P:Predicate_atomic_load_max_8_monotonic>> - Complexity = 4
                    // Dst: (LDSMAXB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60584*/        /*Scope*/ 13, /*->60598*/
/* 60585*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_max_8_acquire
/* 60587*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60589*/          OPC_EmitMergeInputChains1_0,
/* 60590*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_8>><<P:Predicate_atomic_load_max_8_acquire>> - Complexity = 4
                    // Dst: (LDSMAXAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60598*/        /*Scope*/ 13, /*->60612*/
/* 60599*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_max_8_release
/* 60601*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60603*/          OPC_EmitMergeInputChains1_0,
/* 60604*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_8>><<P:Predicate_atomic_load_max_8_release>> - Complexity = 4
                    // Dst: (LDSMAXLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60612*/        /*Scope*/ 13, /*->60626*/
/* 60613*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_max_8_acq_rel
/* 60615*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60617*/          OPC_EmitMergeInputChains1_0,
/* 60618*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_8>><<P:Predicate_atomic_load_max_8_acq_rel>> - Complexity = 4
                    // Dst: (LDSMAXALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60626*/        /*Scope*/ 13, /*->60640*/
/* 60627*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_max_8_seq_cst
/* 60629*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60631*/          OPC_EmitMergeInputChains1_0,
/* 60632*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMAXALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_max:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_max_8>><<P:Predicate_atomic_load_max_8_seq_cst>> - Complexity = 4
                    // Dst: (LDSMAXALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60640*/        0, /*End of Scope*/
/* 60641*/      0, /*End of Scope*/
/* 60642*/    0, // EndSwitchType
/* 60643*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_LOAD_MIN),// ->60961
/* 60647*/    OPC_RecordMemRef,
/* 60648*/    OPC_RecordNode, // #0 = 'atomic_load_min' chained node
/* 60649*/    OPC_RecordChild1, // #1 = $Rn
/* 60650*/    OPC_CheckChild1Type, MVT::i64,
/* 60652*/    OPC_RecordChild2, // #2 = $Rm
/* 60653*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->60730
/* 60656*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_min_64
/* 60658*/      OPC_Scope, 13, /*->60673*/ // 5 children in Scope
/* 60660*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_min_64_monotonic
/* 60662*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60664*/        OPC_EmitMergeInputChains1_0,
/* 60665*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_min:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_monotonic>> - Complexity = 4
                  // Dst: (LDSMINX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60673*/      /*Scope*/ 13, /*->60687*/
/* 60674*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_min_64_acquire
/* 60676*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60678*/        OPC_EmitMergeInputChains1_0,
/* 60679*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_min:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acquire>> - Complexity = 4
                  // Dst: (LDSMINAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60687*/      /*Scope*/ 13, /*->60701*/
/* 60688*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_min_64_release
/* 60690*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60692*/        OPC_EmitMergeInputChains1_0,
/* 60693*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_min:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_release>> - Complexity = 4
                  // Dst: (LDSMINLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60701*/      /*Scope*/ 13, /*->60715*/
/* 60702*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_min_64_acq_rel
/* 60704*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60706*/        OPC_EmitMergeInputChains1_0,
/* 60707*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_min:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acq_rel>> - Complexity = 4
                  // Dst: (LDSMINALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60715*/      /*Scope*/ 13, /*->60729*/
/* 60716*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_min_64_seq_cst
/* 60718*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60720*/        OPC_EmitMergeInputChains1_0,
/* 60721*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_min:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_seq_cst>> - Complexity = 4
                  // Dst: (LDSMINALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60729*/      0, /*End of Scope*/
/* 60730*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->60960
/* 60733*/      OPC_Scope, 74, /*->60809*/ // 3 children in Scope
/* 60735*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_min_32
/* 60737*/        OPC_Scope, 13, /*->60752*/ // 5 children in Scope
/* 60739*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_min_32_monotonic
/* 60741*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60743*/          OPC_EmitMergeInputChains1_0,
/* 60744*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_monotonic>> - Complexity = 4
                    // Dst: (LDSMINW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60752*/        /*Scope*/ 13, /*->60766*/
/* 60753*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_min_32_acquire
/* 60755*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60757*/          OPC_EmitMergeInputChains1_0,
/* 60758*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acquire>> - Complexity = 4
                    // Dst: (LDSMINAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60766*/        /*Scope*/ 13, /*->60780*/
/* 60767*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_min_32_release
/* 60769*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60771*/          OPC_EmitMergeInputChains1_0,
/* 60772*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_release>> - Complexity = 4
                    // Dst: (LDSMINLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60780*/        /*Scope*/ 13, /*->60794*/
/* 60781*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_min_32_acq_rel
/* 60783*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60785*/          OPC_EmitMergeInputChains1_0,
/* 60786*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acq_rel>> - Complexity = 4
                    // Dst: (LDSMINALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60794*/        /*Scope*/ 13, /*->60808*/
/* 60795*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_min_32_seq_cst
/* 60797*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60799*/          OPC_EmitMergeInputChains1_0,
/* 60800*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_seq_cst>> - Complexity = 4
                    // Dst: (LDSMINALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60808*/        0, /*End of Scope*/
/* 60809*/      /*Scope*/ 74, /*->60884*/
/* 60810*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_min_16
/* 60812*/        OPC_Scope, 13, /*->60827*/ // 5 children in Scope
/* 60814*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_min_16_monotonic
/* 60816*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60818*/          OPC_EmitMergeInputChains1_0,
/* 60819*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_16>><<P:Predicate_atomic_load_min_16_monotonic>> - Complexity = 4
                    // Dst: (LDSMINH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60827*/        /*Scope*/ 13, /*->60841*/
/* 60828*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_min_16_acquire
/* 60830*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60832*/          OPC_EmitMergeInputChains1_0,
/* 60833*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_16>><<P:Predicate_atomic_load_min_16_acquire>> - Complexity = 4
                    // Dst: (LDSMINAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60841*/        /*Scope*/ 13, /*->60855*/
/* 60842*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_min_16_release
/* 60844*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60846*/          OPC_EmitMergeInputChains1_0,
/* 60847*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_16>><<P:Predicate_atomic_load_min_16_release>> - Complexity = 4
                    // Dst: (LDSMINLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60855*/        /*Scope*/ 13, /*->60869*/
/* 60856*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_min_16_acq_rel
/* 60858*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60860*/          OPC_EmitMergeInputChains1_0,
/* 60861*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_16>><<P:Predicate_atomic_load_min_16_acq_rel>> - Complexity = 4
                    // Dst: (LDSMINALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60869*/        /*Scope*/ 13, /*->60883*/
/* 60870*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_min_16_seq_cst
/* 60872*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60874*/          OPC_EmitMergeInputChains1_0,
/* 60875*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_16>><<P:Predicate_atomic_load_min_16_seq_cst>> - Complexity = 4
                    // Dst: (LDSMINALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60883*/        0, /*End of Scope*/
/* 60884*/      /*Scope*/ 74, /*->60959*/
/* 60885*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_min_8
/* 60887*/        OPC_Scope, 13, /*->60902*/ // 5 children in Scope
/* 60889*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_min_8_monotonic
/* 60891*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60893*/          OPC_EmitMergeInputChains1_0,
/* 60894*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_8>><<P:Predicate_atomic_load_min_8_monotonic>> - Complexity = 4
                    // Dst: (LDSMINB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60902*/        /*Scope*/ 13, /*->60916*/
/* 60903*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_min_8_acquire
/* 60905*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60907*/          OPC_EmitMergeInputChains1_0,
/* 60908*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_8>><<P:Predicate_atomic_load_min_8_acquire>> - Complexity = 4
                    // Dst: (LDSMINAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60916*/        /*Scope*/ 13, /*->60930*/
/* 60917*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_min_8_release
/* 60919*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60921*/          OPC_EmitMergeInputChains1_0,
/* 60922*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_8>><<P:Predicate_atomic_load_min_8_release>> - Complexity = 4
                    // Dst: (LDSMINLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60930*/        /*Scope*/ 13, /*->60944*/
/* 60931*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_min_8_acq_rel
/* 60933*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60935*/          OPC_EmitMergeInputChains1_0,
/* 60936*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_8>><<P:Predicate_atomic_load_min_8_acq_rel>> - Complexity = 4
                    // Dst: (LDSMINALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60944*/        /*Scope*/ 13, /*->60958*/
/* 60945*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_min_8_seq_cst
/* 60947*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60949*/          OPC_EmitMergeInputChains1_0,
/* 60950*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDSMINALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_min:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_min_8>><<P:Predicate_atomic_load_min_8_seq_cst>> - Complexity = 4
                    // Dst: (LDSMINALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60958*/        0, /*End of Scope*/
/* 60959*/      0, /*End of Scope*/
/* 60960*/    0, // EndSwitchType
/* 60961*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_LOAD_UMAX),// ->61279
/* 60965*/    OPC_RecordMemRef,
/* 60966*/    OPC_RecordNode, // #0 = 'atomic_load_umax' chained node
/* 60967*/    OPC_RecordChild1, // #1 = $Rn
/* 60968*/    OPC_CheckChild1Type, MVT::i64,
/* 60970*/    OPC_RecordChild2, // #2 = $Rm
/* 60971*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->61048
/* 60974*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_umax_64
/* 60976*/      OPC_Scope, 13, /*->60991*/ // 5 children in Scope
/* 60978*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_umax_64_monotonic
/* 60980*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60982*/        OPC_EmitMergeInputChains1_0,
/* 60983*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umax:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_monotonic>> - Complexity = 4
                  // Dst: (LDUMAXX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 60991*/      /*Scope*/ 13, /*->61005*/
/* 60992*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_umax_64_acquire
/* 60994*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 60996*/        OPC_EmitMergeInputChains1_0,
/* 60997*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umax:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acquire>> - Complexity = 4
                  // Dst: (LDUMAXAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61005*/      /*Scope*/ 13, /*->61019*/
/* 61006*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_umax_64_release
/* 61008*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61010*/        OPC_EmitMergeInputChains1_0,
/* 61011*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umax:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_release>> - Complexity = 4
                  // Dst: (LDUMAXLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61019*/      /*Scope*/ 13, /*->61033*/
/* 61020*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_umax_64_acq_rel
/* 61022*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61024*/        OPC_EmitMergeInputChains1_0,
/* 61025*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umax:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acq_rel>> - Complexity = 4
                  // Dst: (LDUMAXALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61033*/      /*Scope*/ 13, /*->61047*/
/* 61034*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_umax_64_seq_cst
/* 61036*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61038*/        OPC_EmitMergeInputChains1_0,
/* 61039*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umax:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_seq_cst>> - Complexity = 4
                  // Dst: (LDUMAXALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61047*/      0, /*End of Scope*/
/* 61048*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->61278
/* 61051*/      OPC_Scope, 74, /*->61127*/ // 3 children in Scope
/* 61053*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_umax_32
/* 61055*/        OPC_Scope, 13, /*->61070*/ // 5 children in Scope
/* 61057*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_umax_32_monotonic
/* 61059*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61061*/          OPC_EmitMergeInputChains1_0,
/* 61062*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_monotonic>> - Complexity = 4
                    // Dst: (LDUMAXW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61070*/        /*Scope*/ 13, /*->61084*/
/* 61071*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_umax_32_acquire
/* 61073*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61075*/          OPC_EmitMergeInputChains1_0,
/* 61076*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acquire>> - Complexity = 4
                    // Dst: (LDUMAXAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61084*/        /*Scope*/ 13, /*->61098*/
/* 61085*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_umax_32_release
/* 61087*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61089*/          OPC_EmitMergeInputChains1_0,
/* 61090*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_release>> - Complexity = 4
                    // Dst: (LDUMAXLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61098*/        /*Scope*/ 13, /*->61112*/
/* 61099*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_umax_32_acq_rel
/* 61101*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61103*/          OPC_EmitMergeInputChains1_0,
/* 61104*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acq_rel>> - Complexity = 4
                    // Dst: (LDUMAXALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61112*/        /*Scope*/ 13, /*->61126*/
/* 61113*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_umax_32_seq_cst
/* 61115*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61117*/          OPC_EmitMergeInputChains1_0,
/* 61118*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_seq_cst>> - Complexity = 4
                    // Dst: (LDUMAXALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61126*/        0, /*End of Scope*/
/* 61127*/      /*Scope*/ 74, /*->61202*/
/* 61128*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_umax_16
/* 61130*/        OPC_Scope, 13, /*->61145*/ // 5 children in Scope
/* 61132*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_umax_16_monotonic
/* 61134*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61136*/          OPC_EmitMergeInputChains1_0,
/* 61137*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_16>><<P:Predicate_atomic_load_umax_16_monotonic>> - Complexity = 4
                    // Dst: (LDUMAXH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61145*/        /*Scope*/ 13, /*->61159*/
/* 61146*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_umax_16_acquire
/* 61148*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61150*/          OPC_EmitMergeInputChains1_0,
/* 61151*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_16>><<P:Predicate_atomic_load_umax_16_acquire>> - Complexity = 4
                    // Dst: (LDUMAXAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61159*/        /*Scope*/ 13, /*->61173*/
/* 61160*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_umax_16_release
/* 61162*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61164*/          OPC_EmitMergeInputChains1_0,
/* 61165*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_16>><<P:Predicate_atomic_load_umax_16_release>> - Complexity = 4
                    // Dst: (LDUMAXLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61173*/        /*Scope*/ 13, /*->61187*/
/* 61174*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_umax_16_acq_rel
/* 61176*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61178*/          OPC_EmitMergeInputChains1_0,
/* 61179*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_16>><<P:Predicate_atomic_load_umax_16_acq_rel>> - Complexity = 4
                    // Dst: (LDUMAXALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61187*/        /*Scope*/ 13, /*->61201*/
/* 61188*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_umax_16_seq_cst
/* 61190*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61192*/          OPC_EmitMergeInputChains1_0,
/* 61193*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_16>><<P:Predicate_atomic_load_umax_16_seq_cst>> - Complexity = 4
                    // Dst: (LDUMAXALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61201*/        0, /*End of Scope*/
/* 61202*/      /*Scope*/ 74, /*->61277*/
/* 61203*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_umax_8
/* 61205*/        OPC_Scope, 13, /*->61220*/ // 5 children in Scope
/* 61207*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_umax_8_monotonic
/* 61209*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61211*/          OPC_EmitMergeInputChains1_0,
/* 61212*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_8>><<P:Predicate_atomic_load_umax_8_monotonic>> - Complexity = 4
                    // Dst: (LDUMAXB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61220*/        /*Scope*/ 13, /*->61234*/
/* 61221*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_umax_8_acquire
/* 61223*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61225*/          OPC_EmitMergeInputChains1_0,
/* 61226*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_8>><<P:Predicate_atomic_load_umax_8_acquire>> - Complexity = 4
                    // Dst: (LDUMAXAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61234*/        /*Scope*/ 13, /*->61248*/
/* 61235*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_umax_8_release
/* 61237*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61239*/          OPC_EmitMergeInputChains1_0,
/* 61240*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_8>><<P:Predicate_atomic_load_umax_8_release>> - Complexity = 4
                    // Dst: (LDUMAXLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61248*/        /*Scope*/ 13, /*->61262*/
/* 61249*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_umax_8_acq_rel
/* 61251*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61253*/          OPC_EmitMergeInputChains1_0,
/* 61254*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_8>><<P:Predicate_atomic_load_umax_8_acq_rel>> - Complexity = 4
                    // Dst: (LDUMAXALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61262*/        /*Scope*/ 13, /*->61276*/
/* 61263*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_umax_8_seq_cst
/* 61265*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61267*/          OPC_EmitMergeInputChains1_0,
/* 61268*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMAXALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umax:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umax_8>><<P:Predicate_atomic_load_umax_8_seq_cst>> - Complexity = 4
                    // Dst: (LDUMAXALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61276*/        0, /*End of Scope*/
/* 61277*/      0, /*End of Scope*/
/* 61278*/    0, // EndSwitchType
/* 61279*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_LOAD_UMIN),// ->61597
/* 61283*/    OPC_RecordMemRef,
/* 61284*/    OPC_RecordNode, // #0 = 'atomic_load_umin' chained node
/* 61285*/    OPC_RecordChild1, // #1 = $Rn
/* 61286*/    OPC_CheckChild1Type, MVT::i64,
/* 61288*/    OPC_RecordChild2, // #2 = $Rm
/* 61289*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->61366
/* 61292*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_umin_64
/* 61294*/      OPC_Scope, 13, /*->61309*/ // 5 children in Scope
/* 61296*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_umin_64_monotonic
/* 61298*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61300*/        OPC_EmitMergeInputChains1_0,
/* 61301*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umin:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_monotonic>> - Complexity = 4
                  // Dst: (LDUMINX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61309*/      /*Scope*/ 13, /*->61323*/
/* 61310*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_umin_64_acquire
/* 61312*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61314*/        OPC_EmitMergeInputChains1_0,
/* 61315*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umin:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acquire>> - Complexity = 4
                  // Dst: (LDUMINAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61323*/      /*Scope*/ 13, /*->61337*/
/* 61324*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_umin_64_release
/* 61326*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61328*/        OPC_EmitMergeInputChains1_0,
/* 61329*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umin:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_release>> - Complexity = 4
                  // Dst: (LDUMINLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61337*/      /*Scope*/ 13, /*->61351*/
/* 61338*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_umin_64_acq_rel
/* 61340*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61342*/        OPC_EmitMergeInputChains1_0,
/* 61343*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umin:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acq_rel>> - Complexity = 4
                  // Dst: (LDUMINALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61351*/      /*Scope*/ 13, /*->61365*/
/* 61352*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_umin_64_seq_cst
/* 61354*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61356*/        OPC_EmitMergeInputChains1_0,
/* 61357*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_load_umin:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_seq_cst>> - Complexity = 4
                  // Dst: (LDUMINALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61365*/      0, /*End of Scope*/
/* 61366*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->61596
/* 61369*/      OPC_Scope, 74, /*->61445*/ // 3 children in Scope
/* 61371*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_umin_32
/* 61373*/        OPC_Scope, 13, /*->61388*/ // 5 children in Scope
/* 61375*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_umin_32_monotonic
/* 61377*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61379*/          OPC_EmitMergeInputChains1_0,
/* 61380*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_monotonic>> - Complexity = 4
                    // Dst: (LDUMINW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61388*/        /*Scope*/ 13, /*->61402*/
/* 61389*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_umin_32_acquire
/* 61391*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61393*/          OPC_EmitMergeInputChains1_0,
/* 61394*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acquire>> - Complexity = 4
                    // Dst: (LDUMINAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61402*/        /*Scope*/ 13, /*->61416*/
/* 61403*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_umin_32_release
/* 61405*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61407*/          OPC_EmitMergeInputChains1_0,
/* 61408*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_release>> - Complexity = 4
                    // Dst: (LDUMINLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61416*/        /*Scope*/ 13, /*->61430*/
/* 61417*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_umin_32_acq_rel
/* 61419*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61421*/          OPC_EmitMergeInputChains1_0,
/* 61422*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acq_rel>> - Complexity = 4
                    // Dst: (LDUMINALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61430*/        /*Scope*/ 13, /*->61444*/
/* 61431*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_umin_32_seq_cst
/* 61433*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61435*/          OPC_EmitMergeInputChains1_0,
/* 61436*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_seq_cst>> - Complexity = 4
                    // Dst: (LDUMINALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61444*/        0, /*End of Scope*/
/* 61445*/      /*Scope*/ 74, /*->61520*/
/* 61446*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_umin_16
/* 61448*/        OPC_Scope, 13, /*->61463*/ // 5 children in Scope
/* 61450*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_umin_16_monotonic
/* 61452*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61454*/          OPC_EmitMergeInputChains1_0,
/* 61455*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_16>><<P:Predicate_atomic_load_umin_16_monotonic>> - Complexity = 4
                    // Dst: (LDUMINH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61463*/        /*Scope*/ 13, /*->61477*/
/* 61464*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_umin_16_acquire
/* 61466*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61468*/          OPC_EmitMergeInputChains1_0,
/* 61469*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_16>><<P:Predicate_atomic_load_umin_16_acquire>> - Complexity = 4
                    // Dst: (LDUMINAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61477*/        /*Scope*/ 13, /*->61491*/
/* 61478*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_umin_16_release
/* 61480*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61482*/          OPC_EmitMergeInputChains1_0,
/* 61483*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_16>><<P:Predicate_atomic_load_umin_16_release>> - Complexity = 4
                    // Dst: (LDUMINLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61491*/        /*Scope*/ 13, /*->61505*/
/* 61492*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_umin_16_acq_rel
/* 61494*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61496*/          OPC_EmitMergeInputChains1_0,
/* 61497*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_16>><<P:Predicate_atomic_load_umin_16_acq_rel>> - Complexity = 4
                    // Dst: (LDUMINALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61505*/        /*Scope*/ 13, /*->61519*/
/* 61506*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_umin_16_seq_cst
/* 61508*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61510*/          OPC_EmitMergeInputChains1_0,
/* 61511*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_16>><<P:Predicate_atomic_load_umin_16_seq_cst>> - Complexity = 4
                    // Dst: (LDUMINALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61519*/        0, /*End of Scope*/
/* 61520*/      /*Scope*/ 74, /*->61595*/
/* 61521*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_umin_8
/* 61523*/        OPC_Scope, 13, /*->61538*/ // 5 children in Scope
/* 61525*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_umin_8_monotonic
/* 61527*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61529*/          OPC_EmitMergeInputChains1_0,
/* 61530*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_8>><<P:Predicate_atomic_load_umin_8_monotonic>> - Complexity = 4
                    // Dst: (LDUMINB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61538*/        /*Scope*/ 13, /*->61552*/
/* 61539*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_umin_8_acquire
/* 61541*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61543*/          OPC_EmitMergeInputChains1_0,
/* 61544*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_8>><<P:Predicate_atomic_load_umin_8_acquire>> - Complexity = 4
                    // Dst: (LDUMINAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61552*/        /*Scope*/ 13, /*->61566*/
/* 61553*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_umin_8_release
/* 61555*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61557*/          OPC_EmitMergeInputChains1_0,
/* 61558*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_8>><<P:Predicate_atomic_load_umin_8_release>> - Complexity = 4
                    // Dst: (LDUMINLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61566*/        /*Scope*/ 13, /*->61580*/
/* 61567*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_umin_8_acq_rel
/* 61569*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61571*/          OPC_EmitMergeInputChains1_0,
/* 61572*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_8>><<P:Predicate_atomic_load_umin_8_acq_rel>> - Complexity = 4
                    // Dst: (LDUMINALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61580*/        /*Scope*/ 13, /*->61594*/
/* 61581*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_umin_8_seq_cst
/* 61583*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61585*/          OPC_EmitMergeInputChains1_0,
/* 61586*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDUMINALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_load_umin:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_umin_8>><<P:Predicate_atomic_load_umin_8_seq_cst>> - Complexity = 4
                    // Dst: (LDUMINALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61594*/        0, /*End of Scope*/
/* 61595*/      0, /*End of Scope*/
/* 61596*/    0, // EndSwitchType
/* 61597*/  /*SwitchOpcode*/ 58|128,2/*314*/, TARGET_VAL(ISD::ATOMIC_SWAP),// ->61915
/* 61601*/    OPC_RecordMemRef,
/* 61602*/    OPC_RecordNode, // #0 = 'atomic_swap' chained node
/* 61603*/    OPC_RecordChild1, // #1 = $Rn
/* 61604*/    OPC_CheckChild1Type, MVT::i64,
/* 61606*/    OPC_RecordChild2, // #2 = $Rm
/* 61607*/    OPC_SwitchType /*2 cases */, 74, MVT::i64,// ->61684
/* 61610*/      OPC_CheckPredicate, 51, // Predicate_atomic_swap_64
/* 61612*/      OPC_Scope, 13, /*->61627*/ // 5 children in Scope
/* 61614*/        OPC_CheckPredicate, 60, // Predicate_atomic_swap_64_monotonic
/* 61616*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61618*/        OPC_EmitMergeInputChains1_0,
/* 61619*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_monotonic>> - Complexity = 4
                  // Dst: (SWPX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61627*/      /*Scope*/ 13, /*->61641*/
/* 61628*/        OPC_CheckPredicate, 61, // Predicate_atomic_swap_64_acquire
/* 61630*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61632*/        OPC_EmitMergeInputChains1_0,
/* 61633*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acquire>> - Complexity = 4
                  // Dst: (SWPAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61641*/      /*Scope*/ 13, /*->61655*/
/* 61642*/        OPC_CheckPredicate, 62, // Predicate_atomic_swap_64_release
/* 61644*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61646*/        OPC_EmitMergeInputChains1_0,
/* 61647*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_release>> - Complexity = 4
                  // Dst: (SWPLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61655*/      /*Scope*/ 13, /*->61669*/
/* 61656*/        OPC_CheckPredicate, 63, // Predicate_atomic_swap_64_acq_rel
/* 61658*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61660*/        OPC_EmitMergeInputChains1_0,
/* 61661*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acq_rel>> - Complexity = 4
                  // Dst: (SWPALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61669*/      /*Scope*/ 13, /*->61683*/
/* 61670*/        OPC_CheckPredicate, 64, // Predicate_atomic_swap_64_seq_cst
/* 61672*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61674*/        OPC_EmitMergeInputChains1_0,
/* 61675*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 1, 
                  // Src: (atomic_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_seq_cst>> - Complexity = 4
                  // Dst: (SWPALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61683*/      0, /*End of Scope*/
/* 61684*/    /*SwitchType*/ 99|128,1/*227*/, MVT::i32,// ->61914
/* 61687*/      OPC_Scope, 74, /*->61763*/ // 3 children in Scope
/* 61689*/        OPC_CheckPredicate, 50, // Predicate_atomic_swap_32
/* 61691*/        OPC_Scope, 13, /*->61706*/ // 5 children in Scope
/* 61693*/          OPC_CheckPredicate, 60, // Predicate_atomic_swap_32_monotonic
/* 61695*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61697*/          OPC_EmitMergeInputChains1_0,
/* 61698*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_monotonic>> - Complexity = 4
                    // Dst: (SWPW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61706*/        /*Scope*/ 13, /*->61720*/
/* 61707*/          OPC_CheckPredicate, 61, // Predicate_atomic_swap_32_acquire
/* 61709*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61711*/          OPC_EmitMergeInputChains1_0,
/* 61712*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acquire>> - Complexity = 4
                    // Dst: (SWPAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61720*/        /*Scope*/ 13, /*->61734*/
/* 61721*/          OPC_CheckPredicate, 62, // Predicate_atomic_swap_32_release
/* 61723*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61725*/          OPC_EmitMergeInputChains1_0,
/* 61726*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_release>> - Complexity = 4
                    // Dst: (SWPLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61734*/        /*Scope*/ 13, /*->61748*/
/* 61735*/          OPC_CheckPredicate, 63, // Predicate_atomic_swap_32_acq_rel
/* 61737*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61739*/          OPC_EmitMergeInputChains1_0,
/* 61740*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acq_rel>> - Complexity = 4
                    // Dst: (SWPALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61748*/        /*Scope*/ 13, /*->61762*/
/* 61749*/          OPC_CheckPredicate, 64, // Predicate_atomic_swap_32_seq_cst
/* 61751*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61753*/          OPC_EmitMergeInputChains1_0,
/* 61754*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_seq_cst>> - Complexity = 4
                    // Dst: (SWPALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61762*/        0, /*End of Scope*/
/* 61763*/      /*Scope*/ 74, /*->61838*/
/* 61764*/        OPC_CheckPredicate, 49, // Predicate_atomic_swap_16
/* 61766*/        OPC_Scope, 13, /*->61781*/ // 5 children in Scope
/* 61768*/          OPC_CheckPredicate, 60, // Predicate_atomic_swap_16_monotonic
/* 61770*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61772*/          OPC_EmitMergeInputChains1_0,
/* 61773*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_16>><<P:Predicate_atomic_swap_16_monotonic>> - Complexity = 4
                    // Dst: (SWPH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61781*/        /*Scope*/ 13, /*->61795*/
/* 61782*/          OPC_CheckPredicate, 61, // Predicate_atomic_swap_16_acquire
/* 61784*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61786*/          OPC_EmitMergeInputChains1_0,
/* 61787*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_16>><<P:Predicate_atomic_swap_16_acquire>> - Complexity = 4
                    // Dst: (SWPAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61795*/        /*Scope*/ 13, /*->61809*/
/* 61796*/          OPC_CheckPredicate, 62, // Predicate_atomic_swap_16_release
/* 61798*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61800*/          OPC_EmitMergeInputChains1_0,
/* 61801*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_16>><<P:Predicate_atomic_swap_16_release>> - Complexity = 4
                    // Dst: (SWPLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61809*/        /*Scope*/ 13, /*->61823*/
/* 61810*/          OPC_CheckPredicate, 63, // Predicate_atomic_swap_16_acq_rel
/* 61812*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61814*/          OPC_EmitMergeInputChains1_0,
/* 61815*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_16>><<P:Predicate_atomic_swap_16_acq_rel>> - Complexity = 4
                    // Dst: (SWPALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61823*/        /*Scope*/ 13, /*->61837*/
/* 61824*/          OPC_CheckPredicate, 64, // Predicate_atomic_swap_16_seq_cst
/* 61826*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61828*/          OPC_EmitMergeInputChains1_0,
/* 61829*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_16>><<P:Predicate_atomic_swap_16_seq_cst>> - Complexity = 4
                    // Dst: (SWPALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61837*/        0, /*End of Scope*/
/* 61838*/      /*Scope*/ 74, /*->61913*/
/* 61839*/        OPC_CheckPredicate, 47, // Predicate_atomic_swap_8
/* 61841*/        OPC_Scope, 13, /*->61856*/ // 5 children in Scope
/* 61843*/          OPC_CheckPredicate, 60, // Predicate_atomic_swap_8_monotonic
/* 61845*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61847*/          OPC_EmitMergeInputChains1_0,
/* 61848*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_8>><<P:Predicate_atomic_swap_8_monotonic>> - Complexity = 4
                    // Dst: (SWPB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61856*/        /*Scope*/ 13, /*->61870*/
/* 61857*/          OPC_CheckPredicate, 61, // Predicate_atomic_swap_8_acquire
/* 61859*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61861*/          OPC_EmitMergeInputChains1_0,
/* 61862*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_8>><<P:Predicate_atomic_swap_8_acquire>> - Complexity = 4
                    // Dst: (SWPAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61870*/        /*Scope*/ 13, /*->61884*/
/* 61871*/          OPC_CheckPredicate, 62, // Predicate_atomic_swap_8_release
/* 61873*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61875*/          OPC_EmitMergeInputChains1_0,
/* 61876*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_8>><<P:Predicate_atomic_swap_8_release>> - Complexity = 4
                    // Dst: (SWPLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61884*/        /*Scope*/ 13, /*->61898*/
/* 61885*/          OPC_CheckPredicate, 63, // Predicate_atomic_swap_8_acq_rel
/* 61887*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61889*/          OPC_EmitMergeInputChains1_0,
/* 61890*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_8>><<P:Predicate_atomic_swap_8_acq_rel>> - Complexity = 4
                    // Dst: (SWPALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61898*/        /*Scope*/ 13, /*->61912*/
/* 61899*/          OPC_CheckPredicate, 64, // Predicate_atomic_swap_8_seq_cst
/* 61901*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61903*/          OPC_EmitMergeInputChains1_0,
/* 61904*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SWPALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 1, 
                    // Src: (atomic_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_swap_8>><<P:Predicate_atomic_swap_8_seq_cst>> - Complexity = 4
                    // Dst: (SWPALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rm, GPR64sp:{ *:[i64] }:$Rn)
/* 61912*/        0, /*End of Scope*/
/* 61913*/      0, /*End of Scope*/
/* 61914*/    0, // EndSwitchType
/* 61915*/  /*SwitchOpcode*/ 79|128,2/*335*/, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),// ->62254
/* 61919*/    OPC_RecordMemRef,
/* 61920*/    OPC_RecordNode, // #0 = 'atomic_cmp_swap' chained node
/* 61921*/    OPC_RecordChild1, // #1 = $Rn
/* 61922*/    OPC_CheckChild1Type, MVT::i64,
/* 61924*/    OPC_RecordChild2, // #2 = $Rold
/* 61925*/    OPC_RecordChild3, // #3 = $Rnew
/* 61926*/    OPC_SwitchType /*2 cases */, 79, MVT::i64,// ->62008
/* 61929*/      OPC_CheckPredicate, 51, // Predicate_atomic_cmp_swap_64
/* 61931*/      OPC_Scope, 14, /*->61947*/ // 5 children in Scope
/* 61933*/        OPC_CheckPredicate, 60, // Predicate_atomic_cmp_swap_64_monotonic
/* 61935*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61937*/        OPC_EmitMergeInputChains1_0,
/* 61938*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 3/*#Ops*/, 2, 3, 1, 
                  // Src: (atomic_cmp_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_monotonic>> - Complexity = 4
                  // Dst: (CASX:{ *:[i64] } GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 61947*/      /*Scope*/ 14, /*->61962*/
/* 61948*/        OPC_CheckPredicate, 61, // Predicate_atomic_cmp_swap_64_acquire
/* 61950*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61952*/        OPC_EmitMergeInputChains1_0,
/* 61953*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 3/*#Ops*/, 2, 3, 1, 
                  // Src: (atomic_cmp_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_acquire>> - Complexity = 4
                  // Dst: (CASAX:{ *:[i64] } GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 61962*/      /*Scope*/ 14, /*->61977*/
/* 61963*/        OPC_CheckPredicate, 62, // Predicate_atomic_cmp_swap_64_release
/* 61965*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61967*/        OPC_EmitMergeInputChains1_0,
/* 61968*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 3/*#Ops*/, 2, 3, 1, 
                  // Src: (atomic_cmp_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_release>> - Complexity = 4
                  // Dst: (CASLX:{ *:[i64] } GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 61977*/      /*Scope*/ 14, /*->61992*/
/* 61978*/        OPC_CheckPredicate, 63, // Predicate_atomic_cmp_swap_64_acq_rel
/* 61980*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61982*/        OPC_EmitMergeInputChains1_0,
/* 61983*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 3/*#Ops*/, 2, 3, 1, 
                  // Src: (atomic_cmp_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_acq_rel>> - Complexity = 4
                  // Dst: (CASALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 61992*/      /*Scope*/ 14, /*->62007*/
/* 61993*/        OPC_CheckPredicate, 64, // Predicate_atomic_cmp_swap_64_seq_cst
/* 61995*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 61997*/        OPC_EmitMergeInputChains1_0,
/* 61998*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 3/*#Ops*/, 2, 3, 1, 
                  // Src: (atomic_cmp_swap:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_seq_cst>> - Complexity = 4
                  // Dst: (CASALX:{ *:[i64] } GPR64:{ *:[i64] }:$Rold, GPR64:{ *:[i64] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62007*/      0, /*End of Scope*/
/* 62008*/    /*SwitchType*/ 114|128,1/*242*/, MVT::i32,// ->62253
/* 62011*/      OPC_Scope, 79, /*->62092*/ // 3 children in Scope
/* 62013*/        OPC_CheckPredicate, 50, // Predicate_atomic_cmp_swap_32
/* 62015*/        OPC_Scope, 14, /*->62031*/ // 5 children in Scope
/* 62017*/          OPC_CheckPredicate, 60, // Predicate_atomic_cmp_swap_32_monotonic
/* 62019*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62021*/          OPC_EmitMergeInputChains1_0,
/* 62022*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_monotonic>> - Complexity = 4
                    // Dst: (CASW:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62031*/        /*Scope*/ 14, /*->62046*/
/* 62032*/          OPC_CheckPredicate, 61, // Predicate_atomic_cmp_swap_32_acquire
/* 62034*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62036*/          OPC_EmitMergeInputChains1_0,
/* 62037*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_acquire>> - Complexity = 4
                    // Dst: (CASAW:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62046*/        /*Scope*/ 14, /*->62061*/
/* 62047*/          OPC_CheckPredicate, 62, // Predicate_atomic_cmp_swap_32_release
/* 62049*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62051*/          OPC_EmitMergeInputChains1_0,
/* 62052*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_release>> - Complexity = 4
                    // Dst: (CASLW:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62061*/        /*Scope*/ 14, /*->62076*/
/* 62062*/          OPC_CheckPredicate, 63, // Predicate_atomic_cmp_swap_32_acq_rel
/* 62064*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62066*/          OPC_EmitMergeInputChains1_0,
/* 62067*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_acq_rel>> - Complexity = 4
                    // Dst: (CASALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62076*/        /*Scope*/ 14, /*->62091*/
/* 62077*/          OPC_CheckPredicate, 64, // Predicate_atomic_cmp_swap_32_seq_cst
/* 62079*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62081*/          OPC_EmitMergeInputChains1_0,
/* 62082*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_seq_cst>> - Complexity = 4
                    // Dst: (CASALW:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62091*/        0, /*End of Scope*/
/* 62092*/      /*Scope*/ 79, /*->62172*/
/* 62093*/        OPC_CheckPredicate, 49, // Predicate_atomic_cmp_swap_16
/* 62095*/        OPC_Scope, 14, /*->62111*/ // 5 children in Scope
/* 62097*/          OPC_CheckPredicate, 60, // Predicate_atomic_cmp_swap_16_monotonic
/* 62099*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62101*/          OPC_EmitMergeInputChains1_0,
/* 62102*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_16>><<P:Predicate_atomic_cmp_swap_16_monotonic>> - Complexity = 4
                    // Dst: (CASH:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62111*/        /*Scope*/ 14, /*->62126*/
/* 62112*/          OPC_CheckPredicate, 61, // Predicate_atomic_cmp_swap_16_acquire
/* 62114*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62116*/          OPC_EmitMergeInputChains1_0,
/* 62117*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_16>><<P:Predicate_atomic_cmp_swap_16_acquire>> - Complexity = 4
                    // Dst: (CASAH:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62126*/        /*Scope*/ 14, /*->62141*/
/* 62127*/          OPC_CheckPredicate, 62, // Predicate_atomic_cmp_swap_16_release
/* 62129*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62131*/          OPC_EmitMergeInputChains1_0,
/* 62132*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_16>><<P:Predicate_atomic_cmp_swap_16_release>> - Complexity = 4
                    // Dst: (CASLH:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62141*/        /*Scope*/ 14, /*->62156*/
/* 62142*/          OPC_CheckPredicate, 63, // Predicate_atomic_cmp_swap_16_acq_rel
/* 62144*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62146*/          OPC_EmitMergeInputChains1_0,
/* 62147*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_16>><<P:Predicate_atomic_cmp_swap_16_acq_rel>> - Complexity = 4
                    // Dst: (CASALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62156*/        /*Scope*/ 14, /*->62171*/
/* 62157*/          OPC_CheckPredicate, 64, // Predicate_atomic_cmp_swap_16_seq_cst
/* 62159*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62161*/          OPC_EmitMergeInputChains1_0,
/* 62162*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_16>><<P:Predicate_atomic_cmp_swap_16_seq_cst>> - Complexity = 4
                    // Dst: (CASALH:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62171*/        0, /*End of Scope*/
/* 62172*/      /*Scope*/ 79, /*->62252*/
/* 62173*/        OPC_CheckPredicate, 47, // Predicate_atomic_cmp_swap_8
/* 62175*/        OPC_Scope, 14, /*->62191*/ // 5 children in Scope
/* 62177*/          OPC_CheckPredicate, 60, // Predicate_atomic_cmp_swap_8_monotonic
/* 62179*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62181*/          OPC_EmitMergeInputChains1_0,
/* 62182*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_8>><<P:Predicate_atomic_cmp_swap_8_monotonic>> - Complexity = 4
                    // Dst: (CASB:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62191*/        /*Scope*/ 14, /*->62206*/
/* 62192*/          OPC_CheckPredicate, 61, // Predicate_atomic_cmp_swap_8_acquire
/* 62194*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62196*/          OPC_EmitMergeInputChains1_0,
/* 62197*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_8>><<P:Predicate_atomic_cmp_swap_8_acquire>> - Complexity = 4
                    // Dst: (CASAB:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62206*/        /*Scope*/ 14, /*->62221*/
/* 62207*/          OPC_CheckPredicate, 62, // Predicate_atomic_cmp_swap_8_release
/* 62209*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62211*/          OPC_EmitMergeInputChains1_0,
/* 62212*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_8>><<P:Predicate_atomic_cmp_swap_8_release>> - Complexity = 4
                    // Dst: (CASLB:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62221*/        /*Scope*/ 14, /*->62236*/
/* 62222*/          OPC_CheckPredicate, 63, // Predicate_atomic_cmp_swap_8_acq_rel
/* 62224*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62226*/          OPC_EmitMergeInputChains1_0,
/* 62227*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_8>><<P:Predicate_atomic_cmp_swap_8_acq_rel>> - Complexity = 4
                    // Dst: (CASALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62236*/        /*Scope*/ 14, /*->62251*/
/* 62237*/          OPC_CheckPredicate, 64, // Predicate_atomic_cmp_swap_8_seq_cst
/* 62239*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62241*/          OPC_EmitMergeInputChains1_0,
/* 62242*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::CASALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 3/*#Ops*/, 2, 3, 1, 
                    // Src: (atomic_cmp_swap:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew)<<P:Predicate_atomic_cmp_swap_8>><<P:Predicate_atomic_cmp_swap_8_seq_cst>> - Complexity = 4
                    // Dst: (CASALB:{ *:[i32] } GPR32:{ *:[i32] }:$Rold, GPR32:{ *:[i32] }:$Rnew, GPR64sp:{ *:[i64] }:$Rn)
/* 62251*/        0, /*End of Scope*/
/* 62252*/      0, /*End of Scope*/
/* 62253*/    0, // EndSwitchType
/* 62254*/  /*SwitchOpcode*/ 58, TARGET_VAL(ISD::Constant),// ->62315
/* 62257*/    OPC_RecordNode, // #0 = $src
/* 62258*/    OPC_SwitchType /*2 cases */, 42, MVT::i64,// ->62303
/* 62261*/      OPC_Scope, 29, /*->62292*/ // 2 children in Scope
/* 62263*/        OPC_CheckPredicate, 44, // Predicate_i64imm_32bit
/* 62265*/        OPC_EmitInteger, MVT::i64, 0, 
/* 62268*/        OPC_EmitConvertToTarget, 0,
/* 62270*/        OPC_EmitNodeXForm, 2, 2, // trunc_imm
/* 62273*/        OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 62280*/        OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 62283*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 1, 4, 5, 
                  // Src: (imm:{ *:[i64] })<<P:Predicate_i64imm_32bit>>:$src - Complexity = 4
                  // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOVi32imm:{ *:[i32] } (trunc_imm:{ *:[i32] } (imm:{ *:[i64] }):$src)), sub_32:{ *:[i32] })
/* 62292*/      /*Scope*/ 9, /*->62302*/
/* 62293*/        OPC_EmitConvertToTarget, 0,
/* 62295*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVi64imm), 0,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (imm:{ *:[i64] }):$src - Complexity = 3
                  // Dst: (MOVi64imm:{ *:[i64] } (imm:{ *:[i64] }):$src)
/* 62302*/      0, /*End of Scope*/
/* 62303*/    /*SwitchType*/ 9, MVT::i32,// ->62314
/* 62305*/      OPC_EmitConvertToTarget, 0,
/* 62307*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVi32imm), 0,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (imm:{ *:[i32] }):$src - Complexity = 3
                // Dst: (MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
/* 62314*/    0, // EndSwitchType
/* 62315*/  /*SwitchOpcode*/ 26|128,4/*538*/, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),// ->62857
/* 62319*/    OPC_RecordMemRef,
/* 62320*/    OPC_RecordNode, // #0 = 'atomic_load_sub' chained node
/* 62321*/    OPC_RecordChild1, // #1 = $Rn
/* 62322*/    OPC_CheckChild1Type, MVT::i64,
/* 62324*/    OPC_RecordChild2, // #2 = $Rm
/* 62325*/    OPC_SwitchType /*2 cases */, 1|128,1/*129*/, MVT::i64,// ->62458
/* 62329*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_sub_64
/* 62331*/      OPC_Scope, 24, /*->62357*/ // 5 children in Scope
/* 62333*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_sub_64_monotonic
/* 62335*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62337*/        OPC_EmitMergeInputChains1_0,
/* 62338*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62341*/        OPC_EmitNode1, TARGET_VAL(AArch64::SUBXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62349*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_sub:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_monotonic>> - Complexity = 4
                  // Dst: (LDADDX:{ *:[i64] } (SUBXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62357*/      /*Scope*/ 24, /*->62382*/
/* 62358*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_sub_64_acquire
/* 62360*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62362*/        OPC_EmitMergeInputChains1_0,
/* 62363*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62366*/        OPC_EmitNode1, TARGET_VAL(AArch64::SUBXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62374*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_sub:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acquire>> - Complexity = 4
                  // Dst: (LDADDAX:{ *:[i64] } (SUBXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62382*/      /*Scope*/ 24, /*->62407*/
/* 62383*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_sub_64_release
/* 62385*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62387*/        OPC_EmitMergeInputChains1_0,
/* 62388*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62391*/        OPC_EmitNode1, TARGET_VAL(AArch64::SUBXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62399*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_sub:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_release>> - Complexity = 4
                  // Dst: (LDADDLX:{ *:[i64] } (SUBXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62407*/      /*Scope*/ 24, /*->62432*/
/* 62408*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_sub_64_acq_rel
/* 62410*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62412*/        OPC_EmitMergeInputChains1_0,
/* 62413*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62416*/        OPC_EmitNode1, TARGET_VAL(AArch64::SUBXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62424*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_sub:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acq_rel>> - Complexity = 4
                  // Dst: (LDADDALX:{ *:[i64] } (SUBXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62432*/      /*Scope*/ 24, /*->62457*/
/* 62433*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_sub_64_seq_cst
/* 62435*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62437*/        OPC_EmitMergeInputChains1_0,
/* 62438*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62441*/        OPC_EmitNode1, TARGET_VAL(AArch64::SUBXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62449*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_sub:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_seq_cst>> - Complexity = 4
                  // Dst: (LDADDALX:{ *:[i64] } (SUBXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62457*/      0, /*End of Scope*/
/* 62458*/    /*SwitchType*/ 11|128,3/*395*/, MVT::i32,// ->62856
/* 62461*/      OPC_Scope, 1|128,1/*129*/, /*->62593*/ // 3 children in Scope
/* 62464*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_sub_32
/* 62466*/        OPC_Scope, 24, /*->62492*/ // 5 children in Scope
/* 62468*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_sub_32_monotonic
/* 62470*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62472*/          OPC_EmitMergeInputChains1_0,
/* 62473*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62476*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62484*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_monotonic>> - Complexity = 4
                    // Dst: (LDADDW:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62492*/        /*Scope*/ 24, /*->62517*/
/* 62493*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_sub_32_acquire
/* 62495*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62497*/          OPC_EmitMergeInputChains1_0,
/* 62498*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62501*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62509*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acquire>> - Complexity = 4
                    // Dst: (LDADDAW:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62517*/        /*Scope*/ 24, /*->62542*/
/* 62518*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_sub_32_release
/* 62520*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62522*/          OPC_EmitMergeInputChains1_0,
/* 62523*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62526*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62534*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_release>> - Complexity = 4
                    // Dst: (LDADDLW:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62542*/        /*Scope*/ 24, /*->62567*/
/* 62543*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_sub_32_acq_rel
/* 62545*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62547*/          OPC_EmitMergeInputChains1_0,
/* 62548*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62551*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62559*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acq_rel>> - Complexity = 4
                    // Dst: (LDADDALW:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62567*/        /*Scope*/ 24, /*->62592*/
/* 62568*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_sub_32_seq_cst
/* 62570*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62572*/          OPC_EmitMergeInputChains1_0,
/* 62573*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62576*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62584*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_seq_cst>> - Complexity = 4
                    // Dst: (LDADDALW:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62592*/        0, /*End of Scope*/
/* 62593*/      /*Scope*/ 1|128,1/*129*/, /*->62724*/
/* 62595*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_sub_16
/* 62597*/        OPC_Scope, 24, /*->62623*/ // 5 children in Scope
/* 62599*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_sub_16_monotonic
/* 62601*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62603*/          OPC_EmitMergeInputChains1_0,
/* 62604*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62607*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62615*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_16>><<P:Predicate_atomic_load_sub_16_monotonic>> - Complexity = 4
                    // Dst: (LDADDH:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62623*/        /*Scope*/ 24, /*->62648*/
/* 62624*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_sub_16_acquire
/* 62626*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62628*/          OPC_EmitMergeInputChains1_0,
/* 62629*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62632*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62640*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_16>><<P:Predicate_atomic_load_sub_16_acquire>> - Complexity = 4
                    // Dst: (LDADDAH:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62648*/        /*Scope*/ 24, /*->62673*/
/* 62649*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_sub_16_release
/* 62651*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62653*/          OPC_EmitMergeInputChains1_0,
/* 62654*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62657*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62665*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_16>><<P:Predicate_atomic_load_sub_16_release>> - Complexity = 4
                    // Dst: (LDADDLH:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62673*/        /*Scope*/ 24, /*->62698*/
/* 62674*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_sub_16_acq_rel
/* 62676*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62678*/          OPC_EmitMergeInputChains1_0,
/* 62679*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62682*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62690*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_16>><<P:Predicate_atomic_load_sub_16_acq_rel>> - Complexity = 4
                    // Dst: (LDADDALH:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62698*/        /*Scope*/ 24, /*->62723*/
/* 62699*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_sub_16_seq_cst
/* 62701*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62703*/          OPC_EmitMergeInputChains1_0,
/* 62704*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62707*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62715*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_16>><<P:Predicate_atomic_load_sub_16_seq_cst>> - Complexity = 4
                    // Dst: (LDADDALH:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62723*/        0, /*End of Scope*/
/* 62724*/      /*Scope*/ 1|128,1/*129*/, /*->62855*/
/* 62726*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_sub_8
/* 62728*/        OPC_Scope, 24, /*->62754*/ // 5 children in Scope
/* 62730*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_sub_8_monotonic
/* 62732*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62734*/          OPC_EmitMergeInputChains1_0,
/* 62735*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62738*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62746*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_8>><<P:Predicate_atomic_load_sub_8_monotonic>> - Complexity = 4
                    // Dst: (LDADDB:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62754*/        /*Scope*/ 24, /*->62779*/
/* 62755*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_sub_8_acquire
/* 62757*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62759*/          OPC_EmitMergeInputChains1_0,
/* 62760*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62763*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62771*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_8>><<P:Predicate_atomic_load_sub_8_acquire>> - Complexity = 4
                    // Dst: (LDADDAB:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62779*/        /*Scope*/ 24, /*->62804*/
/* 62780*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_sub_8_release
/* 62782*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62784*/          OPC_EmitMergeInputChains1_0,
/* 62785*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62788*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62796*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_8>><<P:Predicate_atomic_load_sub_8_release>> - Complexity = 4
                    // Dst: (LDADDLB:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62804*/        /*Scope*/ 24, /*->62829*/
/* 62805*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_sub_8_acq_rel
/* 62807*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62809*/          OPC_EmitMergeInputChains1_0,
/* 62810*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62813*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62821*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_8>><<P:Predicate_atomic_load_sub_8_acq_rel>> - Complexity = 4
                    // Dst: (LDADDALB:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62829*/        /*Scope*/ 24, /*->62854*/
/* 62830*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_sub_8_seq_cst
/* 62832*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62834*/          OPC_EmitMergeInputChains1_0,
/* 62835*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 62838*/          OPC_EmitNode1, TARGET_VAL(AArch64::SUBWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62846*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDADDALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_sub:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_sub_8>><<P:Predicate_atomic_load_sub_8_seq_cst>> - Complexity = 4
                    // Dst: (LDADDALB:{ *:[i32] } (SUBWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62854*/        0, /*End of Scope*/
/* 62855*/      0, /*End of Scope*/
/* 62856*/    0, // EndSwitchType
/* 62857*/  /*SwitchOpcode*/ 26|128,4/*538*/, TARGET_VAL(ISD::ATOMIC_LOAD_AND),// ->63399
/* 62861*/    OPC_RecordMemRef,
/* 62862*/    OPC_RecordNode, // #0 = 'atomic_load_and' chained node
/* 62863*/    OPC_RecordChild1, // #1 = $Rn
/* 62864*/    OPC_CheckChild1Type, MVT::i64,
/* 62866*/    OPC_RecordChild2, // #2 = $Rm
/* 62867*/    OPC_SwitchType /*2 cases */, 1|128,1/*129*/, MVT::i64,// ->63000
/* 62871*/      OPC_CheckPredicate, 51, // Predicate_atomic_load_and_64
/* 62873*/      OPC_Scope, 24, /*->62899*/ // 5 children in Scope
/* 62875*/        OPC_CheckPredicate, 60, // Predicate_atomic_load_and_64_monotonic
/* 62877*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62879*/        OPC_EmitMergeInputChains1_0,
/* 62880*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62883*/        OPC_EmitNode1, TARGET_VAL(AArch64::ORNXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62891*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_and:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_monotonic>> - Complexity = 4
                  // Dst: (LDCLRX:{ *:[i64] } (ORNXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62899*/      /*Scope*/ 24, /*->62924*/
/* 62900*/        OPC_CheckPredicate, 61, // Predicate_atomic_load_and_64_acquire
/* 62902*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62904*/        OPC_EmitMergeInputChains1_0,
/* 62905*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62908*/        OPC_EmitNode1, TARGET_VAL(AArch64::ORNXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62916*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_and:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acquire>> - Complexity = 4
                  // Dst: (LDCLRAX:{ *:[i64] } (ORNXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62924*/      /*Scope*/ 24, /*->62949*/
/* 62925*/        OPC_CheckPredicate, 62, // Predicate_atomic_load_and_64_release
/* 62927*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62929*/        OPC_EmitMergeInputChains1_0,
/* 62930*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62933*/        OPC_EmitNode1, TARGET_VAL(AArch64::ORNXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62941*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRLX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_and:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_release>> - Complexity = 4
                  // Dst: (LDCLRLX:{ *:[i64] } (ORNXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62949*/      /*Scope*/ 24, /*->62974*/
/* 62950*/        OPC_CheckPredicate, 63, // Predicate_atomic_load_and_64_acq_rel
/* 62952*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62954*/        OPC_EmitMergeInputChains1_0,
/* 62955*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62958*/        OPC_EmitNode1, TARGET_VAL(AArch64::ORNXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62966*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_and:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acq_rel>> - Complexity = 4
                  // Dst: (LDCLRALX:{ *:[i64] } (ORNXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62974*/      /*Scope*/ 24, /*->62999*/
/* 62975*/        OPC_CheckPredicate, 64, // Predicate_atomic_load_and_64_seq_cst
/* 62977*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 62979*/        OPC_EmitMergeInputChains1_0,
/* 62980*/        OPC_EmitRegister, MVT::i64, AArch64::XZR,
/* 62983*/        OPC_EmitNode1, TARGET_VAL(AArch64::ORNXrr), 0,
                      MVT::i64, 2/*#Ops*/, 3, 2,  // Results = #4
/* 62991*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 4, 1, 
                  // Src: (atomic_load_and:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_seq_cst>> - Complexity = 4
                  // Dst: (LDCLRALX:{ *:[i64] } (ORNXrr:{ *:[i64] } XZR:{ *:[i64] }, GPR64:{ *:[i64] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 62999*/      0, /*End of Scope*/
/* 63000*/    /*SwitchType*/ 11|128,3/*395*/, MVT::i32,// ->63398
/* 63003*/      OPC_Scope, 1|128,1/*129*/, /*->63135*/ // 3 children in Scope
/* 63006*/        OPC_CheckPredicate, 50, // Predicate_atomic_load_and_32
/* 63008*/        OPC_Scope, 24, /*->63034*/ // 5 children in Scope
/* 63010*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_and_32_monotonic
/* 63012*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63014*/          OPC_EmitMergeInputChains1_0,
/* 63015*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63018*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63026*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_monotonic>> - Complexity = 4
                    // Dst: (LDCLRW:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63034*/        /*Scope*/ 24, /*->63059*/
/* 63035*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_and_32_acquire
/* 63037*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63039*/          OPC_EmitMergeInputChains1_0,
/* 63040*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63043*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63051*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRAW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acquire>> - Complexity = 4
                    // Dst: (LDCLRAW:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63059*/        /*Scope*/ 24, /*->63084*/
/* 63060*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_and_32_release
/* 63062*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63064*/          OPC_EmitMergeInputChains1_0,
/* 63065*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63068*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63076*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRLW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_release>> - Complexity = 4
                    // Dst: (LDCLRLW:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63084*/        /*Scope*/ 24, /*->63109*/
/* 63085*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_and_32_acq_rel
/* 63087*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63089*/          OPC_EmitMergeInputChains1_0,
/* 63090*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63093*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63101*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acq_rel>> - Complexity = 4
                    // Dst: (LDCLRALW:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63109*/        /*Scope*/ 24, /*->63134*/
/* 63110*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_and_32_seq_cst
/* 63112*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63114*/          OPC_EmitMergeInputChains1_0,
/* 63115*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63118*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63126*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_seq_cst>> - Complexity = 4
                    // Dst: (LDCLRALW:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63134*/        0, /*End of Scope*/
/* 63135*/      /*Scope*/ 1|128,1/*129*/, /*->63266*/
/* 63137*/        OPC_CheckPredicate, 49, // Predicate_atomic_load_and_16
/* 63139*/        OPC_Scope, 24, /*->63165*/ // 5 children in Scope
/* 63141*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_and_16_monotonic
/* 63143*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63145*/          OPC_EmitMergeInputChains1_0,
/* 63146*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63149*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63157*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_16>><<P:Predicate_atomic_load_and_16_monotonic>> - Complexity = 4
                    // Dst: (LDCLRH:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63165*/        /*Scope*/ 24, /*->63190*/
/* 63166*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_and_16_acquire
/* 63168*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63170*/          OPC_EmitMergeInputChains1_0,
/* 63171*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63174*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63182*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRAH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_16>><<P:Predicate_atomic_load_and_16_acquire>> - Complexity = 4
                    // Dst: (LDCLRAH:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63190*/        /*Scope*/ 24, /*->63215*/
/* 63191*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_and_16_release
/* 63193*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63195*/          OPC_EmitMergeInputChains1_0,
/* 63196*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63199*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63207*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRLH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_16>><<P:Predicate_atomic_load_and_16_release>> - Complexity = 4
                    // Dst: (LDCLRLH:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63215*/        /*Scope*/ 24, /*->63240*/
/* 63216*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_and_16_acq_rel
/* 63218*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63220*/          OPC_EmitMergeInputChains1_0,
/* 63221*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63224*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63232*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_16>><<P:Predicate_atomic_load_and_16_acq_rel>> - Complexity = 4
                    // Dst: (LDCLRALH:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63240*/        /*Scope*/ 24, /*->63265*/
/* 63241*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_and_16_seq_cst
/* 63243*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63245*/          OPC_EmitMergeInputChains1_0,
/* 63246*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63249*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63257*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALH), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_16>><<P:Predicate_atomic_load_and_16_seq_cst>> - Complexity = 4
                    // Dst: (LDCLRALH:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63265*/        0, /*End of Scope*/
/* 63266*/      /*Scope*/ 1|128,1/*129*/, /*->63397*/
/* 63268*/        OPC_CheckPredicate, 47, // Predicate_atomic_load_and_8
/* 63270*/        OPC_Scope, 24, /*->63296*/ // 5 children in Scope
/* 63272*/          OPC_CheckPredicate, 60, // Predicate_atomic_load_and_8_monotonic
/* 63274*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63276*/          OPC_EmitMergeInputChains1_0,
/* 63277*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63280*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63288*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_8>><<P:Predicate_atomic_load_and_8_monotonic>> - Complexity = 4
                    // Dst: (LDCLRB:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63296*/        /*Scope*/ 24, /*->63321*/
/* 63297*/          OPC_CheckPredicate, 61, // Predicate_atomic_load_and_8_acquire
/* 63299*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63301*/          OPC_EmitMergeInputChains1_0,
/* 63302*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63305*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63313*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRAB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_8>><<P:Predicate_atomic_load_and_8_acquire>> - Complexity = 4
                    // Dst: (LDCLRAB:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63321*/        /*Scope*/ 24, /*->63346*/
/* 63322*/          OPC_CheckPredicate, 62, // Predicate_atomic_load_and_8_release
/* 63324*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63326*/          OPC_EmitMergeInputChains1_0,
/* 63327*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63330*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63338*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRLB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_8>><<P:Predicate_atomic_load_and_8_release>> - Complexity = 4
                    // Dst: (LDCLRLB:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63346*/        /*Scope*/ 24, /*->63371*/
/* 63347*/          OPC_CheckPredicate, 63, // Predicate_atomic_load_and_8_acq_rel
/* 63349*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63351*/          OPC_EmitMergeInputChains1_0,
/* 63352*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63355*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63363*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_8>><<P:Predicate_atomic_load_and_8_acq_rel>> - Complexity = 4
                    // Dst: (LDCLRALB:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63371*/        /*Scope*/ 24, /*->63396*/
/* 63372*/          OPC_CheckPredicate, 64, // Predicate_atomic_load_and_8_seq_cst
/* 63374*/          OPC_CheckPatternPredicate, 14, // (Subtarget->hasLSE())
/* 63376*/          OPC_EmitMergeInputChains1_0,
/* 63377*/          OPC_EmitRegister, MVT::i32, AArch64::WZR,
/* 63380*/          OPC_EmitNode1, TARGET_VAL(AArch64::ORNWrr), 0,
                        MVT::i32, 2/*#Ops*/, 3, 2,  // Results = #4
/* 63388*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDCLRALB), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 4, 1, 
                    // Src: (atomic_load_and:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm)<<P:Predicate_atomic_load_and_8>><<P:Predicate_atomic_load_and_8_seq_cst>> - Complexity = 4
                    // Dst: (LDCLRALB:{ *:[i32] } (ORNWrr:{ *:[i32] } WZR:{ *:[i32] }, GPR32:{ *:[i32] }:$Rm), GPR64sp:{ *:[i64] }:$Rn)
/* 63396*/        0, /*End of Scope*/
/* 63397*/      0, /*End of Scope*/
/* 63398*/    0, // EndSwitchType
/* 63399*/  /*SwitchOpcode*/ 8, TARGET_VAL(AArch64ISD::THREAD_POINTER),// ->63410
/* 63402*/    OPC_CheckType, MVT::i64,
/* 63404*/    OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVbaseTLS), 0,
                  MVT::i64, 0/*#Ops*/, 
              // Src: (AArch64threadpointer:{ *:[i64] }) - Complexity = 3
              // Dst: (MOVbaseTLS:{ *:[i64] })
/* 63410*/  /*SwitchOpcode*/ 18, TARGET_VAL(ISD::READCYCLECOUNTER),// ->63431
/* 63413*/    OPC_RecordNode, // #0 = 'readcyclecounter' chained node
/* 63414*/    OPC_CheckType, MVT::i64,
/* 63416*/    OPC_CheckPatternPredicate, 15, // (Subtarget->hasPerfMon())
/* 63418*/    OPC_EmitMergeInputChains1_0,
/* 63419*/    OPC_EmitInteger, MVT::i32, 104|128,57|128,3/*56552*/, 
/* 63424*/    OPC_MorphNodeTo1, TARGET_VAL(AArch64::MRS), 0|OPFL_Chain,
                  MVT::i64, 1/*#Ops*/, 1, 
              // Src: (readcyclecounter:{ *:[i64] }) - Complexity = 3
              // Dst: (MRS:{ *:[i64] } 56552:{ *:[i32] })
/* 63431*/  /*SwitchOpcode*/ 31, TARGET_VAL(AArch64ISD::ADC),// ->63465
/* 63434*/    OPC_RecordChild0, // #0 = $Rn
/* 63435*/    OPC_RecordChild1, // #1 = $Rm
/* 63436*/    OPC_RecordChild2, // #2 = physreg input NZCV
/* 63437*/    OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->63451
/* 63440*/      OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 63443*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADCWr), 0|OPFL_GlueInput,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64adc:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, NZCV:{ *:[i32] }) - Complexity = 3
                // Dst: (ADCWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 63451*/    /*SwitchType*/ 11, MVT::i64,// ->63464
/* 63453*/      OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 63456*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADCXr), 0|OPFL_GlueInput,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64adc:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, NZCV:{ *:[i32] }) - Complexity = 3
                // Dst: (ADCXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 63464*/    0, // EndSwitchType
/* 63465*/  /*SwitchOpcode*/ 33, TARGET_VAL(AArch64ISD::ADCS),// ->63501
/* 63468*/    OPC_RecordChild0, // #0 = $Rn
/* 63469*/    OPC_RecordChild1, // #1 = $Rm
/* 63470*/    OPC_RecordChild2, // #2 = physreg input NZCV
/* 63471*/    OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->63486
/* 63474*/      OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 63477*/      OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADCSWr), 0|OPFL_GlueInput,
                    MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64adc_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, NZCV:{ *:[i32] }) - Complexity = 3
                // Dst: (ADCSWr:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 63486*/    /*SwitchType*/ 12, MVT::i64,// ->63500
/* 63488*/      OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 63491*/      OPC_MorphNodeTo2, TARGET_VAL(AArch64::ADCSXr), 0|OPFL_GlueInput,
                    MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64adc_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, NZCV:{ *:[i32] }) - Complexity = 3
                // Dst: (ADCSXr:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 63500*/    0, // EndSwitchType
/* 63501*/  /*SwitchOpcode*/ 31, TARGET_VAL(AArch64ISD::SBC),// ->63535
/* 63504*/    OPC_RecordChild0, // #0 = $Rn
/* 63505*/    OPC_RecordChild1, // #1 = $Rm
/* 63506*/    OPC_RecordChild2, // #2 = physreg input NZCV
/* 63507*/    OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->63521
/* 63510*/      OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 63513*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBCWr), 0|OPFL_GlueInput,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64sbc:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, NZCV:{ *:[i32] }) - Complexity = 3
                // Dst: (SBCWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 63521*/    /*SwitchType*/ 11, MVT::i64,// ->63534
/* 63523*/      OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 63526*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SBCXr), 0|OPFL_GlueInput,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64sbc:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, NZCV:{ *:[i32] }) - Complexity = 3
                // Dst: (SBCXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 63534*/    0, // EndSwitchType
/* 63535*/  /*SwitchOpcode*/ 33, TARGET_VAL(AArch64ISD::SBCS),// ->63571
/* 63538*/    OPC_RecordChild0, // #0 = $Rn
/* 63539*/    OPC_RecordChild1, // #1 = $Rm
/* 63540*/    OPC_RecordChild2, // #2 = physreg input NZCV
/* 63541*/    OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->63556
/* 63544*/      OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 63547*/      OPC_MorphNodeTo2, TARGET_VAL(AArch64::SBCSWr), 0|OPFL_GlueInput,
                    MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64sbc_flag:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm, NZCV:{ *:[i32] }) - Complexity = 3
                // Dst: (SBCSWr:{ *:[i32] }:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 63556*/    /*SwitchType*/ 12, MVT::i64,// ->63570
/* 63558*/      OPC_EmitCopyToReg, 2, AArch64::NZCV,
/* 63561*/      OPC_MorphNodeTo2, TARGET_VAL(AArch64::SBCSXr), 0|OPFL_GlueInput,
                    MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64sbc_flag:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, NZCV:{ *:[i32] }) - Complexity = 3
                // Dst: (SBCSXr:{ *:[i64] }:{ *:[i32] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 63570*/    0, // EndSwitchType
/* 63571*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::UDIV),// ->63598
/* 63574*/    OPC_RecordChild0, // #0 = $Rn
/* 63575*/    OPC_RecordChild1, // #1 = $Rm
/* 63576*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->63587
/* 63579*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UDIVWr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (udiv:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (UDIVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 63587*/    /*SwitchType*/ 8, MVT::i64,// ->63597
/* 63589*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UDIVXr), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (udiv:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                // Dst: (UDIVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 63597*/    0, // EndSwitchType
/* 63598*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::SDIV),// ->63625
/* 63601*/    OPC_RecordChild0, // #0 = $Rn
/* 63602*/    OPC_RecordChild1, // #1 = $Rm
/* 63603*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->63614
/* 63606*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SDIVWr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (sdiv:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (SDIVWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn, GPR32:{ *:[i32] }:$Rm)
/* 63614*/    /*SwitchType*/ 8, MVT::i64,// ->63624
/* 63616*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SDIVXr), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (sdiv:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
                // Dst: (SDIVXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 63624*/    0, // EndSwitchType
/* 63625*/  /*SwitchOpcode*/ 12, TARGET_VAL(ISD::MULHS),// ->63640
/* 63628*/    OPC_RecordChild0, // #0 = $Rn
/* 63629*/    OPC_RecordChild1, // #1 = $Rm
/* 63630*/    OPC_CheckType, MVT::i64,
/* 63632*/    OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULHrr), 0,
                  MVT::i64, 2/*#Ops*/, 0, 1, 
              // Src: (mulhs:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
              // Dst: (SMULHrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 63640*/  /*SwitchOpcode*/ 12, TARGET_VAL(ISD::MULHU),// ->63655
/* 63643*/    OPC_RecordChild0, // #0 = $Rn
/* 63644*/    OPC_RecordChild1, // #1 = $Rm
/* 63645*/    OPC_CheckType, MVT::i64,
/* 63647*/    OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULHrr), 0,
                  MVT::i64, 2/*#Ops*/, 0, 1, 
              // Src: (mulhu:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm) - Complexity = 3
              // Dst: (UMULHrr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm)
/* 63655*/  /*SwitchOpcode*/ 21, TARGET_VAL(ISD::BITREVERSE),// ->63679
/* 63658*/    OPC_RecordChild0, // #0 = $Rn
/* 63659*/    OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->63669
/* 63662*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::RBITWr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (bitreverse:{ *:[i32] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (RBITWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn)
/* 63669*/    /*SwitchType*/ 7, MVT::i64,// ->63678
/* 63671*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::RBITXr), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (bitreverse:{ *:[i64] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                // Dst: (RBITXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn)
/* 63678*/    0, // EndSwitchType
/* 63679*/  /*SwitchOpcode*/ 11, TARGET_VAL(ISD::BRIND),// ->63693
/* 63682*/    OPC_RecordNode, // #0 = 'brind' chained node
/* 63683*/    OPC_RecordChild1, // #1 = $Rn
/* 63684*/    OPC_CheckChild1Type, MVT::i64,
/* 63686*/    OPC_EmitMergeInputChains1_0,
/* 63687*/    OPC_MorphNodeTo0, TARGET_VAL(AArch64::BR), 0|OPFL_Chain,
                  1/*#Ops*/, 1, 
              // Src: (brind GPR64:{ *:[i64] }:$Rn) - Complexity = 3
              // Dst: (BR GPR64:{ *:[i64] }:$Rn)
/* 63693*/  /*SwitchOpcode*/ 8, TARGET_VAL(AArch64ISD::RET_FLAG),// ->63704
/* 63696*/    OPC_RecordNode, // #0 = 'AArch64retflag' chained node
/* 63697*/    OPC_CaptureGlueInput,
/* 63698*/    OPC_EmitMergeInputChains1_0,
/* 63699*/    OPC_MorphNodeTo0, TARGET_VAL(AArch64::RET_ReallyLR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                  0/*#Ops*/, 
              // Src: (AArch64retflag) - Complexity = 3
              // Dst: (RET_ReallyLR)
/* 63704*/  /*SwitchOpcode*/ 38, TARGET_VAL(AArch64ISD::CBZ),// ->63745
/* 63707*/    OPC_RecordNode, // #0 = 'AArch64cbz' chained node
/* 63708*/    OPC_RecordChild1, // #1 = $Rt
/* 63709*/    OPC_Scope, 16, /*->63727*/ // 2 children in Scope
/* 63711*/      OPC_CheckChild1Type, MVT::i32,
/* 63713*/      OPC_RecordChild2, // #2 = $target
/* 63714*/      OPC_MoveChild2,
/* 63715*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 63718*/      OPC_MoveParent,
/* 63719*/      OPC_EmitMergeInputChains1_0,
/* 63720*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::CBZW), 0|OPFL_Chain,
                    2/*#Ops*/, 1, 2, 
                // Src: (AArch64cbz GPR32:{ *:[i32] }:$Rt, (bb:{ *:[Other] }):$target) - Complexity = 3
                // Dst: (CBZW GPR32:{ *:[i32] }:$Rt, (bb:{ *:[Other] }):$target)
/* 63727*/    /*Scope*/ 16, /*->63744*/
/* 63728*/      OPC_CheckChild1Type, MVT::i64,
/* 63730*/      OPC_RecordChild2, // #2 = $target
/* 63731*/      OPC_MoveChild2,
/* 63732*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 63735*/      OPC_MoveParent,
/* 63736*/      OPC_EmitMergeInputChains1_0,
/* 63737*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::CBZX), 0|OPFL_Chain,
                    2/*#Ops*/, 1, 2, 
                // Src: (AArch64cbz GPR64:{ *:[i64] }:$Rt, (bb:{ *:[Other] }):$target) - Complexity = 3
                // Dst: (CBZX GPR64:{ *:[i64] }:$Rt, (bb:{ *:[Other] }):$target)
/* 63744*/    0, /*End of Scope*/
/* 63745*/  /*SwitchOpcode*/ 38, TARGET_VAL(AArch64ISD::CBNZ),// ->63786
/* 63748*/    OPC_RecordNode, // #0 = 'AArch64cbnz' chained node
/* 63749*/    OPC_RecordChild1, // #1 = $Rt
/* 63750*/    OPC_Scope, 16, /*->63768*/ // 2 children in Scope
/* 63752*/      OPC_CheckChild1Type, MVT::i32,
/* 63754*/      OPC_RecordChild2, // #2 = $target
/* 63755*/      OPC_MoveChild2,
/* 63756*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 63759*/      OPC_MoveParent,
/* 63760*/      OPC_EmitMergeInputChains1_0,
/* 63761*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::CBNZW), 0|OPFL_Chain,
                    2/*#Ops*/, 1, 2, 
                // Src: (AArch64cbnz GPR32:{ *:[i32] }:$Rt, (bb:{ *:[Other] }):$target) - Complexity = 3
                // Dst: (CBNZW GPR32:{ *:[i32] }:$Rt, (bb:{ *:[Other] }):$target)
/* 63768*/    /*Scope*/ 16, /*->63785*/
/* 63769*/      OPC_CheckChild1Type, MVT::i64,
/* 63771*/      OPC_RecordChild2, // #2 = $target
/* 63772*/      OPC_MoveChild2,
/* 63773*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 63776*/      OPC_MoveParent,
/* 63777*/      OPC_EmitMergeInputChains1_0,
/* 63778*/      OPC_MorphNodeTo0, TARGET_VAL(AArch64::CBNZX), 0|OPFL_Chain,
                    2/*#Ops*/, 1, 2, 
                // Src: (AArch64cbnz GPR64:{ *:[i64] }:$Rt, (bb:{ *:[Other] }):$target) - Complexity = 3
                // Dst: (CBNZX GPR64:{ *:[i64] }:$Rt, (bb:{ *:[Other] }):$target)
/* 63785*/    0, /*End of Scope*/
/* 63786*/  /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->63803
/* 63789*/    OPC_RecordNode, // #0 = 'br' chained node
/* 63790*/    OPC_RecordChild1, // #1 = $addr
/* 63791*/    OPC_MoveChild1,
/* 63792*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 63795*/    OPC_MoveParent,
/* 63796*/    OPC_EmitMergeInputChains1_0,
/* 63797*/    OPC_MorphNodeTo0, TARGET_VAL(AArch64::B), 0|OPFL_Chain,
                  1/*#Ops*/, 1, 
              // Src: (br (bb:{ *:[Other] }):$addr) - Complexity = 3
              // Dst: (B (bb:{ *:[Other] }):$addr)
/* 63803*/  /*SwitchOpcode*/ 123, TARGET_VAL(AArch64ISD::FCMEQ),// ->63929
/* 63806*/    OPC_RecordChild0, // #0 = $Rn
/* 63807*/    OPC_SwitchType /*8 cases */, 13, MVT::i64,// ->63823
/* 63810*/      OPC_CheckChild0Type, MVT::f64,
/* 63812*/      OPC_RecordChild1, // #1 = $Rm
/* 63813*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 63815*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQ64), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmeq:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FCMEQ64:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 63823*/    /*SwitchType*/ 13, MVT::i32,// ->63838
/* 63825*/      OPC_CheckChild0Type, MVT::f32,
/* 63827*/      OPC_RecordChild1, // #1 = $Rm
/* 63828*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 63830*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQ32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmeq:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FCMEQ32:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 63838*/    /*SwitchType*/ 13, MVT::v4i16,// ->63853
/* 63840*/      OPC_CheckChild0Type, MVT::v4f16,
/* 63842*/      OPC_RecordChild1, // #1 = $Rm
/* 63843*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 63845*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv4f16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmeq:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (FCMEQv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 63853*/    /*SwitchType*/ 13, MVT::v8i16,// ->63868
/* 63855*/      OPC_CheckChild0Type, MVT::v8f16,
/* 63857*/      OPC_RecordChild1, // #1 = $Rm
/* 63858*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 63860*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv8f16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmeq:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (FCMEQv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 63868*/    /*SwitchType*/ 13, MVT::v2i32,// ->63883
/* 63870*/      OPC_CheckChild0Type, MVT::v2f32,
/* 63872*/      OPC_RecordChild1, // #1 = $Rm
/* 63873*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 63875*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv2f32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmeq:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FCMEQv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 63883*/    /*SwitchType*/ 13, MVT::v4i32,// ->63898
/* 63885*/      OPC_CheckChild0Type, MVT::v4f32,
/* 63887*/      OPC_RecordChild1, // #1 = $Rm
/* 63888*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 63890*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv4f32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmeq:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FCMEQv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 63898*/    /*SwitchType*/ 13, MVT::v2i64,// ->63913
/* 63900*/      OPC_CheckChild0Type, MVT::v2f64,
/* 63902*/      OPC_RecordChild1, // #1 = $Rm
/* 63903*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 63905*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv2f64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmeq:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FCMEQv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 63913*/    /*SwitchType*/ 13, MVT::v1i64,// ->63928
/* 63915*/      OPC_CheckChild0Type, MVT::v1f64,
/* 63917*/      OPC_RecordChild1, // #1 = $Rm
/* 63918*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 63920*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQ64), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmeq:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 3
                // Dst: (FCMEQ64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 63928*/    0, // EndSwitchType
/* 63929*/  /*SwitchOpcode*/ 123, TARGET_VAL(AArch64ISD::FCMGE),// ->64055
/* 63932*/    OPC_RecordChild0, // #0 = $Rn
/* 63933*/    OPC_SwitchType /*8 cases */, 13, MVT::i64,// ->63949
/* 63936*/      OPC_CheckChild0Type, MVT::f64,
/* 63938*/      OPC_RecordChild1, // #1 = $Rm
/* 63939*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 63941*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGE64), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmge:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FCMGE64:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 63949*/    /*SwitchType*/ 13, MVT::i32,// ->63964
/* 63951*/      OPC_CheckChild0Type, MVT::f32,
/* 63953*/      OPC_RecordChild1, // #1 = $Rm
/* 63954*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 63956*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGE32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmge:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FCMGE32:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 63964*/    /*SwitchType*/ 13, MVT::v4i16,// ->63979
/* 63966*/      OPC_CheckChild0Type, MVT::v4f16,
/* 63968*/      OPC_RecordChild1, // #1 = $Rm
/* 63969*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 63971*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv4f16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmge:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (FCMGEv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 63979*/    /*SwitchType*/ 13, MVT::v8i16,// ->63994
/* 63981*/      OPC_CheckChild0Type, MVT::v8f16,
/* 63983*/      OPC_RecordChild1, // #1 = $Rm
/* 63984*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 63986*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv8f16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmge:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (FCMGEv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 63994*/    /*SwitchType*/ 13, MVT::v2i32,// ->64009
/* 63996*/      OPC_CheckChild0Type, MVT::v2f32,
/* 63998*/      OPC_RecordChild1, // #1 = $Rm
/* 63999*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64001*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv2f32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmge:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FCMGEv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 64009*/    /*SwitchType*/ 13, MVT::v4i32,// ->64024
/* 64011*/      OPC_CheckChild0Type, MVT::v4f32,
/* 64013*/      OPC_RecordChild1, // #1 = $Rm
/* 64014*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64016*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv4f32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmge:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FCMGEv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 64024*/    /*SwitchType*/ 13, MVT::v2i64,// ->64039
/* 64026*/      OPC_CheckChild0Type, MVT::v2f64,
/* 64028*/      OPC_RecordChild1, // #1 = $Rm
/* 64029*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64031*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv2f64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmge:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FCMGEv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 64039*/    /*SwitchType*/ 13, MVT::v1i64,// ->64054
/* 64041*/      OPC_CheckChild0Type, MVT::v1f64,
/* 64043*/      OPC_RecordChild1, // #1 = $Rm
/* 64044*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64046*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGE64), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmge:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 3
                // Dst: (FCMGE64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 64054*/    0, // EndSwitchType
/* 64055*/  /*SwitchOpcode*/ 123, TARGET_VAL(AArch64ISD::FCMGT),// ->64181
/* 64058*/    OPC_RecordChild0, // #0 = $Rn
/* 64059*/    OPC_SwitchType /*8 cases */, 13, MVT::i64,// ->64075
/* 64062*/      OPC_CheckChild0Type, MVT::f64,
/* 64064*/      OPC_RecordChild1, // #1 = $Rm
/* 64065*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64067*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGT64), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmgt:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FCMGT64:{ *:[i64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 64075*/    /*SwitchType*/ 13, MVT::i32,// ->64090
/* 64077*/      OPC_CheckChild0Type, MVT::f32,
/* 64079*/      OPC_RecordChild1, // #1 = $Rm
/* 64080*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64082*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGT32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmgt:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FCMGT32:{ *:[i32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 64090*/    /*SwitchType*/ 13, MVT::v4i16,// ->64105
/* 64092*/      OPC_CheckChild0Type, MVT::v4f16,
/* 64094*/      OPC_RecordChild1, // #1 = $Rm
/* 64095*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 64097*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv4f16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmgt:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (FCMGTv4f16:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 64105*/    /*SwitchType*/ 13, MVT::v8i16,// ->64120
/* 64107*/      OPC_CheckChild0Type, MVT::v8f16,
/* 64109*/      OPC_RecordChild1, // #1 = $Rm
/* 64110*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 64112*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv8f16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmgt:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (FCMGTv8f16:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 64120*/    /*SwitchType*/ 13, MVT::v2i32,// ->64135
/* 64122*/      OPC_CheckChild0Type, MVT::v2f32,
/* 64124*/      OPC_RecordChild1, // #1 = $Rm
/* 64125*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64127*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv2f32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmgt:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FCMGTv2f32:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 64135*/    /*SwitchType*/ 13, MVT::v4i32,// ->64150
/* 64137*/      OPC_CheckChild0Type, MVT::v4f32,
/* 64139*/      OPC_RecordChild1, // #1 = $Rm
/* 64140*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64142*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv4f32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmgt:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FCMGTv4f32:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 64150*/    /*SwitchType*/ 13, MVT::v2i64,// ->64165
/* 64152*/      OPC_CheckChild0Type, MVT::v2f64,
/* 64154*/      OPC_RecordChild1, // #1 = $Rm
/* 64155*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64157*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv2f64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmgt:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FCMGTv2f64:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 64165*/    /*SwitchType*/ 13, MVT::v1i64,// ->64180
/* 64167*/      OPC_CheckChild0Type, MVT::v1f64,
/* 64169*/      OPC_RecordChild1, // #1 = $Rm
/* 64170*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64172*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGT64), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64fcmgt:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 3
                // Dst: (FCMGT64:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 64180*/    0, // EndSwitchType
/* 64181*/  /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::ABS),// ->64493
/* 64185*/    OPC_Scope, 12, /*->64199*/ // 3 children in Scope
/* 64187*/      OPC_RecordChild0, // #0 = $Rn
/* 64188*/      OPC_CheckType, MVT::i64,
/* 64190*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64192*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv1i64), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (abs:{ *:[i64] } FPR64:{ *:[i64] }:$Rn) - Complexity = 3
                // Dst: (ABSv1i64:{ *:[i64] } FPR64:{ *:[i64] }:$Rn)
/* 64199*/    /*Scope*/ 71|128,1/*199*/, /*->64400*/
/* 64201*/      OPC_MoveChild0,
/* 64202*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 64205*/      OPC_MoveChild0,
/* 64206*/      OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 64209*/      OPC_Scope, 115, /*->64326*/ // 2 children in Scope
/* 64211*/        OPC_MoveChild0,
/* 64212*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 64215*/        OPC_RecordChild0, // #0 = $opA
/* 64216*/        OPC_SwitchType /*3 cases */, 34, MVT::v8i8,// ->64253
/* 64219*/          OPC_CheckChild1Integer, 8, 
/* 64221*/          OPC_CheckChild1Type, MVT::i64,
/* 64223*/          OPC_MoveParent,
/* 64224*/          OPC_MoveParent,
/* 64225*/          OPC_MoveChild1,
/* 64226*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 64229*/          OPC_MoveChild0,
/* 64230*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 64233*/          OPC_RecordChild0, // #1 = $opB
/* 64234*/          OPC_CheckChild1Integer, 8, 
/* 64236*/          OPC_CheckChild1Type, MVT::i64,
/* 64238*/          OPC_CheckType, MVT::v8i8,
/* 64240*/          OPC_MoveParent,
/* 64241*/          OPC_MoveParent,
/* 64242*/          OPC_MoveParent,
/* 64243*/          OPC_CheckType, MVT::v8i16,
/* 64245*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv16i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (abs:{ *:[v8i16] } (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opA, 8:{ *:[i64] })), (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$opB, 8:{ *:[i64] })))) - Complexity = 28
                    // Dst: (UABDLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$opA, V128:{ *:[v16i8] }:$opB)
/* 64253*/        /*SwitchType*/ 34, MVT::v4i16,// ->64289
/* 64255*/          OPC_CheckChild1Integer, 4, 
/* 64257*/          OPC_CheckChild1Type, MVT::i64,
/* 64259*/          OPC_MoveParent,
/* 64260*/          OPC_MoveParent,
/* 64261*/          OPC_MoveChild1,
/* 64262*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 64265*/          OPC_MoveChild0,
/* 64266*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 64269*/          OPC_RecordChild0, // #1 = $opB
/* 64270*/          OPC_CheckChild1Integer, 4, 
/* 64272*/          OPC_CheckChild1Type, MVT::i64,
/* 64274*/          OPC_CheckType, MVT::v4i16,
/* 64276*/          OPC_MoveParent,
/* 64277*/          OPC_MoveParent,
/* 64278*/          OPC_MoveParent,
/* 64279*/          OPC_CheckType, MVT::v4i32,
/* 64281*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv8i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (abs:{ *:[v4i32] } (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$opA, 4:{ *:[i64] })), (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$opB, 4:{ *:[i64] })))) - Complexity = 28
                    // Dst: (UABDLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$opA, V128:{ *:[v8i16] }:$opB)
/* 64289*/        /*SwitchType*/ 34, MVT::v2i32,// ->64325
/* 64291*/          OPC_CheckChild1Integer, 2, 
/* 64293*/          OPC_CheckChild1Type, MVT::i64,
/* 64295*/          OPC_MoveParent,
/* 64296*/          OPC_MoveParent,
/* 64297*/          OPC_MoveChild1,
/* 64298*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 64301*/          OPC_MoveChild0,
/* 64302*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 64305*/          OPC_RecordChild0, // #1 = $opB
/* 64306*/          OPC_CheckChild1Integer, 2, 
/* 64308*/          OPC_CheckChild1Type, MVT::i64,
/* 64310*/          OPC_CheckType, MVT::v2i32,
/* 64312*/          OPC_MoveParent,
/* 64313*/          OPC_MoveParent,
/* 64314*/          OPC_MoveParent,
/* 64315*/          OPC_CheckType, MVT::v2i64,
/* 64317*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv4i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (abs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$opA, 2:{ *:[i64] })), (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$opB, 2:{ *:[i64] })))) - Complexity = 28
                    // Dst: (UABDLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$opA, V128:{ *:[v4i32] }:$opB)
/* 64325*/        0, // EndSwitchType
/* 64326*/      /*Scope*/ 72, /*->64399*/
/* 64327*/        OPC_RecordChild0, // #0 = $opA
/* 64328*/        OPC_Scope, 22, /*->64352*/ // 3 children in Scope
/* 64330*/          OPC_CheckChild0Type, MVT::v8i8,
/* 64332*/          OPC_MoveParent,
/* 64333*/          OPC_MoveChild1,
/* 64334*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 64337*/          OPC_RecordChild0, // #1 = $opB
/* 64338*/          OPC_CheckChild0Type, MVT::v8i8,
/* 64340*/          OPC_MoveParent,
/* 64341*/          OPC_MoveParent,
/* 64342*/          OPC_CheckType, MVT::v8i16,
/* 64344*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv8i8_v8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (abs:{ *:[v8i16] } (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA), (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$opB))) - Complexity = 12
                    // Dst: (UABDLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$opA, V64:{ *:[v8i8] }:$opB)
/* 64352*/        /*Scope*/ 22, /*->64375*/
/* 64353*/          OPC_CheckChild0Type, MVT::v4i16,
/* 64355*/          OPC_MoveParent,
/* 64356*/          OPC_MoveChild1,
/* 64357*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 64360*/          OPC_RecordChild0, // #1 = $opB
/* 64361*/          OPC_CheckChild0Type, MVT::v4i16,
/* 64363*/          OPC_MoveParent,
/* 64364*/          OPC_MoveParent,
/* 64365*/          OPC_CheckType, MVT::v4i32,
/* 64367*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv4i16_v4i32), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (abs:{ *:[v4i32] } (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$opA), (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$opB))) - Complexity = 12
                    // Dst: (UABDLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$opA, V64:{ *:[v4i16] }:$opB)
/* 64375*/        /*Scope*/ 22, /*->64398*/
/* 64376*/          OPC_CheckChild0Type, MVT::v2i32,
/* 64378*/          OPC_MoveParent,
/* 64379*/          OPC_MoveChild1,
/* 64380*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 64383*/          OPC_RecordChild0, // #1 = $opB
/* 64384*/          OPC_CheckChild0Type, MVT::v2i32,
/* 64386*/          OPC_MoveParent,
/* 64387*/          OPC_MoveParent,
/* 64388*/          OPC_CheckType, MVT::v2i64,
/* 64390*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UABDLv2i32_v2i64), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (abs:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$opB))) - Complexity = 12
                    // Dst: (UABDLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$opA, V64:{ *:[v2i32] }:$opB)
/* 64398*/        0, /*End of Scope*/
/* 64399*/      0, /*End of Scope*/
/* 64400*/    /*Scope*/ 91, /*->64492*/
/* 64401*/      OPC_RecordChild0, // #0 = $Rn
/* 64402*/      OPC_SwitchType /*8 cases */, 9, MVT::v8i8,// ->64414
/* 64405*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64407*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                  // Dst: (ABSv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 64414*/      /*SwitchType*/ 9, MVT::v16i8,// ->64425
/* 64416*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64418*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                  // Dst: (ABSv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 64425*/      /*SwitchType*/ 9, MVT::v4i16,// ->64436
/* 64427*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64429*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (ABSv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 64436*/      /*SwitchType*/ 9, MVT::v8i16,// ->64447
/* 64438*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64440*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv8i16), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                  // Dst: (ABSv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 64447*/      /*SwitchType*/ 9, MVT::v2i32,// ->64458
/* 64449*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64451*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (ABSv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 64458*/      /*SwitchType*/ 9, MVT::v4i32,// ->64469
/* 64460*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64462*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv4i32), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                  // Dst: (ABSv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 64469*/      /*SwitchType*/ 9, MVT::v2i64,// ->64480
/* 64471*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64473*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv2i64), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                  // Dst: (ABSv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 64480*/      /*SwitchType*/ 9, MVT::v1i64,// ->64491
/* 64482*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64484*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::ABSv1i64), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (abs:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn) - Complexity = 3
                  // Dst: (ABSv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 64491*/      0, // EndSwitchType
/* 64492*/    0, /*End of Scope*/
/* 64493*/  /*SwitchOpcode*/ 81|128,2/*337*/, TARGET_VAL(ISD::TRUNCATE),// ->64834
/* 64497*/    OPC_Scope, 14, /*->64513*/ // 3 children in Scope
/* 64499*/      OPC_RecordChild0, // #0 = $src
/* 64500*/      OPC_CheckType, MVT::i32,
/* 64502*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 64505*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (trunc:{ *:[i32] } GPR64sp:{ *:[i64] }:$src) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[i32] } GPR64sp:{ *:[i64] }:$src, sub_32:{ *:[i32] })
/* 64513*/    /*Scope*/ 19|128,2/*275*/, /*->64790*/
/* 64515*/      OPC_MoveChild0,
/* 64516*/      OPC_SwitchOpcode /*2 cases */, 64|128,1/*192*/, TARGET_VAL(AArch64ISD::VLSHR),// ->64713
/* 64521*/        OPC_Scope, 121, /*->64644*/ // 2 children in Scope
/* 64523*/          OPC_MoveChild0,
/* 64524*/          OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::ADD),// ->64584
/* 64528*/            OPC_RecordChild0, // #0 = $Rn
/* 64529*/            OPC_RecordChild1, // #1 = $Rm
/* 64530*/            OPC_MoveParent,
/* 64531*/            OPC_SwitchType /*3 cases */, 15, MVT::v8i16,// ->64549
/* 64534*/              OPC_CheckChild1Integer, 8, 
/* 64536*/              OPC_CheckChild1Type, MVT::i32,
/* 64538*/              OPC_MoveParent,
/* 64539*/              OPC_CheckType, MVT::v8i8,
/* 64541*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv8i16_v8i8), 0,
                            MVT::v8i8, 2/*#Ops*/, 0, 1, 
                        // Src: (trunc:{ *:[v8i8] } (AArch64vlshr:{ *:[v8i16] } (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm), 8:{ *:[i32] })) - Complexity = 14
                        // Dst: (ADDHNv8i16_v8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 64549*/            /*SwitchType*/ 15, MVT::v4i32,// ->64566
/* 64551*/              OPC_CheckChild1Integer, 16, 
/* 64553*/              OPC_CheckChild1Type, MVT::i32,
/* 64555*/              OPC_MoveParent,
/* 64556*/              OPC_CheckType, MVT::v4i16,
/* 64558*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv4i32_v4i16), 0,
                            MVT::v4i16, 2/*#Ops*/, 0, 1, 
                        // Src: (trunc:{ *:[v4i16] } (AArch64vlshr:{ *:[v4i32] } (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm), 16:{ *:[i32] })) - Complexity = 14
                        // Dst: (ADDHNv4i32_v4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 64566*/            /*SwitchType*/ 15, MVT::v2i64,// ->64583
/* 64568*/              OPC_CheckChild1Integer, 32, 
/* 64570*/              OPC_CheckChild1Type, MVT::i32,
/* 64572*/              OPC_MoveParent,
/* 64573*/              OPC_CheckType, MVT::v2i32,
/* 64575*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv2i64_v2i32), 0,
                            MVT::v2i32, 2/*#Ops*/, 0, 1, 
                        // Src: (trunc:{ *:[v2i32] } (AArch64vlshr:{ *:[v2i64] } (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm), 32:{ *:[i32] })) - Complexity = 14
                        // Dst: (ADDHNv2i64_v2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 64583*/            0, // EndSwitchType
/* 64584*/          /*SwitchOpcode*/ 56, TARGET_VAL(ISD::SUB),// ->64643
/* 64587*/            OPC_RecordChild0, // #0 = $Rn
/* 64588*/            OPC_RecordChild1, // #1 = $Rm
/* 64589*/            OPC_MoveParent,
/* 64590*/            OPC_SwitchType /*3 cases */, 15, MVT::v8i16,// ->64608
/* 64593*/              OPC_CheckChild1Integer, 8, 
/* 64595*/              OPC_CheckChild1Type, MVT::i32,
/* 64597*/              OPC_MoveParent,
/* 64598*/              OPC_CheckType, MVT::v8i8,
/* 64600*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv8i16_v8i8), 0,
                            MVT::v8i8, 2/*#Ops*/, 0, 1, 
                        // Src: (trunc:{ *:[v8i8] } (AArch64vlshr:{ *:[v8i16] } (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm), 8:{ *:[i32] })) - Complexity = 14
                        // Dst: (SUBHNv8i16_v8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 64608*/            /*SwitchType*/ 15, MVT::v4i32,// ->64625
/* 64610*/              OPC_CheckChild1Integer, 16, 
/* 64612*/              OPC_CheckChild1Type, MVT::i32,
/* 64614*/              OPC_MoveParent,
/* 64615*/              OPC_CheckType, MVT::v4i16,
/* 64617*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv4i32_v4i16), 0,
                            MVT::v4i16, 2/*#Ops*/, 0, 1, 
                        // Src: (trunc:{ *:[v4i16] } (AArch64vlshr:{ *:[v4i32] } (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm), 16:{ *:[i32] })) - Complexity = 14
                        // Dst: (SUBHNv4i32_v4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 64625*/            /*SwitchType*/ 15, MVT::v2i64,// ->64642
/* 64627*/              OPC_CheckChild1Integer, 32, 
/* 64629*/              OPC_CheckChild1Type, MVT::i32,
/* 64631*/              OPC_MoveParent,
/* 64632*/              OPC_CheckType, MVT::v2i32,
/* 64634*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv2i64_v2i32), 0,
                            MVT::v2i32, 2/*#Ops*/, 0, 1, 
                        // Src: (trunc:{ *:[v2i32] } (AArch64vlshr:{ *:[v2i64] } (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm), 32:{ *:[i32] })) - Complexity = 14
                        // Dst: (SUBHNv2i64_v2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 64642*/            0, // EndSwitchType
/* 64643*/          0, // EndSwitchOpcode
/* 64644*/        /*Scope*/ 67, /*->64712*/
/* 64645*/          OPC_RecordChild0, // #0 = $Rn
/* 64646*/          OPC_RecordChild1, // #1 = $imm
/* 64647*/          OPC_MoveChild1,
/* 64648*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64651*/          OPC_CheckType, MVT::i32,
/* 64653*/          OPC_Scope, 18, /*->64673*/ // 3 children in Scope
/* 64655*/            OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 64657*/            OPC_MoveParent,
/* 64658*/            OPC_CheckType, MVT::v8i16,
/* 64660*/            OPC_MoveParent,
/* 64661*/            OPC_CheckType, MVT::v8i8,
/* 64663*/            OPC_EmitConvertToTarget, 1,
/* 64665*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv8i8_shift), 0,
                          MVT::v8i8, 2/*#Ops*/, 0, 2, 
                      // Src: (trunc:{ *:[v8i8] } (AArch64vlshr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 10
                      // Dst: (SHRNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 64673*/          /*Scope*/ 18, /*->64692*/
/* 64674*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 64676*/            OPC_MoveParent,
/* 64677*/            OPC_CheckType, MVT::v4i32,
/* 64679*/            OPC_MoveParent,
/* 64680*/            OPC_CheckType, MVT::v4i16,
/* 64682*/            OPC_EmitConvertToTarget, 1,
/* 64684*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv4i16_shift), 0,
                          MVT::v4i16, 2/*#Ops*/, 0, 2, 
                      // Src: (trunc:{ *:[v4i16] } (AArch64vlshr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 10
                      // Dst: (SHRNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 64692*/          /*Scope*/ 18, /*->64711*/
/* 64693*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 64695*/            OPC_MoveParent,
/* 64696*/            OPC_CheckType, MVT::v2i64,
/* 64698*/            OPC_MoveParent,
/* 64699*/            OPC_CheckType, MVT::v2i32,
/* 64701*/            OPC_EmitConvertToTarget, 1,
/* 64703*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv2i32_shift), 0,
                          MVT::v2i32, 2/*#Ops*/, 0, 2, 
                      // Src: (trunc:{ *:[v2i32] } (AArch64vlshr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 10
                      // Dst: (SHRNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 64711*/          0, /*End of Scope*/
/* 64712*/        0, /*End of Scope*/
/* 64713*/      /*SwitchOpcode*/ 73, TARGET_VAL(AArch64ISD::VASHR),// ->64789
/* 64716*/        OPC_RecordChild0, // #0 = $Rn
/* 64717*/        OPC_RecordChild1, // #1 = $imm
/* 64718*/        OPC_MoveChild1,
/* 64719*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64722*/        OPC_CheckType, MVT::i32,
/* 64724*/        OPC_Scope, 20, /*->64746*/ // 3 children in Scope
/* 64726*/          OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 64728*/          OPC_MoveParent,
/* 64729*/          OPC_CheckType, MVT::v8i16,
/* 64731*/          OPC_MoveParent,
/* 64732*/          OPC_CheckType, MVT::v8i8,
/* 64734*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64736*/          OPC_EmitConvertToTarget, 1,
/* 64738*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv8i8_shift), 0,
                        MVT::v8i8, 2/*#Ops*/, 0, 2, 
                    // Src: (trunc:{ *:[v8i8] } (AArch64vashr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 10
                    // Dst: (SHRNv8i8_shift:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 64746*/        /*Scope*/ 20, /*->64767*/
/* 64747*/          OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 64749*/          OPC_MoveParent,
/* 64750*/          OPC_CheckType, MVT::v4i32,
/* 64752*/          OPC_MoveParent,
/* 64753*/          OPC_CheckType, MVT::v4i16,
/* 64755*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64757*/          OPC_EmitConvertToTarget, 1,
/* 64759*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv4i16_shift), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 2, 
                    // Src: (trunc:{ *:[v4i16] } (AArch64vashr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 10
                    // Dst: (SHRNv4i16_shift:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 64767*/        /*Scope*/ 20, /*->64788*/
/* 64768*/          OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 64770*/          OPC_MoveParent,
/* 64771*/          OPC_CheckType, MVT::v2i64,
/* 64773*/          OPC_MoveParent,
/* 64774*/          OPC_CheckType, MVT::v2i32,
/* 64776*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64778*/          OPC_EmitConvertToTarget, 1,
/* 64780*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv2i32_shift), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 2, 
                    // Src: (trunc:{ *:[v2i32] } (AArch64vashr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 10
                    // Dst: (SHRNv2i32_shift:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 64788*/        0, /*End of Scope*/
/* 64789*/      0, // EndSwitchOpcode
/* 64790*/    /*Scope*/ 42, /*->64833*/
/* 64791*/      OPC_RecordChild0, // #0 = $Rn
/* 64792*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i8,// ->64806
/* 64795*/        OPC_CheckChild0Type, MVT::v8i16,
/* 64797*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64799*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::XTNv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                  // Dst: (XTNv8i8:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn)
/* 64806*/      /*SwitchType*/ 11, MVT::v4i16,// ->64819
/* 64808*/        OPC_CheckChild0Type, MVT::v4i32,
/* 64810*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64812*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::XTNv4i16), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                  // Dst: (XTNv4i16:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn)
/* 64819*/      /*SwitchType*/ 11, MVT::v2i32,// ->64832
/* 64821*/        OPC_CheckChild0Type, MVT::v2i64,
/* 64823*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 64825*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::XTNv2i32), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                  // Dst: (XTNv2i32:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn)
/* 64832*/      0, // EndSwitchType
/* 64833*/    0, /*End of Scope*/
/* 64834*/  /*SwitchOpcode*/ 11, TARGET_VAL(ISD::TRAP),// ->64848
/* 64837*/    OPC_RecordNode, // #0 = 'trap' chained node
/* 64838*/    OPC_EmitMergeInputChains1_0,
/* 64839*/    OPC_EmitInteger, MVT::i32, 1, 
/* 64842*/    OPC_MorphNodeTo0, TARGET_VAL(AArch64::BRK), 0|OPFL_Chain,
                  1/*#Ops*/, 1, 
              // Src: (trap) - Complexity = 3
              // Dst: (BRK 1:{ *:[i32] })
/* 64848*/  /*SwitchOpcode*/ 14|128,22/*2830*/, TARGET_VAL(ISD::BITCAST),// ->67682
/* 64852*/    OPC_RecordChild0, // #0 = $Vn
/* 64853*/    OPC_Scope, 55|128,1/*183*/, /*->65039*/ // 19 children in Scope
/* 64856*/      OPC_CheckChild0Type, MVT::v8i8,
/* 64858*/      OPC_SwitchType /*8 cases */, 37, MVT::i64,// ->64898
/* 64861*/        OPC_Scope, 13, /*->64876*/ // 2 children in Scope
/* 64863*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 64865*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 64868*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v8i8] }:$Vn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v8i8] }:$Vn, GPR64:{ *:[i32] })
/* 64876*/        /*Scope*/ 20, /*->64897*/
/* 64877*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 64879*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 64882*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64890*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                        MVT::i64, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v8i8] }:$Vn) - Complexity = 3
                    // Dst: (REV64v8i8:{ *:[i64] } (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v8i8] }:$Vn, GPR64:{ *:[i32] }))
/* 64897*/        0, /*End of Scope*/
/* 64898*/      /*SwitchType*/ 18, MVT::f64,// ->64918
/* 64900*/        OPC_Scope, 5, /*->64907*/ // 2 children in Scope
/* 64902*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 64904*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[f64] }:$src
/* 64907*/        /*Scope*/ 9, /*->64917*/
/* 64908*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 64910*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                    // Dst: (REV64v8i8:{ *:[f64] } FPR64:{ *:[v8i8] }:$src)
/* 64917*/        0, /*End of Scope*/
/* 64918*/      /*SwitchType*/ 18, MVT::v1i64,// ->64938
/* 64920*/        OPC_Scope, 5, /*->64927*/ // 2 children in Scope
/* 64922*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 64924*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1i64] }:$src
/* 64927*/        /*Scope*/ 9, /*->64937*/
/* 64928*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 64930*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                        MVT::v1i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                    // Dst: (REV64v8i8:{ *:[v1i64] } FPR64:{ *:[v8i8] }:$src)
/* 64937*/        0, /*End of Scope*/
/* 64938*/      /*SwitchType*/ 18, MVT::v2i32,// ->64958
/* 64940*/        OPC_Scope, 5, /*->64947*/ // 2 children in Scope
/* 64942*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 64944*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2i32] }:$src
/* 64947*/        /*Scope*/ 9, /*->64957*/
/* 64948*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 64950*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i8), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                    // Dst: (REV32v8i8:{ *:[v2i32] } FPR64:{ *:[v8i8] }:$src)
/* 64957*/        0, /*End of Scope*/
/* 64958*/      /*SwitchType*/ 18, MVT::v4i16,// ->64978
/* 64960*/        OPC_Scope, 5, /*->64967*/ // 2 children in Scope
/* 64962*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 64964*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4i16] }:$src
/* 64967*/        /*Scope*/ 9, /*->64977*/
/* 64968*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 64970*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v8i8), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                    // Dst: (REV16v8i8:{ *:[v4i16] } FPR64:{ *:[v8i8] }:$src)
/* 64977*/        0, /*End of Scope*/
/* 64978*/      /*SwitchType*/ 18, MVT::v4f16,// ->64998
/* 64980*/        OPC_Scope, 5, /*->64987*/ // 2 children in Scope
/* 64982*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 64984*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4f16] }:$src
/* 64987*/        /*Scope*/ 9, /*->64997*/
/* 64988*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 64990*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v8i8), 0,
                        MVT::v4f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                    // Dst: (REV16v8i8:{ *:[v4f16] } FPR64:{ *:[v8i8] }:$src)
/* 64997*/        0, /*End of Scope*/
/* 64998*/      /*SwitchType*/ 18, MVT::v1f64,// ->65018
/* 65000*/        OPC_Scope, 5, /*->65007*/ // 2 children in Scope
/* 65002*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65004*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1f64] }:$src
/* 65007*/        /*Scope*/ 9, /*->65017*/
/* 65008*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65010*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                        MVT::v1f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                    // Dst: (REV64v8i8:{ *:[v1f64] } FPR64:{ *:[v8i8] }:$src)
/* 65017*/        0, /*End of Scope*/
/* 65018*/      /*SwitchType*/ 18, MVT::v2f32,// ->65038
/* 65020*/        OPC_Scope, 5, /*->65027*/ // 2 children in Scope
/* 65022*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65024*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2f32] }:$src
/* 65027*/        /*Scope*/ 9, /*->65037*/
/* 65028*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65030*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i8), 0,
                        MVT::v2f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                    // Dst: (REV32v8i8:{ *:[v2f32] } FPR64:{ *:[v8i8] }:$src)
/* 65037*/        0, /*End of Scope*/
/* 65038*/      0, // EndSwitchType
/* 65039*/    /*Scope*/ 40|128,1/*168*/, /*->65209*/
/* 65041*/      OPC_CheckChild0Type, MVT::v4i16,
/* 65043*/      OPC_SwitchType /*8 cases */, 37, MVT::i64,// ->65083
/* 65046*/        OPC_Scope, 13, /*->65061*/ // 2 children in Scope
/* 65048*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65050*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65053*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v4i16] }:$Vn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v4i16] }:$Vn, GPR64:{ *:[i32] })
/* 65061*/        /*Scope*/ 20, /*->65082*/
/* 65062*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65064*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65067*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65075*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::i64, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v4i16] }:$Vn) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[i64] } (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v4i16] }:$Vn, GPR64:{ *:[i32] }))
/* 65082*/        0, /*End of Scope*/
/* 65083*/      /*SwitchType*/ 18, MVT::f64,// ->65103
/* 65085*/        OPC_Scope, 5, /*->65092*/ // 2 children in Scope
/* 65087*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65089*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[f64] }:$src
/* 65092*/        /*Scope*/ 9, /*->65102*/
/* 65093*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65095*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[f64] } FPR64:{ *:[v4i16] }:$src)
/* 65102*/        0, /*End of Scope*/
/* 65103*/      /*SwitchType*/ 18, MVT::v1i64,// ->65123
/* 65105*/        OPC_Scope, 5, /*->65112*/ // 2 children in Scope
/* 65107*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65109*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1i64] }:$src
/* 65112*/        /*Scope*/ 9, /*->65122*/
/* 65113*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65115*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v1i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v1i64] } FPR64:{ *:[v4i16] }:$src)
/* 65122*/        0, /*End of Scope*/
/* 65123*/      /*SwitchType*/ 18, MVT::v2i32,// ->65143
/* 65125*/        OPC_Scope, 5, /*->65132*/ // 2 children in Scope
/* 65127*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65129*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2i32] }:$src
/* 65132*/        /*Scope*/ 9, /*->65142*/
/* 65133*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65135*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                    // Dst: (REV32v4i16:{ *:[v2i32] } FPR64:{ *:[v4i16] }:$src)
/* 65142*/        0, /*End of Scope*/
/* 65143*/      /*SwitchType*/ 18, MVT::v8i8,// ->65163
/* 65145*/        OPC_Scope, 5, /*->65152*/ // 2 children in Scope
/* 65147*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65149*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v8i8] }:$src
/* 65152*/        /*Scope*/ 9, /*->65162*/
/* 65153*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65155*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                    // Dst: (REV16v8i8:{ *:[v8i8] } FPR64:{ *:[v4i16] }:$src)
/* 65162*/        0, /*End of Scope*/
/* 65163*/      /*SwitchType*/ 3, MVT::v4f16,// ->65168
/* 65165*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4f16] }:$src
/* 65168*/      /*SwitchType*/ 18, MVT::v1f64,// ->65188
/* 65170*/        OPC_Scope, 5, /*->65177*/ // 2 children in Scope
/* 65172*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65174*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1f64] }:$src
/* 65177*/        /*Scope*/ 9, /*->65187*/
/* 65178*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65180*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v1f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v1f64] } FPR64:{ *:[v4i16] }:$src)
/* 65187*/        0, /*End of Scope*/
/* 65188*/      /*SwitchType*/ 18, MVT::v2f32,// ->65208
/* 65190*/        OPC_Scope, 5, /*->65197*/ // 2 children in Scope
/* 65192*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65194*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2f32] }:$src
/* 65197*/        /*Scope*/ 9, /*->65207*/
/* 65198*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65200*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                        MVT::v2f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                    // Dst: (REV32v4i16:{ *:[v2f32] } FPR64:{ *:[v4i16] }:$src)
/* 65207*/        0, /*End of Scope*/
/* 65208*/      0, // EndSwitchType
/* 65209*/    /*Scope*/ 40|128,1/*168*/, /*->65379*/
/* 65211*/      OPC_CheckChild0Type, MVT::v2i32,
/* 65213*/      OPC_SwitchType /*8 cases */, 37, MVT::i64,// ->65253
/* 65216*/        OPC_Scope, 13, /*->65231*/ // 2 children in Scope
/* 65218*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65220*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65223*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v2i32] }:$Vn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v2i32] }:$Vn, GPR64:{ *:[i32] })
/* 65231*/        /*Scope*/ 20, /*->65252*/
/* 65232*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65234*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65237*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65245*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::i64, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v2i32] }:$Vn) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[i64] } (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v2i32] }:$Vn, GPR64:{ *:[i32] }))
/* 65252*/        0, /*End of Scope*/
/* 65253*/      /*SwitchType*/ 18, MVT::f64,// ->65273
/* 65255*/        OPC_Scope, 5, /*->65262*/ // 2 children in Scope
/* 65257*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65259*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[f64] }:$src
/* 65262*/        /*Scope*/ 9, /*->65272*/
/* 65263*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65265*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[f64] } FPR64:{ *:[v2i32] }:$src)
/* 65272*/        0, /*End of Scope*/
/* 65273*/      /*SwitchType*/ 18, MVT::v1i64,// ->65293
/* 65275*/        OPC_Scope, 5, /*->65282*/ // 2 children in Scope
/* 65277*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65279*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1i64] }:$src
/* 65282*/        /*Scope*/ 9, /*->65292*/
/* 65283*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65285*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v1i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v1i64] } FPR64:{ *:[v2i32] }:$src)
/* 65292*/        0, /*End of Scope*/
/* 65293*/      /*SwitchType*/ 18, MVT::v4i16,// ->65313
/* 65295*/        OPC_Scope, 5, /*->65302*/ // 2 children in Scope
/* 65297*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65299*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4i16] }:$src
/* 65302*/        /*Scope*/ 9, /*->65312*/
/* 65303*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65305*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                    // Dst: (REV32v4i16:{ *:[v4i16] } FPR64:{ *:[v2i32] }:$src)
/* 65312*/        0, /*End of Scope*/
/* 65313*/      /*SwitchType*/ 18, MVT::v8i8,// ->65333
/* 65315*/        OPC_Scope, 5, /*->65322*/ // 2 children in Scope
/* 65317*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65319*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v8i8] }:$src
/* 65322*/        /*Scope*/ 9, /*->65332*/
/* 65323*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65325*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                    // Dst: (REV32v8i8:{ *:[v8i8] } FPR64:{ *:[v2i32] }:$src)
/* 65332*/        0, /*End of Scope*/
/* 65333*/      /*SwitchType*/ 18, MVT::v4f16,// ->65353
/* 65335*/        OPC_Scope, 5, /*->65342*/ // 2 children in Scope
/* 65337*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65339*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4f16] }:$src
/* 65342*/        /*Scope*/ 9, /*->65352*/
/* 65343*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65345*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                        MVT::v4f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                    // Dst: (REV32v4i16:{ *:[v4f16] } FPR64:{ *:[v2i32] }:$src)
/* 65352*/        0, /*End of Scope*/
/* 65353*/      /*SwitchType*/ 18, MVT::v1f64,// ->65373
/* 65355*/        OPC_Scope, 5, /*->65362*/ // 2 children in Scope
/* 65357*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65359*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1f64] }:$src
/* 65362*/        /*Scope*/ 9, /*->65372*/
/* 65363*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65365*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v1f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v1f64] } FPR64:{ *:[v2i32] }:$src)
/* 65372*/        0, /*End of Scope*/
/* 65373*/      /*SwitchType*/ 3, MVT::v2f32,// ->65378
/* 65375*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2f32] }:$src
/* 65378*/      0, // EndSwitchType
/* 65379*/    /*Scope*/ 40|128,1/*168*/, /*->65549*/
/* 65381*/      OPC_CheckChild0Type, MVT::v4f16,
/* 65383*/      OPC_SwitchType /*8 cases */, 37, MVT::i64,// ->65423
/* 65386*/        OPC_Scope, 13, /*->65401*/ // 2 children in Scope
/* 65388*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65390*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65393*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v4f16] }:$Vn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v4f16] }:$Vn, GPR64:{ *:[i32] })
/* 65401*/        /*Scope*/ 20, /*->65422*/
/* 65402*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65404*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65407*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65415*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::i64, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v4f16] }:$Vn) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[i64] } (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v4f16] }:$Vn, GPR64:{ *:[i32] }))
/* 65422*/        0, /*End of Scope*/
/* 65423*/      /*SwitchType*/ 18, MVT::f64,// ->65443
/* 65425*/        OPC_Scope, 5, /*->65432*/ // 2 children in Scope
/* 65427*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65429*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[f64] }:$src
/* 65432*/        /*Scope*/ 9, /*->65442*/
/* 65433*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65435*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[f64] } FPR64:{ *:[v4f16] }:$src)
/* 65442*/        0, /*End of Scope*/
/* 65443*/      /*SwitchType*/ 18, MVT::v1i64,// ->65463
/* 65445*/        OPC_Scope, 5, /*->65452*/ // 2 children in Scope
/* 65447*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65449*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1i64] }:$src
/* 65452*/        /*Scope*/ 9, /*->65462*/
/* 65453*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65455*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v1i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v1i64] } FPR64:{ *:[v4f16] }:$src)
/* 65462*/        0, /*End of Scope*/
/* 65463*/      /*SwitchType*/ 18, MVT::v2i32,// ->65483
/* 65465*/        OPC_Scope, 5, /*->65472*/ // 2 children in Scope
/* 65467*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65469*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2i32] }:$src
/* 65472*/        /*Scope*/ 9, /*->65482*/
/* 65473*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65475*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                    // Dst: (REV32v4i16:{ *:[v2i32] } FPR64:{ *:[v4f16] }:$src)
/* 65482*/        0, /*End of Scope*/
/* 65483*/      /*SwitchType*/ 3, MVT::v4i16,// ->65488
/* 65485*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4i16] }:$src
/* 65488*/      /*SwitchType*/ 18, MVT::v8i8,// ->65508
/* 65490*/        OPC_Scope, 5, /*->65497*/ // 2 children in Scope
/* 65492*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65494*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v8i8] }:$src
/* 65497*/        /*Scope*/ 9, /*->65507*/
/* 65498*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65500*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                    // Dst: (REV16v8i8:{ *:[v8i8] } FPR64:{ *:[v4f16] }:$src)
/* 65507*/        0, /*End of Scope*/
/* 65508*/      /*SwitchType*/ 18, MVT::v1f64,// ->65528
/* 65510*/        OPC_Scope, 5, /*->65517*/ // 2 children in Scope
/* 65512*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65514*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1f64] }:$src
/* 65517*/        /*Scope*/ 9, /*->65527*/
/* 65518*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65520*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v1f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v1f64] } FPR64:{ *:[v4f16] }:$src)
/* 65527*/        0, /*End of Scope*/
/* 65528*/      /*SwitchType*/ 18, MVT::v2f32,// ->65548
/* 65530*/        OPC_Scope, 5, /*->65537*/ // 2 children in Scope
/* 65532*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65534*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2f32] }:$src
/* 65537*/        /*Scope*/ 9, /*->65547*/
/* 65538*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65540*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                        MVT::v2f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v4f16] }:$src) - Complexity = 3
                    // Dst: (REV32v4i16:{ *:[v2f32] } FPR64:{ *:[v4f16] }:$src)
/* 65547*/        0, /*End of Scope*/
/* 65548*/      0, // EndSwitchType
/* 65549*/    /*Scope*/ 40|128,1/*168*/, /*->65719*/
/* 65551*/      OPC_CheckChild0Type, MVT::v2f32,
/* 65553*/      OPC_SwitchType /*8 cases */, 37, MVT::i64,// ->65593
/* 65556*/        OPC_Scope, 13, /*->65571*/ // 2 children in Scope
/* 65558*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65560*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65563*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v2f32] }:$Vn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v2f32] }:$Vn, GPR64:{ *:[i32] })
/* 65571*/        /*Scope*/ 20, /*->65592*/
/* 65572*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65574*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65577*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65585*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::i64, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v2f32] }:$Vn) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[i64] } (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v2f32] }:$Vn, GPR64:{ *:[i32] }))
/* 65592*/        0, /*End of Scope*/
/* 65593*/      /*SwitchType*/ 18, MVT::f64,// ->65613
/* 65595*/        OPC_Scope, 5, /*->65602*/ // 2 children in Scope
/* 65597*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65599*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[f64] }:$src
/* 65602*/        /*Scope*/ 9, /*->65612*/
/* 65603*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65605*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[f64] } FPR64:{ *:[v2f32] }:$src)
/* 65612*/        0, /*End of Scope*/
/* 65613*/      /*SwitchType*/ 18, MVT::v1i64,// ->65633
/* 65615*/        OPC_Scope, 5, /*->65622*/ // 2 children in Scope
/* 65617*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65619*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1i64] }:$src
/* 65622*/        /*Scope*/ 9, /*->65632*/
/* 65623*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65625*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v1i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v1i64] } FPR64:{ *:[v2f32] }:$src)
/* 65632*/        0, /*End of Scope*/
/* 65633*/      /*SwitchType*/ 3, MVT::v2i32,// ->65638
/* 65635*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2i32] }:$src
/* 65638*/      /*SwitchType*/ 18, MVT::v4i16,// ->65658
/* 65640*/        OPC_Scope, 5, /*->65647*/ // 2 children in Scope
/* 65642*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65644*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4i16] }:$src
/* 65647*/        /*Scope*/ 9, /*->65657*/
/* 65648*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65650*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                    // Dst: (REV32v4i16:{ *:[v4i16] } FPR64:{ *:[v2f32] }:$src)
/* 65657*/        0, /*End of Scope*/
/* 65658*/      /*SwitchType*/ 18, MVT::v8i8,// ->65678
/* 65660*/        OPC_Scope, 5, /*->65667*/ // 2 children in Scope
/* 65662*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65664*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v8i8] }:$src
/* 65667*/        /*Scope*/ 9, /*->65677*/
/* 65668*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65670*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                    // Dst: (REV32v8i8:{ *:[v8i8] } FPR64:{ *:[v2f32] }:$src)
/* 65677*/        0, /*End of Scope*/
/* 65678*/      /*SwitchType*/ 18, MVT::v4f16,// ->65698
/* 65680*/        OPC_Scope, 5, /*->65687*/ // 2 children in Scope
/* 65682*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65684*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4f16] }:$src
/* 65687*/        /*Scope*/ 9, /*->65697*/
/* 65688*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65690*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                        MVT::v4f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                    // Dst: (REV32v4i16:{ *:[v4f16] } FPR64:{ *:[v2f32] }:$src)
/* 65697*/        0, /*End of Scope*/
/* 65698*/      /*SwitchType*/ 18, MVT::v1f64,// ->65718
/* 65700*/        OPC_Scope, 5, /*->65707*/ // 2 children in Scope
/* 65702*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65704*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v1f64] }:$src
/* 65707*/        /*Scope*/ 9, /*->65717*/
/* 65708*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65710*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v1f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v1f64] } FPR64:{ *:[v2f32] }:$src)
/* 65717*/        0, /*End of Scope*/
/* 65718*/      0, // EndSwitchType
/* 65719*/    /*Scope*/ 16|128,1/*144*/, /*->65865*/
/* 65721*/      OPC_CheckChild0Type, MVT::v1f64,
/* 65723*/      OPC_SwitchType /*8 cases */, 28, MVT::i64,// ->65754
/* 65726*/        OPC_Scope, 13, /*->65741*/ // 2 children in Scope
/* 65728*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65730*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65733*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v1f64] }:$Vn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v1f64] }:$Vn, GPR64:{ *:[i32] })
/* 65741*/        /*Scope*/ 11, /*->65753*/
/* 65742*/          OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65745*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[i64] } V64:{ *:[v1f64] }:$Vn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v1f64] }:$Vn, GPR64:{ *:[i32] })
/* 65753*/        0, /*End of Scope*/
/* 65754*/      /*SwitchType*/ 3, MVT::f64,// ->65759
/* 65756*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[f64] }:$src
/* 65759*/      /*SwitchType*/ 3, MVT::v1i64,// ->65764
/* 65761*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1i64] }:$src
/* 65764*/      /*SwitchType*/ 18, MVT::v2i32,// ->65784
/* 65766*/        OPC_Scope, 5, /*->65773*/ // 2 children in Scope
/* 65768*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65770*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2i32] }:$src
/* 65773*/        /*Scope*/ 9, /*->65783*/
/* 65774*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65776*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v2i32] } FPR64:{ *:[v1f64] }:$src)
/* 65783*/        0, /*End of Scope*/
/* 65784*/      /*SwitchType*/ 18, MVT::v4i16,// ->65804
/* 65786*/        OPC_Scope, 5, /*->65793*/ // 2 children in Scope
/* 65788*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65790*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4i16] }:$src
/* 65793*/        /*Scope*/ 9, /*->65803*/
/* 65794*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65796*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v4i16] } FPR64:{ *:[v1f64] }:$src)
/* 65803*/        0, /*End of Scope*/
/* 65804*/      /*SwitchType*/ 18, MVT::v8i8,// ->65824
/* 65806*/        OPC_Scope, 5, /*->65813*/ // 2 children in Scope
/* 65808*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65810*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v8i8] }:$src
/* 65813*/        /*Scope*/ 9, /*->65823*/
/* 65814*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65816*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                    // Dst: (REV64v8i8:{ *:[v8i8] } FPR64:{ *:[v1f64] }:$src)
/* 65823*/        0, /*End of Scope*/
/* 65824*/      /*SwitchType*/ 18, MVT::v4f16,// ->65844
/* 65826*/        OPC_Scope, 5, /*->65833*/ // 2 children in Scope
/* 65828*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65830*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4f16] }:$src
/* 65833*/        /*Scope*/ 9, /*->65843*/
/* 65834*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65836*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v4f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v4f16] } FPR64:{ *:[v1f64] }:$src)
/* 65843*/        0, /*End of Scope*/
/* 65844*/      /*SwitchType*/ 18, MVT::v2f32,// ->65864
/* 65846*/        OPC_Scope, 5, /*->65853*/ // 2 children in Scope
/* 65848*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65850*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2f32] }:$src
/* 65853*/        /*Scope*/ 9, /*->65863*/
/* 65854*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65856*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v2f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v1f64] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v2f32] } FPR64:{ *:[v1f64] }:$src)
/* 65863*/        0, /*End of Scope*/
/* 65864*/      0, // EndSwitchType
/* 65865*/    /*Scope*/ 127, /*->65993*/
/* 65866*/      OPC_CheckChild0Type, MVT::v1i64,
/* 65868*/      OPC_SwitchType /*8 cases */, 11, MVT::i64,// ->65882
/* 65871*/        OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 65874*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[i64] } V64:{ *:[v1i64] }:$Vn) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[i64] } V64:{ *:[v1i64] }:$Vn, GPR64:{ *:[i32] })
/* 65882*/      /*SwitchType*/ 3, MVT::f64,// ->65887
/* 65884*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[f64] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[f64] }:$src
/* 65887*/      /*SwitchType*/ 18, MVT::v2i32,// ->65907
/* 65889*/        OPC_Scope, 5, /*->65896*/ // 2 children in Scope
/* 65891*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65893*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2i32] }:$src
/* 65896*/        /*Scope*/ 9, /*->65906*/
/* 65897*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65899*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v2i32] } FPR64:{ *:[v1i64] }:$src)
/* 65906*/        0, /*End of Scope*/
/* 65907*/      /*SwitchType*/ 18, MVT::v4i16,// ->65927
/* 65909*/        OPC_Scope, 5, /*->65916*/ // 2 children in Scope
/* 65911*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65913*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4i16] }:$src
/* 65916*/        /*Scope*/ 9, /*->65926*/
/* 65917*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65919*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v4i16] } FPR64:{ *:[v1i64] }:$src)
/* 65926*/        0, /*End of Scope*/
/* 65927*/      /*SwitchType*/ 18, MVT::v8i8,// ->65947
/* 65929*/        OPC_Scope, 5, /*->65936*/ // 2 children in Scope
/* 65931*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65933*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v8i8] }:$src
/* 65936*/        /*Scope*/ 9, /*->65946*/
/* 65937*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65939*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                    // Dst: (REV64v8i8:{ *:[v8i8] } FPR64:{ *:[v1i64] }:$src)
/* 65946*/        0, /*End of Scope*/
/* 65947*/      /*SwitchType*/ 18, MVT::v4f16,// ->65967
/* 65949*/        OPC_Scope, 5, /*->65956*/ // 2 children in Scope
/* 65951*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65953*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4f16] }:$src
/* 65956*/        /*Scope*/ 9, /*->65966*/
/* 65957*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65959*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v4f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v4f16] } FPR64:{ *:[v1i64] }:$src)
/* 65966*/        0, /*End of Scope*/
/* 65967*/      /*SwitchType*/ 3, MVT::v1f64,// ->65972
/* 65969*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1f64] }:$src
/* 65972*/      /*SwitchType*/ 18, MVT::v2f32,// ->65992
/* 65974*/        OPC_Scope, 5, /*->65981*/ // 2 children in Scope
/* 65976*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 65978*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2f32] }:$src
/* 65981*/        /*Scope*/ 9, /*->65991*/
/* 65982*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 65984*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v2f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[v1i64] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v2f32] } FPR64:{ *:[v1i64] }:$src)
/* 65991*/        0, /*End of Scope*/
/* 65992*/      0, // EndSwitchType
/* 65993*/    /*Scope*/ 15, /*->66009*/
/* 65994*/      OPC_CheckChild0Type, MVT::f32,
/* 65996*/      OPC_CheckType, MVT::i32,
/* 65998*/      OPC_EmitInteger, MVT::i32, AArch64::GPR32RegClassID,
/* 66001*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (bitconvert:{ *:[i32] } FPR32:{ *:[f32] }:$Xn) - Complexity = 3
                // Dst: (COPY_TO_REGCLASS:{ *:[i32] } FPR32:{ *:[f32] }:$Xn, GPR32:{ *:[i32] })
/* 66009*/    /*Scope*/ 127, /*->66137*/
/* 66010*/      OPC_CheckChild0Type, MVT::f64,
/* 66012*/      OPC_SwitchType /*8 cases */, 11, MVT::i64,// ->66026
/* 66015*/        OPC_EmitInteger, MVT::i32, AArch64::GPR64RegClassID,
/* 66018*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[i64] } FPR64:{ *:[f64] }:$Xn) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[i64] } FPR64:{ *:[f64] }:$Xn, GPR64:{ *:[i32] })
/* 66026*/      /*SwitchType*/ 3, MVT::v1i64,// ->66031
/* 66028*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1i64] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1i64] }:$src
/* 66031*/      /*SwitchType*/ 18, MVT::v2i32,// ->66051
/* 66033*/        OPC_Scope, 5, /*->66040*/ // 2 children in Scope
/* 66035*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66037*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2i32] }:$src
/* 66040*/        /*Scope*/ 9, /*->66050*/
/* 66041*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66043*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i32] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v2i32] } FPR64:{ *:[f64] }:$src)
/* 66050*/        0, /*End of Scope*/
/* 66051*/      /*SwitchType*/ 18, MVT::v4i16,// ->66071
/* 66053*/        OPC_Scope, 5, /*->66060*/ // 2 children in Scope
/* 66055*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66057*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4i16] }:$src
/* 66060*/        /*Scope*/ 9, /*->66070*/
/* 66061*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66063*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i16] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v4i16] } FPR64:{ *:[f64] }:$src)
/* 66070*/        0, /*End of Scope*/
/* 66071*/      /*SwitchType*/ 18, MVT::v8i8,// ->66091
/* 66073*/        OPC_Scope, 5, /*->66080*/ // 2 children in Scope
/* 66075*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66077*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v8i8] }:$src
/* 66080*/        /*Scope*/ 9, /*->66090*/
/* 66081*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66083*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i8] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (REV64v8i8:{ *:[v8i8] } FPR64:{ *:[f64] }:$src)
/* 66090*/        0, /*End of Scope*/
/* 66091*/      /*SwitchType*/ 18, MVT::v4f16,// ->66111
/* 66093*/        OPC_Scope, 5, /*->66100*/ // 2 children in Scope
/* 66095*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66097*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v4f16] }:$src
/* 66100*/        /*Scope*/ 9, /*->66110*/
/* 66101*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66103*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v4f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f16] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v4f16] } FPR64:{ *:[f64] }:$src)
/* 66110*/        0, /*End of Scope*/
/* 66111*/      /*SwitchType*/ 3, MVT::v1f64,// ->66116
/* 66113*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1f64] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1f64] }:$src
/* 66116*/      /*SwitchType*/ 18, MVT::v2f32,// ->66136
/* 66118*/        OPC_Scope, 5, /*->66125*/ // 2 children in Scope
/* 66120*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66122*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                     // Dst: FPR64:{ *:[v2f32] }:$src
/* 66125*/        /*Scope*/ 9, /*->66135*/
/* 66126*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66128*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v2f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f32] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v2f32] } FPR64:{ *:[f64] }:$src)
/* 66135*/        0, /*End of Scope*/
/* 66136*/      0, // EndSwitchType
/* 66137*/    /*Scope*/ 6|128,1/*134*/, /*->66273*/
/* 66139*/      OPC_CheckChild0Type, MVT::v2i64,
/* 66141*/      OPC_SwitchType /*7 cases */, 23, MVT::f128,// ->66167
/* 66144*/        OPC_Scope, 5, /*->66151*/ // 2 children in Scope
/* 66146*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66148*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[f128] }:$src
/* 66151*/        /*Scope*/ 14, /*->66166*/
/* 66152*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66154*/          OPC_EmitInteger, MVT::i32, 8, 
/* 66157*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::f128, 3/*#Ops*/, 0, 0, 1, 
                    // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[f128] } FPR128:{ *:[v2i64] }:$src, FPR128:{ *:[v2i64] }:$src, 8:{ *:[i32] })
/* 66166*/        0, /*End of Scope*/
/* 66167*/      /*SwitchType*/ 18, MVT::v4i32,// ->66187
/* 66169*/        OPC_Scope, 5, /*->66176*/ // 2 children in Scope
/* 66171*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66173*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4i32] }:$src
/* 66176*/        /*Scope*/ 9, /*->66186*/
/* 66177*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66179*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i32:{ *:[v4i32] } FPR128:{ *:[v2i64] }:$src)
/* 66186*/        0, /*End of Scope*/
/* 66187*/      /*SwitchType*/ 18, MVT::v8i16,// ->66207
/* 66189*/        OPC_Scope, 5, /*->66196*/ // 2 children in Scope
/* 66191*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66193*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8i16] }:$src
/* 66196*/        /*Scope*/ 9, /*->66206*/
/* 66197*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66199*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (REV64v8i16:{ *:[v8i16] } FPR128:{ *:[v2i64] }:$src)
/* 66206*/        0, /*End of Scope*/
/* 66207*/      /*SwitchType*/ 18, MVT::v16i8,// ->66227
/* 66209*/        OPC_Scope, 5, /*->66216*/ // 2 children in Scope
/* 66211*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66213*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v16i8] }:$src
/* 66216*/        /*Scope*/ 9, /*->66226*/
/* 66217*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66219*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v16i8), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (REV64v16i8:{ *:[v16i8] } FPR128:{ *:[v2i64] }:$src)
/* 66226*/        0, /*End of Scope*/
/* 66227*/      /*SwitchType*/ 3, MVT::v2f64,// ->66232
/* 66229*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2f64] }:$src
/* 66232*/      /*SwitchType*/ 18, MVT::v4f32,// ->66252
/* 66234*/        OPC_Scope, 5, /*->66241*/ // 2 children in Scope
/* 66236*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66238*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4f32] }:$src
/* 66241*/        /*Scope*/ 9, /*->66251*/
/* 66242*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66244*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i32:{ *:[v4f32] } FPR128:{ *:[v2i64] }:$src)
/* 66251*/        0, /*End of Scope*/
/* 66252*/      /*SwitchType*/ 18, MVT::v8f16,// ->66272
/* 66254*/        OPC_Scope, 5, /*->66261*/ // 2 children in Scope
/* 66256*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66258*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8f16] }:$src
/* 66261*/        /*Scope*/ 9, /*->66271*/
/* 66262*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66264*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::v8f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                    // Dst: (REV64v8i16:{ *:[v8f16] } FPR128:{ *:[v2i64] }:$src)
/* 66271*/        0, /*End of Scope*/
/* 66272*/      0, // EndSwitchType
/* 66273*/    /*Scope*/ 20|128,1/*148*/, /*->66423*/
/* 66275*/      OPC_CheckChild0Type, MVT::v4i32,
/* 66277*/      OPC_SwitchType /*7 cases */, 37, MVT::f128,// ->66317
/* 66280*/        OPC_Scope, 5, /*->66287*/ // 2 children in Scope
/* 66282*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66284*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[f128] }:$src
/* 66287*/        /*Scope*/ 28, /*->66316*/
/* 66288*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66290*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 66297*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 66304*/          OPC_EmitInteger, MVT::i32, 8, 
/* 66307*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::f128, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[f128] } (REV64v4i32:{ *:[f128] } FPR128:{ *:[v4i32] }:$src), (REV64v4i32:{ *:[f128] } FPR128:{ *:[v4i32] }:$src), 8:{ *:[i32] })
/* 66316*/        0, /*End of Scope*/
/* 66317*/      /*SwitchType*/ 18, MVT::v2i64,// ->66337
/* 66319*/        OPC_Scope, 5, /*->66326*/ // 2 children in Scope
/* 66321*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66323*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2i64] }:$src
/* 66326*/        /*Scope*/ 9, /*->66336*/
/* 66327*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66329*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (REV64v4i32:{ *:[v2i64] } FPR128:{ *:[v4i32] }:$src)
/* 66336*/        0, /*End of Scope*/
/* 66337*/      /*SwitchType*/ 18, MVT::v8i16,// ->66357
/* 66339*/        OPC_Scope, 5, /*->66346*/ // 2 children in Scope
/* 66341*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66343*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8i16] }:$src
/* 66346*/        /*Scope*/ 9, /*->66356*/
/* 66347*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66349*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (REV32v8i16:{ *:[v8i16] } FPR128:{ *:[v4i32] }:$src)
/* 66356*/        0, /*End of Scope*/
/* 66357*/      /*SwitchType*/ 18, MVT::v16i8,// ->66377
/* 66359*/        OPC_Scope, 5, /*->66366*/ // 2 children in Scope
/* 66361*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66363*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v16i8] }:$src
/* 66366*/        /*Scope*/ 9, /*->66376*/
/* 66367*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66369*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v16i8), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (REV32v16i8:{ *:[v16i8] } FPR128:{ *:[v4i32] }:$src)
/* 66376*/        0, /*End of Scope*/
/* 66377*/      /*SwitchType*/ 18, MVT::v2f64,// ->66397
/* 66379*/        OPC_Scope, 5, /*->66386*/ // 2 children in Scope
/* 66381*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66383*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2f64] }:$src
/* 66386*/        /*Scope*/ 9, /*->66396*/
/* 66387*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66389*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (REV64v4i32:{ *:[v2f64] } FPR128:{ *:[v4i32] }:$src)
/* 66396*/        0, /*End of Scope*/
/* 66397*/      /*SwitchType*/ 3, MVT::v4f32,// ->66402
/* 66399*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4f32] }:$src
/* 66402*/      /*SwitchType*/ 18, MVT::v8f16,// ->66422
/* 66404*/        OPC_Scope, 5, /*->66411*/ // 2 children in Scope
/* 66406*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66408*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8f16] }:$src
/* 66411*/        /*Scope*/ 9, /*->66421*/
/* 66412*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66414*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                        MVT::v8f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (REV32v8i16:{ *:[v8f16] } FPR128:{ *:[v4i32] }:$src)
/* 66421*/        0, /*End of Scope*/
/* 66422*/      0, // EndSwitchType
/* 66423*/    /*Scope*/ 20|128,1/*148*/, /*->66573*/
/* 66425*/      OPC_CheckChild0Type, MVT::v8i16,
/* 66427*/      OPC_SwitchType /*7 cases */, 37, MVT::f128,// ->66467
/* 66430*/        OPC_Scope, 5, /*->66437*/ // 2 children in Scope
/* 66432*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66434*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[f128] }:$src
/* 66437*/        /*Scope*/ 28, /*->66466*/
/* 66438*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66440*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 66447*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 66454*/          OPC_EmitInteger, MVT::i32, 8, 
/* 66457*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::f128, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[f128] } (REV64v8i16:{ *:[f128] } FPR128:{ *:[v8i16] }:$src), (REV64v8i16:{ *:[f128] } FPR128:{ *:[v8i16] }:$src), 8:{ *:[i32] })
/* 66466*/        0, /*End of Scope*/
/* 66467*/      /*SwitchType*/ 18, MVT::v2i64,// ->66487
/* 66469*/        OPC_Scope, 5, /*->66476*/ // 2 children in Scope
/* 66471*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66473*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2i64] }:$src
/* 66476*/        /*Scope*/ 9, /*->66486*/
/* 66477*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66479*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (REV64v8i16:{ *:[v2i64] } FPR128:{ *:[v8i16] }:$src)
/* 66486*/        0, /*End of Scope*/
/* 66487*/      /*SwitchType*/ 18, MVT::v4i32,// ->66507
/* 66489*/        OPC_Scope, 5, /*->66496*/ // 2 children in Scope
/* 66491*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66493*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4i32] }:$src
/* 66496*/        /*Scope*/ 9, /*->66506*/
/* 66497*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66499*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (REV32v8i16:{ *:[v4i32] } FPR128:{ *:[v8i16] }:$src)
/* 66506*/        0, /*End of Scope*/
/* 66507*/      /*SwitchType*/ 18, MVT::v16i8,// ->66527
/* 66509*/        OPC_Scope, 5, /*->66516*/ // 2 children in Scope
/* 66511*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66513*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v16i8] }:$src
/* 66516*/        /*Scope*/ 9, /*->66526*/
/* 66517*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66519*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v16i8), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (REV16v16i8:{ *:[v16i8] } FPR128:{ *:[v8i16] }:$src)
/* 66526*/        0, /*End of Scope*/
/* 66527*/      /*SwitchType*/ 18, MVT::v2f64,// ->66547
/* 66529*/        OPC_Scope, 5, /*->66536*/ // 2 children in Scope
/* 66531*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66533*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2f64] }:$src
/* 66536*/        /*Scope*/ 9, /*->66546*/
/* 66537*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66539*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (REV64v8i16:{ *:[v2f64] } FPR128:{ *:[v8i16] }:$src)
/* 66546*/        0, /*End of Scope*/
/* 66547*/      /*SwitchType*/ 18, MVT::v4f32,// ->66567
/* 66549*/        OPC_Scope, 5, /*->66556*/ // 2 children in Scope
/* 66551*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66553*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4f32] }:$src
/* 66556*/        /*Scope*/ 9, /*->66566*/
/* 66557*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66559*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (REV32v8i16:{ *:[v4f32] } FPR128:{ *:[v8i16] }:$src)
/* 66566*/        0, /*End of Scope*/
/* 66567*/      /*SwitchType*/ 3, MVT::v8f16,// ->66572
/* 66569*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8f16] }:$src
/* 66572*/      0, // EndSwitchType
/* 66573*/    /*Scope*/ 6|128,1/*134*/, /*->66709*/
/* 66575*/      OPC_CheckChild0Type, MVT::v2f64,
/* 66577*/      OPC_SwitchType /*7 cases */, 23, MVT::f128,// ->66603
/* 66580*/        OPC_Scope, 5, /*->66587*/ // 2 children in Scope
/* 66582*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66584*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[f128] }:$src
/* 66587*/        /*Scope*/ 14, /*->66602*/
/* 66588*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66590*/          OPC_EmitInteger, MVT::i32, 8, 
/* 66593*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::f128, 3/*#Ops*/, 0, 0, 1, 
                    // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[f128] } FPR128:{ *:[v2f64] }:$src, FPR128:{ *:[v2f64] }:$src, 8:{ *:[i32] })
/* 66602*/        0, /*End of Scope*/
/* 66603*/      /*SwitchType*/ 3, MVT::v2i64,// ->66608
/* 66605*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2i64] }:$src
/* 66608*/      /*SwitchType*/ 18, MVT::v4i32,// ->66628
/* 66610*/        OPC_Scope, 5, /*->66617*/ // 2 children in Scope
/* 66612*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66614*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4i32] }:$src
/* 66617*/        /*Scope*/ 9, /*->66627*/
/* 66618*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66620*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i32:{ *:[v4i32] } FPR128:{ *:[v2f64] }:$src)
/* 66627*/        0, /*End of Scope*/
/* 66628*/      /*SwitchType*/ 18, MVT::v8i16,// ->66648
/* 66630*/        OPC_Scope, 5, /*->66637*/ // 2 children in Scope
/* 66632*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66634*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8i16] }:$src
/* 66637*/        /*Scope*/ 9, /*->66647*/
/* 66638*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66640*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (REV64v8i16:{ *:[v8i16] } FPR128:{ *:[v2f64] }:$src)
/* 66647*/        0, /*End of Scope*/
/* 66648*/      /*SwitchType*/ 18, MVT::v16i8,// ->66668
/* 66650*/        OPC_Scope, 5, /*->66657*/ // 2 children in Scope
/* 66652*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66654*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v16i8] }:$src
/* 66657*/        /*Scope*/ 9, /*->66667*/
/* 66658*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66660*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v16i8), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (REV64v16i8:{ *:[v16i8] } FPR128:{ *:[v2f64] }:$src)
/* 66667*/        0, /*End of Scope*/
/* 66668*/      /*SwitchType*/ 18, MVT::v4f32,// ->66688
/* 66670*/        OPC_Scope, 5, /*->66677*/ // 2 children in Scope
/* 66672*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66674*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4f32] }:$src
/* 66677*/        /*Scope*/ 9, /*->66687*/
/* 66678*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66680*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (REV64v4i32:{ *:[v4f32] } FPR128:{ *:[v2f64] }:$src)
/* 66687*/        0, /*End of Scope*/
/* 66688*/      /*SwitchType*/ 18, MVT::v8f16,// ->66708
/* 66690*/        OPC_Scope, 5, /*->66697*/ // 2 children in Scope
/* 66692*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66694*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8f16] }:$src
/* 66697*/        /*Scope*/ 9, /*->66707*/
/* 66698*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66700*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::v8f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (REV64v8i16:{ *:[v8f16] } FPR128:{ *:[v2f64] }:$src)
/* 66707*/        0, /*End of Scope*/
/* 66708*/      0, // EndSwitchType
/* 66709*/    /*Scope*/ 20|128,1/*148*/, /*->66859*/
/* 66711*/      OPC_CheckChild0Type, MVT::v4f32,
/* 66713*/      OPC_SwitchType /*7 cases */, 37, MVT::f128,// ->66753
/* 66716*/        OPC_Scope, 5, /*->66723*/ // 2 children in Scope
/* 66718*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66720*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[f128] }:$src
/* 66723*/        /*Scope*/ 28, /*->66752*/
/* 66724*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66726*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 66733*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 66740*/          OPC_EmitInteger, MVT::i32, 8, 
/* 66743*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::f128, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[f128] } (REV64v4i32:{ *:[f128] } FPR128:{ *:[v4f32] }:$src), (REV64v4i32:{ *:[f128] } FPR128:{ *:[v4f32] }:$src), 8:{ *:[i32] })
/* 66752*/        0, /*End of Scope*/
/* 66753*/      /*SwitchType*/ 18, MVT::v2i64,// ->66773
/* 66755*/        OPC_Scope, 5, /*->66762*/ // 2 children in Scope
/* 66757*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66759*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2i64] }:$src
/* 66762*/        /*Scope*/ 9, /*->66772*/
/* 66763*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66765*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (REV64v4i32:{ *:[v2i64] } FPR128:{ *:[v4f32] }:$src)
/* 66772*/        0, /*End of Scope*/
/* 66773*/      /*SwitchType*/ 3, MVT::v4i32,// ->66778
/* 66775*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4i32] }:$src
/* 66778*/      /*SwitchType*/ 18, MVT::v8i16,// ->66798
/* 66780*/        OPC_Scope, 5, /*->66787*/ // 2 children in Scope
/* 66782*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66784*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8i16] }:$src
/* 66787*/        /*Scope*/ 9, /*->66797*/
/* 66788*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66790*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (REV32v8i16:{ *:[v8i16] } FPR128:{ *:[v4f32] }:$src)
/* 66797*/        0, /*End of Scope*/
/* 66798*/      /*SwitchType*/ 18, MVT::v16i8,// ->66818
/* 66800*/        OPC_Scope, 5, /*->66807*/ // 2 children in Scope
/* 66802*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66804*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v16i8] }:$src
/* 66807*/        /*Scope*/ 9, /*->66817*/
/* 66808*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66810*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v16i8), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (REV32v16i8:{ *:[v16i8] } FPR128:{ *:[v4f32] }:$src)
/* 66817*/        0, /*End of Scope*/
/* 66818*/      /*SwitchType*/ 18, MVT::v2f64,// ->66838
/* 66820*/        OPC_Scope, 5, /*->66827*/ // 2 children in Scope
/* 66822*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66824*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2f64] }:$src
/* 66827*/        /*Scope*/ 9, /*->66837*/
/* 66828*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66830*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (REV64v4i32:{ *:[v2f64] } FPR128:{ *:[v4f32] }:$src)
/* 66837*/        0, /*End of Scope*/
/* 66838*/      /*SwitchType*/ 18, MVT::v8f16,// ->66858
/* 66840*/        OPC_Scope, 5, /*->66847*/ // 2 children in Scope
/* 66842*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66844*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8f16] }:$src
/* 66847*/        /*Scope*/ 9, /*->66857*/
/* 66848*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66850*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                        MVT::v8f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (REV32v8i16:{ *:[v8f16] } FPR128:{ *:[v4f32] }:$src)
/* 66857*/        0, /*End of Scope*/
/* 66858*/      0, // EndSwitchType
/* 66859*/    /*Scope*/ 20|128,1/*148*/, /*->67009*/
/* 66861*/      OPC_CheckChild0Type, MVT::v8f16,
/* 66863*/      OPC_SwitchType /*7 cases */, 37, MVT::f128,// ->66903
/* 66866*/        OPC_Scope, 5, /*->66873*/ // 2 children in Scope
/* 66868*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66870*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[f128] }:$src
/* 66873*/        /*Scope*/ 28, /*->66902*/
/* 66874*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66876*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 66883*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 66890*/          OPC_EmitInteger, MVT::i32, 8, 
/* 66893*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::f128, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[f128] } (REV64v8i16:{ *:[f128] } FPR128:{ *:[v8f16] }:$src), (REV64v8i16:{ *:[f128] } FPR128:{ *:[v8f16] }:$src), 8:{ *:[i32] })
/* 66902*/        0, /*End of Scope*/
/* 66903*/      /*SwitchType*/ 18, MVT::v2i64,// ->66923
/* 66905*/        OPC_Scope, 5, /*->66912*/ // 2 children in Scope
/* 66907*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66909*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2i64] }:$src
/* 66912*/        /*Scope*/ 9, /*->66922*/
/* 66913*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66915*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (REV64v8i16:{ *:[v2i64] } FPR128:{ *:[v8f16] }:$src)
/* 66922*/        0, /*End of Scope*/
/* 66923*/      /*SwitchType*/ 18, MVT::v4i32,// ->66943
/* 66925*/        OPC_Scope, 5, /*->66932*/ // 2 children in Scope
/* 66927*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66929*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4i32] }:$src
/* 66932*/        /*Scope*/ 9, /*->66942*/
/* 66933*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66935*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (REV32v8i16:{ *:[v4i32] } FPR128:{ *:[v8f16] }:$src)
/* 66942*/        0, /*End of Scope*/
/* 66943*/      /*SwitchType*/ 3, MVT::v8i16,// ->66948
/* 66945*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8i16] }:$src
/* 66948*/      /*SwitchType*/ 18, MVT::v16i8,// ->66968
/* 66950*/        OPC_Scope, 5, /*->66957*/ // 2 children in Scope
/* 66952*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66954*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v16i8] }:$src
/* 66957*/        /*Scope*/ 9, /*->66967*/
/* 66958*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66960*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v16i8), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (REV16v16i8:{ *:[v16i8] } FPR128:{ *:[v8f16] }:$src)
/* 66967*/        0, /*End of Scope*/
/* 66968*/      /*SwitchType*/ 18, MVT::v2f64,// ->66988
/* 66970*/        OPC_Scope, 5, /*->66977*/ // 2 children in Scope
/* 66972*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66974*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2f64] }:$src
/* 66977*/        /*Scope*/ 9, /*->66987*/
/* 66978*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 66980*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (REV64v8i16:{ *:[v2f64] } FPR128:{ *:[v8f16] }:$src)
/* 66987*/        0, /*End of Scope*/
/* 66988*/      /*SwitchType*/ 18, MVT::v4f32,// ->67008
/* 66990*/        OPC_Scope, 5, /*->66997*/ // 2 children in Scope
/* 66992*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 66994*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4f32] }:$src
/* 66997*/        /*Scope*/ 9, /*->67007*/
/* 66998*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67000*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (REV32v8i16:{ *:[v4f32] } FPR128:{ *:[v8f16] }:$src)
/* 67007*/        0, /*End of Scope*/
/* 67008*/      0, // EndSwitchType
/* 67009*/    /*Scope*/ 35|128,1/*163*/, /*->67174*/
/* 67011*/      OPC_CheckChild0Type, MVT::v16i8,
/* 67013*/      OPC_SwitchType /*7 cases */, 37, MVT::f128,// ->67053
/* 67016*/        OPC_Scope, 5, /*->67023*/ // 2 children in Scope
/* 67018*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67020*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[f128] }:$src
/* 67023*/        /*Scope*/ 28, /*->67052*/
/* 67024*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67026*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v16i8), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 67033*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v16i8), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 67040*/          OPC_EmitInteger, MVT::i32, 8, 
/* 67043*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::f128, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[f128] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[f128] } (REV64v16i8:{ *:[f128] } FPR128:{ *:[v16i8] }:$src), (REV64v16i8:{ *:[f128] } FPR128:{ *:[v16i8] }:$src), 8:{ *:[i32] })
/* 67052*/        0, /*End of Scope*/
/* 67053*/      /*SwitchType*/ 18, MVT::v2i64,// ->67073
/* 67055*/        OPC_Scope, 5, /*->67062*/ // 2 children in Scope
/* 67057*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67059*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2i64] }:$src
/* 67062*/        /*Scope*/ 9, /*->67072*/
/* 67063*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67065*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v16i8), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (REV64v16i8:{ *:[v2i64] } FPR128:{ *:[v16i8] }:$src)
/* 67072*/        0, /*End of Scope*/
/* 67073*/      /*SwitchType*/ 18, MVT::v4i32,// ->67093
/* 67075*/        OPC_Scope, 5, /*->67082*/ // 2 children in Scope
/* 67077*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67079*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4i32] }:$src
/* 67082*/        /*Scope*/ 9, /*->67092*/
/* 67083*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67085*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v16i8), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (REV32v16i8:{ *:[v4i32] } FPR128:{ *:[v16i8] }:$src)
/* 67092*/        0, /*End of Scope*/
/* 67093*/      /*SwitchType*/ 18, MVT::v8i16,// ->67113
/* 67095*/        OPC_Scope, 5, /*->67102*/ // 2 children in Scope
/* 67097*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67099*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8i16] }:$src
/* 67102*/        /*Scope*/ 9, /*->67112*/
/* 67103*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67105*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v16i8), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (REV16v16i8:{ *:[v8i16] } FPR128:{ *:[v16i8] }:$src)
/* 67112*/        0, /*End of Scope*/
/* 67113*/      /*SwitchType*/ 18, MVT::v2f64,// ->67133
/* 67115*/        OPC_Scope, 5, /*->67122*/ // 2 children in Scope
/* 67117*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67119*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2f64] }:$src
/* 67122*/        /*Scope*/ 9, /*->67132*/
/* 67123*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67125*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v16i8), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (REV64v16i8:{ *:[v2f64] } FPR128:{ *:[v16i8] }:$src)
/* 67132*/        0, /*End of Scope*/
/* 67133*/      /*SwitchType*/ 18, MVT::v4f32,// ->67153
/* 67135*/        OPC_Scope, 5, /*->67142*/ // 2 children in Scope
/* 67137*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67139*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4f32] }:$src
/* 67142*/        /*Scope*/ 9, /*->67152*/
/* 67143*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67145*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v16i8), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (REV32v16i8:{ *:[v4f32] } FPR128:{ *:[v16i8] }:$src)
/* 67152*/        0, /*End of Scope*/
/* 67153*/      /*SwitchType*/ 18, MVT::v8f16,// ->67173
/* 67155*/        OPC_Scope, 5, /*->67162*/ // 2 children in Scope
/* 67157*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67159*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8f16] }:$src
/* 67162*/        /*Scope*/ 9, /*->67172*/
/* 67163*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67165*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v16i8), 0,
                        MVT::v8f16, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (REV16v16i8:{ *:[v8f16] } FPR128:{ *:[v16i8] }:$src)
/* 67172*/        0, /*End of Scope*/
/* 67173*/      0, // EndSwitchType
/* 67174*/    /*Scope*/ 15, /*->67190*/
/* 67175*/      OPC_CheckChild0Type, MVT::i32,
/* 67177*/      OPC_CheckType, MVT::f32,
/* 67179*/      OPC_EmitInteger, MVT::i32, AArch64::FPR32RegClassID,
/* 67182*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (bitconvert:{ *:[f32] } GPR32:{ *:[i32] }:$Xn) - Complexity = 3
                // Dst: (COPY_TO_REGCLASS:{ *:[f32] } GPR32:{ *:[i32] }:$Xn, FPR32:{ *:[i32] })
/* 67190*/    /*Scope*/ 110|128,1/*238*/, /*->67430*/
/* 67192*/      OPC_CheckChild0Type, MVT::i64,
/* 67194*/      OPC_SwitchType /*8 cases */, 11, MVT::f64,// ->67208
/* 67197*/        OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67200*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[f64] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[f64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 67208*/      /*SwitchType*/ 37, MVT::v8i8,// ->67247
/* 67210*/        OPC_Scope, 13, /*->67225*/ // 2 children in Scope
/* 67212*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67214*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67217*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i8, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v8i8] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i8] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 67225*/        /*Scope*/ 20, /*->67246*/
/* 67226*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67228*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67231*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67239*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                        MVT::v8i8, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[v8i8] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (REV64v8i8:{ *:[v8i8] } (COPY_TO_REGCLASS:{ *:[i64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] }))
/* 67246*/        0, /*End of Scope*/
/* 67247*/      /*SwitchType*/ 37, MVT::v4i16,// ->67286
/* 67249*/        OPC_Scope, 13, /*->67264*/ // 2 children in Scope
/* 67251*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67253*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67256*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v4i16] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i16] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 67264*/        /*Scope*/ 20, /*->67285*/
/* 67265*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67267*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67270*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67278*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v4i16, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[v4i16] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v4i16] } (COPY_TO_REGCLASS:{ *:[i64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] }))
/* 67285*/        0, /*End of Scope*/
/* 67286*/      /*SwitchType*/ 37, MVT::v2i32,// ->67325
/* 67288*/        OPC_Scope, 13, /*->67303*/ // 2 children in Scope
/* 67290*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67292*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67295*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v2i32] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i32] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 67303*/        /*Scope*/ 20, /*->67324*/
/* 67304*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67306*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67309*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67317*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v2i32, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[v2i32] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v2i32] } (COPY_TO_REGCLASS:{ *:[i64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] }))
/* 67324*/        0, /*End of Scope*/
/* 67325*/      /*SwitchType*/ 11, MVT::v1i64,// ->67338
/* 67327*/        OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67330*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v1i64] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 67338*/      /*SwitchType*/ 37, MVT::v4f16,// ->67377
/* 67340*/        OPC_Scope, 13, /*->67355*/ // 2 children in Scope
/* 67342*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67344*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67347*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f16, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v4f16] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4f16] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 67355*/        /*Scope*/ 20, /*->67376*/
/* 67356*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67358*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67361*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67369*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                        MVT::v4f16, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[v4f16] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (REV64v4i16:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[i64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] }))
/* 67376*/        0, /*End of Scope*/
/* 67377*/      /*SwitchType*/ 37, MVT::v2f32,// ->67416
/* 67379*/        OPC_Scope, 13, /*->67394*/ // 2 children in Scope
/* 67381*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67383*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67386*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v2f32] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2f32] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 67394*/        /*Scope*/ 20, /*->67415*/
/* 67395*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67397*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67400*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67408*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                        MVT::v2f32, 1/*#Ops*/, 2, 
                    // Src: (bitconvert:{ *:[v2f32] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (REV64v2i32:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[i64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] }))
/* 67415*/        0, /*End of Scope*/
/* 67416*/      /*SwitchType*/ 11, MVT::v1f64,// ->67429
/* 67418*/        OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 67421*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1f64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v1f64] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1f64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 67429*/      0, // EndSwitchType
/* 67430*/    /*Scope*/ 121|128,1/*249*/, /*->67681*/
/* 67432*/      OPC_CheckChild0Type, MVT::f128,
/* 67434*/      OPC_SwitchType /*7 cases */, 23, MVT::v2i64,// ->67460
/* 67437*/        OPC_Scope, 5, /*->67444*/ // 2 children in Scope
/* 67439*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67441*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2i64] }:$src
/* 67444*/        /*Scope*/ 14, /*->67459*/
/* 67445*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67447*/          OPC_EmitInteger, MVT::i32, 8, 
/* 67450*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 0, 1, 
                    // Src: (bitconvert:{ *:[v2i64] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[v2i64] } FPR128:{ *:[f128] }:$src, FPR128:{ *:[f128] }:$src, 8:{ *:[i32] })
/* 67459*/        0, /*End of Scope*/
/* 67460*/      /*SwitchType*/ 37, MVT::v4i32,// ->67499
/* 67462*/        OPC_Scope, 5, /*->67469*/ // 2 children in Scope
/* 67464*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67466*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4i32] }:$src
/* 67469*/        /*Scope*/ 28, /*->67498*/
/* 67470*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67472*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 67479*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 67486*/          OPC_EmitInteger, MVT::i32, 8, 
/* 67489*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[v4i32] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[v4i32] } (REV64v4i32:{ *:[f128] } FPR128:{ *:[f128] }:$src), (REV64v4i32:{ *:[f128] } FPR128:{ *:[f128] }:$src), 8:{ *:[i32] })
/* 67498*/        0, /*End of Scope*/
/* 67499*/      /*SwitchType*/ 37, MVT::v8i16,// ->67538
/* 67501*/        OPC_Scope, 5, /*->67508*/ // 2 children in Scope
/* 67503*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67505*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8i16] }:$src
/* 67508*/        /*Scope*/ 28, /*->67537*/
/* 67509*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67511*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 67518*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 67525*/          OPC_EmitInteger, MVT::i32, 8, 
/* 67528*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[v8i16] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[v8i16] } (REV64v8i16:{ *:[f128] } FPR128:{ *:[f128] }:$src), (REV64v8i16:{ *:[f128] } FPR128:{ *:[f128] }:$src), 8:{ *:[i32] })
/* 67537*/        0, /*End of Scope*/
/* 67538*/      /*SwitchType*/ 37, MVT::v16i8,// ->67577
/* 67540*/        OPC_Scope, 5, /*->67547*/ // 2 children in Scope
/* 67542*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67544*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v16i8] }:$src
/* 67547*/        /*Scope*/ 28, /*->67576*/
/* 67548*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67550*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v16i8), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 67557*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v16i8), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 67564*/          OPC_EmitInteger, MVT::i32, 8, 
/* 67567*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[v16i8] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[v16i8] } (REV64v16i8:{ *:[f128] } FPR128:{ *:[f128] }:$src), (REV64v16i8:{ *:[f128] } FPR128:{ *:[f128] }:$src), 8:{ *:[i32] })
/* 67576*/        0, /*End of Scope*/
/* 67577*/      /*SwitchType*/ 23, MVT::v2f64,// ->67602
/* 67579*/        OPC_Scope, 5, /*->67586*/ // 2 children in Scope
/* 67581*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67583*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v2f64] }:$src
/* 67586*/        /*Scope*/ 14, /*->67601*/
/* 67587*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67589*/          OPC_EmitInteger, MVT::i32, 8, 
/* 67592*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 0, 1, 
                    // Src: (bitconvert:{ *:[v2f64] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[v2f64] } FPR128:{ *:[f128] }:$src, FPR128:{ *:[f128] }:$src, 8:{ *:[i32] })
/* 67601*/        0, /*End of Scope*/
/* 67602*/      /*SwitchType*/ 37, MVT::v4f32,// ->67641
/* 67604*/        OPC_Scope, 5, /*->67611*/ // 2 children in Scope
/* 67606*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67608*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v4f32] }:$src
/* 67611*/        /*Scope*/ 28, /*->67640*/
/* 67612*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67614*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 67621*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v4i32), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 67628*/          OPC_EmitInteger, MVT::i32, 8, 
/* 67631*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[v4f32] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[v4f32] } (REV64v4i32:{ *:[f128] } FPR128:{ *:[f128] }:$src), (REV64v4i32:{ *:[f128] } FPR128:{ *:[f128] }:$src), 8:{ *:[i32] })
/* 67640*/        0, /*End of Scope*/
/* 67641*/      /*SwitchType*/ 37, MVT::v8f16,// ->67680
/* 67643*/        OPC_Scope, 5, /*->67650*/ // 2 children in Scope
/* 67645*/          OPC_CheckPatternPredicate, 0, // (Subtarget->isLittleEndian())
/* 67647*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                     // Dst: FPR128:{ *:[v8f16] }:$src
/* 67650*/        /*Scope*/ 28, /*->67679*/
/* 67651*/          OPC_CheckPatternPredicate, 16, // (!Subtarget->isLittleEndian())
/* 67653*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 67660*/          OPC_EmitNode1, TARGET_VAL(AArch64::REV64v8i16), 0,
                        MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/* 67667*/          OPC_EmitInteger, MVT::i32, 8, 
/* 67670*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::v8f16, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (bitconvert:{ *:[v8f16] } FPR128:{ *:[f128] }:$src) - Complexity = 3
                    // Dst: (EXTv16i8:{ *:[v8f16] } (REV64v8i16:{ *:[f128] } FPR128:{ *:[f128] }:$src), (REV64v8i16:{ *:[f128] } FPR128:{ *:[f128] }:$src), 8:{ *:[i32] })
/* 67679*/        0, /*End of Scope*/
/* 67680*/      0, // EndSwitchType
/* 67681*/    0, /*End of Scope*/
/* 67682*/  /*SwitchOpcode*/ 35, TARGET_VAL(ISD::CTTZ),// ->67720
/* 67685*/    OPC_RecordChild0, // #0 = $Rn
/* 67686*/    OPC_SwitchType /*2 cases */, 14, MVT::i32,// ->67703
/* 67689*/      OPC_EmitNode1, TARGET_VAL(AArch64::RBITWr), 0,
                    MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 67696*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZWr), 0,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (cttz:{ *:[i32] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (CLZWr:{ *:[i32] } (RBITWr:{ *:[i32] } GPR32:{ *:[i32] }:$Rn))
/* 67703*/    /*SwitchType*/ 14, MVT::i64,// ->67719
/* 67705*/      OPC_EmitNode1, TARGET_VAL(AArch64::RBITXr), 0,
                    MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 67712*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CLZXr), 0,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (cttz:{ *:[i64] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                // Dst: (CLZXr:{ *:[i64] } (RBITXr:{ *:[i64] } GPR64:{ *:[i64] }:$Rn))
/* 67719*/    0, // EndSwitchType
/* 67720*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(ISD::ANY_EXTEND),// ->67865
/* 67724*/    OPC_Scope, 21, /*->67747*/ // 3 children in Scope
/* 67726*/      OPC_RecordChild0, // #0 = $src
/* 67727*/      OPC_CheckType, MVT::i64,
/* 67729*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1
/* 67735*/      OPC_EmitInteger, MVT::i32, AArch64::sub_32,
/* 67738*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 0, 2, 
                // Src: (anyext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GPR32:{ *:[i32] }:$src, sub_32:{ *:[i32] })
/* 67747*/    /*Scope*/ 67, /*->67815*/
/* 67748*/      OPC_MoveChild0,
/* 67749*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 67752*/      OPC_RecordChild0, // #0 = $Rn
/* 67753*/      OPC_SwitchType /*3 cases */, 18, MVT::v8i8,// ->67774
/* 67756*/        OPC_CheckChild1Integer, 8, 
/* 67758*/        OPC_CheckChild1Type, MVT::i64,
/* 67760*/        OPC_MoveParent,
/* 67761*/        OPC_CheckType, MVT::v8i16,
/* 67763*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67766*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv16i8_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (anyext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })) - Complexity = 11
                  // Dst: (USHLLv16i8_shift:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, 0:{ *:[i32] })
/* 67774*/      /*SwitchType*/ 18, MVT::v4i16,// ->67794
/* 67776*/        OPC_CheckChild1Integer, 4, 
/* 67778*/        OPC_CheckChild1Type, MVT::i64,
/* 67780*/        OPC_MoveParent,
/* 67781*/        OPC_CheckType, MVT::v4i32,
/* 67783*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67786*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv8i16_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (anyext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })) - Complexity = 11
                  // Dst: (USHLLv8i16_shift:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, 0:{ *:[i32] })
/* 67794*/      /*SwitchType*/ 18, MVT::v2i32,// ->67814
/* 67796*/        OPC_CheckChild1Integer, 2, 
/* 67798*/        OPC_CheckChild1Type, MVT::i64,
/* 67800*/        OPC_MoveParent,
/* 67801*/        OPC_CheckType, MVT::v2i64,
/* 67803*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67806*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv4i32_shift), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (anyext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })) - Complexity = 11
                  // Dst: (USHLLv4i32_shift:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, 0:{ *:[i32] })
/* 67814*/      0, // EndSwitchType
/* 67815*/    /*Scope*/ 48, /*->67864*/
/* 67816*/      OPC_RecordChild0, // #0 = $Rn
/* 67817*/      OPC_SwitchType /*3 cases */, 13, MVT::v8i16,// ->67833
/* 67820*/        OPC_CheckChild0Type, MVT::v8i8,
/* 67822*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67825*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv8i8_shift), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (anyext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                  // Dst: (USHLLv8i8_shift:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, 0:{ *:[i32] })
/* 67833*/      /*SwitchType*/ 13, MVT::v4i32,// ->67848
/* 67835*/        OPC_CheckChild0Type, MVT::v4i16,
/* 67837*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67840*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv4i16_shift), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (anyext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (USHLLv4i16_shift:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, 0:{ *:[i32] })
/* 67848*/      /*SwitchType*/ 13, MVT::v2i64,// ->67863
/* 67850*/        OPC_CheckChild0Type, MVT::v2i32,
/* 67852*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67855*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv2i32_shift), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (anyext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (USHLLv2i32_shift:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, 0:{ *:[i32] })
/* 67863*/      0, // EndSwitchType
/* 67864*/    0, /*End of Scope*/
/* 67865*/  /*SwitchOpcode*/ 112|128,26/*3440*/, TARGET_VAL(ISD::FMA),// ->71309
/* 67869*/    OPC_Scope, 68, /*->67939*/ // 22 children in Scope
/* 67871*/      OPC_MoveChild0,
/* 67872*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 67875*/      OPC_MoveChild0,
/* 67876*/      OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 67879*/      OPC_MoveChild0,
/* 67880*/      OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 67883*/      OPC_MoveParent,
/* 67884*/      OPC_MoveChild1,
/* 67885*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 67888*/      OPC_RecordChild0, // #0 = $Rm
/* 67889*/      OPC_MoveParent,
/* 67890*/      OPC_CheckChild2Integer, 0, 
/* 67892*/      OPC_CheckChild2Type, MVT::i32,
/* 67894*/      OPC_CheckType, MVT::v4f32,
/* 67896*/      OPC_MoveParent,
/* 67897*/      OPC_RecordChild1, // #1 = $idx
/* 67898*/      OPC_MoveChild1,
/* 67899*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67902*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 67904*/      OPC_CheckType, MVT::i64,
/* 67906*/      OPC_MoveParent,
/* 67907*/      OPC_MoveParent,
/* 67908*/      OPC_RecordChild1, // #2 = $Rn
/* 67909*/      OPC_RecordChild2, // #3 = $Rd
/* 67910*/      OPC_CheckType, MVT::f32,
/* 67912*/      OPC_EmitInteger, MVT::i32, 0, 
/* 67915*/      OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 67918*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 67927*/      OPC_EmitConvertToTarget, 1,
/* 67929*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                    MVT::f32, 4/*#Ops*/, 3, 2, 6, 7, 
                // Src: (fma:{ *:[f32] } (vector_extract:{ *:[f32] } (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rm), 0:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rd) - Complexity = 24
                // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 67939*/    /*Scope*/ 16|128,1/*144*/, /*->68085*/
/* 67941*/      OPC_RecordChild0, // #0 = $Rn
/* 67942*/      OPC_MoveChild1,
/* 67943*/      OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->68010
/* 67947*/        OPC_MoveChild0,
/* 67948*/        OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 67951*/        OPC_MoveChild0,
/* 67952*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 67955*/        OPC_MoveParent,
/* 67956*/        OPC_MoveChild1,
/* 67957*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 67960*/        OPC_RecordChild0, // #1 = $Rm
/* 67961*/        OPC_MoveParent,
/* 67962*/        OPC_CheckChild2Integer, 0, 
/* 67964*/        OPC_CheckChild2Type, MVT::i32,
/* 67966*/        OPC_CheckType, MVT::v4f32,
/* 67968*/        OPC_MoveParent,
/* 67969*/        OPC_RecordChild1, // #2 = $idx
/* 67970*/        OPC_MoveChild1,
/* 67971*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67974*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 67976*/        OPC_CheckType, MVT::i64,
/* 67978*/        OPC_MoveParent,
/* 67979*/        OPC_MoveParent,
/* 67980*/        OPC_RecordChild2, // #3 = $Rd
/* 67981*/        OPC_CheckType, MVT::f32,
/* 67983*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67986*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 67989*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 67998*/        OPC_EmitConvertToTarget, 2,
/* 68000*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                      MVT::f32, 4/*#Ops*/, 3, 0, 6, 7, 
                  // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, (vector_extract:{ *:[f32] } (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rm), 0:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rd) - Complexity = 24
                  // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68010*/      /*SwitchOpcode*/ 71, TARGET_VAL(ISD::FNEG),// ->68084
/* 68013*/        OPC_MoveChild0,
/* 68014*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68017*/        OPC_RecordChild0, // #1 = $Rm
/* 68018*/        OPC_Scope, 31, /*->68051*/ // 2 children in Scope
/* 68020*/          OPC_CheckChild0Type, MVT::v4f32,
/* 68022*/          OPC_RecordChild1, // #2 = $idx
/* 68023*/          OPC_MoveChild1,
/* 68024*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68027*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68029*/          OPC_CheckType, MVT::i64,
/* 68031*/          OPC_MoveParent,
/* 68032*/          OPC_MoveParent,
/* 68033*/          OPC_MoveParent,
/* 68034*/          OPC_RecordChild2, // #3 = $Rd
/* 68035*/          OPC_CheckType, MVT::f32,
/* 68037*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68039*/          OPC_EmitConvertToTarget, 2,
/* 68041*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                        MVT::f32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, (fneg:{ *:[f32] } (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68051*/        /*Scope*/ 31, /*->68083*/
/* 68052*/          OPC_CheckChild0Type, MVT::v2f64,
/* 68054*/          OPC_RecordChild1, // #2 = $idx
/* 68055*/          OPC_MoveChild1,
/* 68056*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68059*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 68061*/          OPC_CheckType, MVT::i64,
/* 68063*/          OPC_MoveParent,
/* 68064*/          OPC_MoveParent,
/* 68065*/          OPC_MoveParent,
/* 68066*/          OPC_RecordChild2, // #3 = $Rd
/* 68067*/          OPC_CheckType, MVT::f64,
/* 68069*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68071*/          OPC_EmitConvertToTarget, 2,
/* 68073*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i64_indexed), 0,
                        MVT::f64, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, (fneg:{ *:[f64] } (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)), FPR64:{ *:[f64] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv1i64_indexed:{ *:[f64] } FPR64:{ *:[f64] }:$Rd, FPR64:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)
/* 68083*/        0, /*End of Scope*/
/* 68084*/      0, // EndSwitchOpcode
/* 68085*/    /*Scope*/ 51|128,2/*307*/, /*->68394*/
/* 68087*/      OPC_MoveChild0,
/* 68088*/      OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->68241
/* 68093*/        OPC_Scope, 77, /*->68172*/ // 2 children in Scope
/* 68095*/          OPC_RecordChild0, // #0 = $Rm
/* 68096*/          OPC_Scope, 36, /*->68134*/ // 2 children in Scope
/* 68098*/            OPC_CheckChild0Type, MVT::v4f32,
/* 68100*/            OPC_RecordChild1, // #1 = $idx
/* 68101*/            OPC_MoveChild1,
/* 68102*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68105*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68107*/            OPC_CheckType, MVT::i64,
/* 68109*/            OPC_MoveParent,
/* 68110*/            OPC_MoveParent,
/* 68111*/            OPC_MoveChild1,
/* 68112*/            OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68115*/            OPC_RecordChild0, // #2 = $Rn
/* 68116*/            OPC_MoveParent,
/* 68117*/            OPC_RecordChild2, // #3 = $Rd
/* 68118*/            OPC_CheckType, MVT::f32,
/* 68120*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68122*/            OPC_EmitConvertToTarget, 1,
/* 68124*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                          MVT::f32, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[f32] } (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rn), FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68134*/          /*Scope*/ 36, /*->68171*/
/* 68135*/            OPC_CheckChild0Type, MVT::v2f64,
/* 68137*/            OPC_RecordChild1, // #1 = $idx
/* 68138*/            OPC_MoveChild1,
/* 68139*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68142*/            OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 68144*/            OPC_CheckType, MVT::i64,
/* 68146*/            OPC_MoveParent,
/* 68147*/            OPC_MoveParent,
/* 68148*/            OPC_MoveChild1,
/* 68149*/            OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68152*/            OPC_RecordChild0, // #2 = $Rn
/* 68153*/            OPC_MoveParent,
/* 68154*/            OPC_RecordChild2, // #3 = $Rd
/* 68155*/            OPC_CheckType, MVT::f64,
/* 68157*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68159*/            OPC_EmitConvertToTarget, 1,
/* 68161*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i64_indexed), 0,
                          MVT::f64, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[f64] } (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Rn), FPR64:{ *:[f64] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv1i64_indexed:{ *:[f64] } FPR64:{ *:[f64] }:$Rd, FPR64:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)
/* 68171*/          0, /*End of Scope*/
/* 68172*/        /*Scope*/ 67, /*->68240*/
/* 68173*/          OPC_MoveChild0,
/* 68174*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68177*/          OPC_RecordChild0, // #0 = $Rm
/* 68178*/          OPC_SwitchType /*2 cases */, 28, MVT::v4f32,// ->68209
/* 68181*/            OPC_MoveParent,
/* 68182*/            OPC_RecordChild1, // #1 = $idx
/* 68183*/            OPC_MoveChild1,
/* 68184*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68187*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68189*/            OPC_CheckType, MVT::i64,
/* 68191*/            OPC_MoveParent,
/* 68192*/            OPC_MoveParent,
/* 68193*/            OPC_RecordChild1, // #2 = $Rn
/* 68194*/            OPC_RecordChild2, // #3 = $Rd
/* 68195*/            OPC_CheckType, MVT::f32,
/* 68197*/            OPC_EmitConvertToTarget, 1,
/* 68199*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                          MVT::f32, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[f32] } (vector_extract:{ *:[f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68209*/          /*SwitchType*/ 28, MVT::v2f64,// ->68239
/* 68211*/            OPC_MoveParent,
/* 68212*/            OPC_RecordChild1, // #1 = $idx
/* 68213*/            OPC_MoveChild1,
/* 68214*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68217*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68219*/            OPC_CheckType, MVT::i64,
/* 68221*/            OPC_MoveParent,
/* 68222*/            OPC_MoveParent,
/* 68223*/            OPC_RecordChild1, // #2 = $Rn
/* 68224*/            OPC_RecordChild2, // #3 = $Rd
/* 68225*/            OPC_CheckType, MVT::f64,
/* 68227*/            OPC_EmitConvertToTarget, 1,
/* 68229*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i64_indexed), 0,
                          MVT::f64, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[f64] } (vector_extract:{ *:[f64] } (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv1i64_indexed:{ *:[f64] } FPR64:{ *:[f64] }:$Rd, FPR64:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68239*/          0, // EndSwitchType
/* 68240*/        0, /*End of Scope*/
/* 68241*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::FNEG),// ->68393
/* 68245*/        OPC_Scope, 73, /*->68320*/ // 2 children in Scope
/* 68247*/          OPC_MoveChild0,
/* 68248*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68251*/          OPC_RecordChild0, // #0 = $Rm
/* 68252*/          OPC_Scope, 32, /*->68286*/ // 2 children in Scope
/* 68254*/            OPC_CheckChild0Type, MVT::v4f32,
/* 68256*/            OPC_RecordChild1, // #1 = $idx
/* 68257*/            OPC_MoveChild1,
/* 68258*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68261*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68263*/            OPC_CheckType, MVT::i64,
/* 68265*/            OPC_MoveParent,
/* 68266*/            OPC_MoveParent,
/* 68267*/            OPC_MoveParent,
/* 68268*/            OPC_RecordChild1, // #2 = $Rn
/* 68269*/            OPC_RecordChild2, // #3 = $Rd
/* 68270*/            OPC_CheckType, MVT::f32,
/* 68272*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68274*/            OPC_EmitConvertToTarget, 1,
/* 68276*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                          MVT::f32, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68286*/          /*Scope*/ 32, /*->68319*/
/* 68287*/            OPC_CheckChild0Type, MVT::v2f64,
/* 68289*/            OPC_RecordChild1, // #1 = $idx
/* 68290*/            OPC_MoveChild1,
/* 68291*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68294*/            OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 68296*/            OPC_CheckType, MVT::i64,
/* 68298*/            OPC_MoveParent,
/* 68299*/            OPC_MoveParent,
/* 68300*/            OPC_MoveParent,
/* 68301*/            OPC_RecordChild1, // #2 = $Rn
/* 68302*/            OPC_RecordChild2, // #3 = $Rd
/* 68303*/            OPC_CheckType, MVT::f64,
/* 68305*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68307*/            OPC_EmitConvertToTarget, 1,
/* 68309*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i64_indexed), 0,
                          MVT::f64, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)), FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv1i64_indexed:{ *:[f64] } FPR64:{ *:[f64] }:$Rd, FPR64:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)
/* 68319*/          0, /*End of Scope*/
/* 68320*/        /*Scope*/ 71, /*->68392*/
/* 68321*/          OPC_RecordChild0, // #0 = $Rn
/* 68322*/          OPC_MoveParent,
/* 68323*/          OPC_MoveChild1,
/* 68324*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68327*/          OPC_RecordChild0, // #1 = $Rm
/* 68328*/          OPC_Scope, 30, /*->68360*/ // 2 children in Scope
/* 68330*/            OPC_CheckChild0Type, MVT::v4f32,
/* 68332*/            OPC_RecordChild1, // #2 = $idx
/* 68333*/            OPC_MoveChild1,
/* 68334*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68337*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68339*/            OPC_CheckType, MVT::i64,
/* 68341*/            OPC_MoveParent,
/* 68342*/            OPC_MoveParent,
/* 68343*/            OPC_RecordChild2, // #3 = $Rd
/* 68344*/            OPC_CheckType, MVT::f32,
/* 68346*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68348*/            OPC_EmitConvertToTarget, 2,
/* 68350*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                          MVT::f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rn), (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68360*/          /*Scope*/ 30, /*->68391*/
/* 68361*/            OPC_CheckChild0Type, MVT::v2f64,
/* 68363*/            OPC_RecordChild1, // #2 = $idx
/* 68364*/            OPC_MoveChild1,
/* 68365*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68368*/            OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 68370*/            OPC_CheckType, MVT::i64,
/* 68372*/            OPC_MoveParent,
/* 68373*/            OPC_MoveParent,
/* 68374*/            OPC_RecordChild2, // #3 = $Rd
/* 68375*/            OPC_CheckType, MVT::f64,
/* 68377*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68379*/            OPC_EmitConvertToTarget, 2,
/* 68381*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i64_indexed), 0,
                          MVT::f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Rn), (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), FPR64:{ *:[f64] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv1i64_indexed:{ *:[f64] } FPR64:{ *:[f64] }:$Rd, FPR64:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)
/* 68391*/          0, /*End of Scope*/
/* 68392*/        0, /*End of Scope*/
/* 68393*/      0, // EndSwitchOpcode
/* 68394*/    /*Scope*/ 126, /*->68521*/
/* 68395*/      OPC_RecordChild0, // #0 = $Rn
/* 68396*/      OPC_MoveChild1,
/* 68397*/      OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->68466
/* 68401*/        OPC_MoveChild0,
/* 68402*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68405*/        OPC_RecordChild0, // #1 = $Rm
/* 68406*/        OPC_SwitchType /*2 cases */, 27, MVT::v4f32,// ->68436
/* 68409*/          OPC_MoveParent,
/* 68410*/          OPC_RecordChild1, // #2 = $idx
/* 68411*/          OPC_MoveChild1,
/* 68412*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68415*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68417*/          OPC_CheckType, MVT::i64,
/* 68419*/          OPC_MoveParent,
/* 68420*/          OPC_MoveParent,
/* 68421*/          OPC_RecordChild2, // #3 = $Rd
/* 68422*/          OPC_CheckType, MVT::f32,
/* 68424*/          OPC_EmitConvertToTarget, 2,
/* 68426*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                        MVT::f32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, (vector_extract:{ *:[f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68436*/        /*SwitchType*/ 27, MVT::v2f64,// ->68465
/* 68438*/          OPC_MoveParent,
/* 68439*/          OPC_RecordChild1, // #2 = $idx
/* 68440*/          OPC_MoveChild1,
/* 68441*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68444*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68446*/          OPC_CheckType, MVT::i64,
/* 68448*/          OPC_MoveParent,
/* 68449*/          OPC_MoveParent,
/* 68450*/          OPC_RecordChild2, // #3 = $Rd
/* 68451*/          OPC_CheckType, MVT::f64,
/* 68453*/          OPC_EmitConvertToTarget, 2,
/* 68455*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i64_indexed), 0,
                        MVT::f64, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, (vector_extract:{ *:[f64] } (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR64:{ *:[f64] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv1i64_indexed:{ *:[f64] } FPR64:{ *:[f64] }:$Rd, FPR64:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68465*/        0, // EndSwitchType
/* 68466*/      /*SwitchOpcode*/ 51, TARGET_VAL(ISD::FNEG),// ->68520
/* 68469*/        OPC_MoveChild0,
/* 68470*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68473*/        OPC_RecordChild0, // #1 = $Rm
/* 68474*/        OPC_CheckChild0Type, MVT::v2f32,
/* 68476*/        OPC_RecordChild1, // #2 = $idx
/* 68477*/        OPC_MoveChild1,
/* 68478*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68481*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68483*/        OPC_CheckType, MVT::i64,
/* 68485*/        OPC_MoveParent,
/* 68486*/        OPC_MoveParent,
/* 68487*/        OPC_MoveParent,
/* 68488*/        OPC_RecordChild2, // #3 = $Rd
/* 68489*/        OPC_CheckType, MVT::f32,
/* 68491*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68493*/        OPC_EmitInteger, MVT::i32, 0, 
/* 68496*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 68499*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 68508*/        OPC_EmitConvertToTarget, 2,
/* 68510*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                      MVT::f32, 4/*#Ops*/, 3, 0, 6, 7, 
                  // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, (fneg:{ *:[f32] } (vector_extract:{ *:[f32] } V64:{ *:[v2f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                  // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68520*/      0, // EndSwitchOpcode
/* 68521*/    /*Scope*/ 108|128,1/*236*/, /*->68759*/
/* 68523*/      OPC_MoveChild0,
/* 68524*/      OPC_SwitchOpcode /*2 cases */, 119, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->68647
/* 68528*/        OPC_RecordChild0, // #0 = $Rm
/* 68529*/        OPC_Scope, 51, /*->68582*/ // 3 children in Scope
/* 68531*/          OPC_CheckChild0Type, MVT::v2f32,
/* 68533*/          OPC_RecordChild1, // #1 = $idx
/* 68534*/          OPC_MoveChild1,
/* 68535*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68538*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68540*/          OPC_CheckType, MVT::i64,
/* 68542*/          OPC_MoveParent,
/* 68543*/          OPC_MoveParent,
/* 68544*/          OPC_MoveChild1,
/* 68545*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68548*/          OPC_RecordChild0, // #2 = $Rn
/* 68549*/          OPC_MoveParent,
/* 68550*/          OPC_RecordChild2, // #3 = $Rd
/* 68551*/          OPC_CheckType, MVT::f32,
/* 68553*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68555*/          OPC_EmitInteger, MVT::i32, 0, 
/* 68558*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 68561*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 68570*/          OPC_EmitConvertToTarget, 1,
/* 68572*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                        MVT::f32, 4/*#Ops*/, 3, 2, 6, 7, 
                    // Src: (fma:{ *:[f32] } (vector_extract:{ *:[f32] } V64:{ *:[v2f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rn), FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68582*/        /*Scope*/ 31, /*->68614*/
/* 68583*/          OPC_CheckChild0Type, MVT::v4f32,
/* 68585*/          OPC_RecordChild1, // #1 = $idx
/* 68586*/          OPC_MoveChild1,
/* 68587*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68590*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68592*/          OPC_CheckType, MVT::i64,
/* 68594*/          OPC_MoveParent,
/* 68595*/          OPC_MoveParent,
/* 68596*/          OPC_RecordChild1, // #2 = $Rn
/* 68597*/          OPC_RecordChild2, // #3 = $Rd
/* 68598*/          OPC_CheckType, MVT::f32,
/* 68600*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68602*/          OPC_EmitConvertToTarget, 1,
/* 68604*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv1i32_indexed), 0,
                        MVT::f32, 4/*#Ops*/, 3, 2, 0, 4, 
                    // Src: (fma:{ *:[f32] } (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rd) - Complexity = 10
                    // Dst: (FMLAv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68614*/        /*Scope*/ 31, /*->68646*/
/* 68615*/          OPC_CheckChild0Type, MVT::v2f64,
/* 68617*/          OPC_RecordChild1, // #1 = $idx
/* 68618*/          OPC_MoveChild1,
/* 68619*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68622*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 68624*/          OPC_CheckType, MVT::i64,
/* 68626*/          OPC_MoveParent,
/* 68627*/          OPC_MoveParent,
/* 68628*/          OPC_RecordChild1, // #2 = $Rn
/* 68629*/          OPC_RecordChild2, // #3 = $Rd
/* 68630*/          OPC_CheckType, MVT::f64,
/* 68632*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68634*/          OPC_EmitConvertToTarget, 1,
/* 68636*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv1i64_indexed), 0,
                        MVT::f64, 4/*#Ops*/, 3, 2, 0, 4, 
                    // Src: (fma:{ *:[f64] } (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rd) - Complexity = 10
                    // Dst: (FMLAv1i64_indexed:{ *:[f64] } FPR64:{ *:[f64] }:$Rd, FPR64:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)
/* 68646*/        0, /*End of Scope*/
/* 68647*/      /*SwitchOpcode*/ 108, TARGET_VAL(ISD::FNEG),// ->68758
/* 68650*/        OPC_Scope, 52, /*->68704*/ // 2 children in Scope
/* 68652*/          OPC_MoveChild0,
/* 68653*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68656*/          OPC_RecordChild0, // #0 = $Rm
/* 68657*/          OPC_CheckChild0Type, MVT::v2f32,
/* 68659*/          OPC_RecordChild1, // #1 = $idx
/* 68660*/          OPC_MoveChild1,
/* 68661*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68664*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68666*/          OPC_CheckType, MVT::i64,
/* 68668*/          OPC_MoveParent,
/* 68669*/          OPC_MoveParent,
/* 68670*/          OPC_MoveParent,
/* 68671*/          OPC_RecordChild1, // #2 = $Rn
/* 68672*/          OPC_RecordChild2, // #3 = $Rd
/* 68673*/          OPC_CheckType, MVT::f32,
/* 68675*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68677*/          OPC_EmitInteger, MVT::i32, 0, 
/* 68680*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 68683*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 68692*/          OPC_EmitConvertToTarget, 1,
/* 68694*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                        MVT::f32, 4/*#Ops*/, 3, 2, 6, 7, 
                    // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } (vector_extract:{ *:[f32] } V64:{ *:[v2f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68704*/        /*Scope*/ 52, /*->68757*/
/* 68705*/          OPC_RecordChild0, // #0 = $Rn
/* 68706*/          OPC_MoveParent,
/* 68707*/          OPC_MoveChild1,
/* 68708*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68711*/          OPC_RecordChild0, // #1 = $Rm
/* 68712*/          OPC_CheckChild0Type, MVT::v2f32,
/* 68714*/          OPC_RecordChild1, // #2 = $idx
/* 68715*/          OPC_MoveChild1,
/* 68716*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68719*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68721*/          OPC_CheckType, MVT::i64,
/* 68723*/          OPC_MoveParent,
/* 68724*/          OPC_MoveParent,
/* 68725*/          OPC_RecordChild2, // #3 = $Rd
/* 68726*/          OPC_CheckType, MVT::f32,
/* 68728*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68730*/          OPC_EmitInteger, MVT::i32, 0, 
/* 68733*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 68736*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 68745*/          OPC_EmitConvertToTarget, 2,
/* 68747*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv1i32_indexed), 0,
                        MVT::f32, 4/*#Ops*/, 3, 0, 6, 7, 
                    // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rn), (vector_extract:{ *:[f32] } V64:{ *:[v2f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68757*/        0, /*End of Scope*/
/* 68758*/      0, // EndSwitchOpcode
/* 68759*/    /*Scope*/ 70, /*->68830*/
/* 68760*/      OPC_RecordChild0, // #0 = $Rn
/* 68761*/      OPC_MoveChild1,
/* 68762*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68765*/      OPC_RecordChild0, // #1 = $Rm
/* 68766*/      OPC_Scope, 30, /*->68798*/ // 2 children in Scope
/* 68768*/        OPC_CheckChild0Type, MVT::v4f32,
/* 68770*/        OPC_RecordChild1, // #2 = $idx
/* 68771*/        OPC_MoveChild1,
/* 68772*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68775*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68777*/        OPC_CheckType, MVT::i64,
/* 68779*/        OPC_MoveParent,
/* 68780*/        OPC_MoveParent,
/* 68781*/        OPC_RecordChild2, // #3 = $Rd
/* 68782*/        OPC_CheckType, MVT::f32,
/* 68784*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68786*/        OPC_EmitConvertToTarget, 2,
/* 68788*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv1i32_indexed), 0,
                      MVT::f32, 4/*#Ops*/, 3, 0, 1, 4, 
                  // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rd) - Complexity = 10
                  // Dst: (FMLAv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68798*/      /*Scope*/ 30, /*->68829*/
/* 68799*/        OPC_CheckChild0Type, MVT::v2f64,
/* 68801*/        OPC_RecordChild1, // #2 = $idx
/* 68802*/        OPC_MoveChild1,
/* 68803*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68806*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 68808*/        OPC_CheckType, MVT::i64,
/* 68810*/        OPC_MoveParent,
/* 68811*/        OPC_MoveParent,
/* 68812*/        OPC_RecordChild2, // #3 = $Rd
/* 68813*/        OPC_CheckType, MVT::f64,
/* 68815*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68817*/        OPC_EmitConvertToTarget, 2,
/* 68819*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv1i64_indexed), 0,
                      MVT::f64, 4/*#Ops*/, 3, 0, 1, 4, 
                  // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), FPR64:{ *:[f64] }:$Rd) - Complexity = 10
                  // Dst: (FMLAv1i64_indexed:{ *:[f64] } FPR64:{ *:[f64] }:$Rd, FPR64:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)
/* 68829*/      0, /*End of Scope*/
/* 68830*/    /*Scope*/ 51, /*->68882*/
/* 68831*/      OPC_MoveChild0,
/* 68832*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68835*/      OPC_RecordChild0, // #0 = $Rm
/* 68836*/      OPC_CheckChild0Type, MVT::v2f32,
/* 68838*/      OPC_RecordChild1, // #1 = $idx
/* 68839*/      OPC_MoveChild1,
/* 68840*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68843*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68845*/      OPC_CheckType, MVT::i64,
/* 68847*/      OPC_MoveParent,
/* 68848*/      OPC_MoveParent,
/* 68849*/      OPC_RecordChild1, // #2 = $Rn
/* 68850*/      OPC_RecordChild2, // #3 = $Rd
/* 68851*/      OPC_CheckType, MVT::f32,
/* 68853*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68855*/      OPC_EmitInteger, MVT::i32, 0, 
/* 68858*/      OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 68861*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 68870*/      OPC_EmitConvertToTarget, 1,
/* 68872*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv1i32_indexed), 0,
                    MVT::f32, 4/*#Ops*/, 3, 2, 6, 7, 
                // Src: (fma:{ *:[f32] } (vector_extract:{ *:[f32] } V64:{ *:[v2f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rd) - Complexity = 10
                // Dst: (FMLAv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68882*/    /*Scope*/ 51, /*->68934*/
/* 68883*/      OPC_RecordChild0, // #0 = $Rn
/* 68884*/      OPC_MoveChild1,
/* 68885*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 68888*/      OPC_RecordChild0, // #1 = $Rm
/* 68889*/      OPC_CheckChild0Type, MVT::v2f32,
/* 68891*/      OPC_RecordChild1, // #2 = $idx
/* 68892*/      OPC_MoveChild1,
/* 68893*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68896*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 68898*/      OPC_CheckType, MVT::i64,
/* 68900*/      OPC_MoveParent,
/* 68901*/      OPC_MoveParent,
/* 68902*/      OPC_RecordChild2, // #3 = $Rd
/* 68903*/      OPC_CheckType, MVT::f32,
/* 68905*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 68907*/      OPC_EmitInteger, MVT::i32, 0, 
/* 68910*/      OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 68913*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 68922*/      OPC_EmitConvertToTarget, 2,
/* 68924*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv1i32_indexed), 0,
                    MVT::f32, 4/*#Ops*/, 3, 0, 6, 7, 
                // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, (vector_extract:{ *:[f32] } V64:{ *:[v2f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32:{ *:[f32] }:$Rd) - Complexity = 10
                // Dst: (FMLAv1i32_indexed:{ *:[f32] } FPR32:{ *:[f32] }:$Rd, FPR32:{ *:[f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 68934*/    /*Scope*/ 37, /*->68972*/
/* 68935*/      OPC_MoveChild0,
/* 68936*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68939*/      OPC_RecordChild0, // #0 = $Rn
/* 68940*/      OPC_MoveParent,
/* 68941*/      OPC_RecordChild1, // #1 = $Rm
/* 68942*/      OPC_MoveChild2,
/* 68943*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68946*/      OPC_RecordChild0, // #2 = $Ra
/* 68947*/      OPC_MoveParent,
/* 68948*/      OPC_SwitchType /*2 cases */, 9, MVT::f32,// ->68960
/* 68951*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMADDSrrr), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rn), FPR32:{ *:[f32] }:$Rm, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Ra)) - Complexity = 9
                  // Dst: (FNMADDSrrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra)
/* 68960*/      /*SwitchType*/ 9, MVT::f64,// ->68971
/* 68962*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMADDDrrr), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Rn), FPR64:{ *:[f64] }:$Rm, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Ra)) - Complexity = 9
                  // Dst: (FNMADDDrrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra)
/* 68971*/      0, // EndSwitchType
/* 68972*/    /*Scope*/ 7|128,1/*135*/, /*->69109*/
/* 68974*/      OPC_RecordChild0, // #0 = $Rn
/* 68975*/      OPC_Scope, 82, /*->69059*/ // 2 children in Scope
/* 68977*/        OPC_MoveChild1,
/* 68978*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68981*/        OPC_RecordChild0, // #1 = $Rm
/* 68982*/        OPC_MoveParent,
/* 68983*/        OPC_Scope, 30, /*->69015*/ // 2 children in Scope
/* 68985*/          OPC_MoveChild2,
/* 68986*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 68989*/          OPC_RecordChild0, // #2 = $Ra
/* 68990*/          OPC_MoveParent,
/* 68991*/          OPC_SwitchType /*2 cases */, 9, MVT::f32,// ->69003
/* 68994*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMADDSrrr), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rm), (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Ra)) - Complexity = 9
                      // Dst: (FNMADDSrrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra)
/* 69003*/          /*SwitchType*/ 9, MVT::f64,// ->69014
/* 69005*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMADDDrrr), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Rm), (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Ra)) - Complexity = 9
                      // Dst: (FNMADDDrrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra)
/* 69014*/          0, // EndSwitchType
/* 69015*/        /*Scope*/ 42, /*->69058*/
/* 69016*/          OPC_RecordChild2, // #2 = $Ra
/* 69017*/          OPC_SwitchType /*3 cases */, 11, MVT::f16,// ->69031
/* 69020*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 69022*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMSUBHrrr), 0,
                          MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, (fneg:{ *:[f16] } FPR16:{ *:[f16] }:$Rm), FPR16:{ *:[f16] }:$Ra) - Complexity = 6
                      // Dst: (FMSUBHrrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, FPR16:{ *:[f16] }:$Ra)
/* 69031*/          /*SwitchType*/ 11, MVT::f32,// ->69044
/* 69033*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 69035*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMSUBSrrr), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rm), FPR32:{ *:[f32] }:$Ra) - Complexity = 6
                      // Dst: (FMSUBSrrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra)
/* 69044*/          /*SwitchType*/ 11, MVT::f64,// ->69057
/* 69046*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 69048*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMSUBDrrr), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Rm), FPR64:{ *:[f64] }:$Ra) - Complexity = 6
                      // Dst: (FMSUBDrrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra)
/* 69057*/          0, // EndSwitchType
/* 69058*/        0, /*End of Scope*/
/* 69059*/      /*Scope*/ 48, /*->69108*/
/* 69060*/        OPC_RecordChild1, // #1 = $Rm
/* 69061*/        OPC_MoveChild2,
/* 69062*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69065*/        OPC_RecordChild0, // #2 = $Ra
/* 69066*/        OPC_MoveParent,
/* 69067*/        OPC_SwitchType /*3 cases */, 11, MVT::f16,// ->69081
/* 69070*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 69072*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMSUBHrrr), 0,
                        MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (fma:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, (fneg:{ *:[f16] } FPR16:{ *:[f16] }:$Ra)) - Complexity = 6
                    // Dst: (FNMSUBHrrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, FPR16:{ *:[f16] }:$Ra)
/* 69081*/        /*SwitchType*/ 11, MVT::f32,// ->69094
/* 69083*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 69085*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMSUBSrrr), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Ra)) - Complexity = 6
                    // Dst: (FNMSUBSrrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra)
/* 69094*/        /*SwitchType*/ 11, MVT::f64,// ->69107
/* 69096*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 69098*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMSUBDrrr), 0,
                        MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Ra)) - Complexity = 6
                    // Dst: (FNMSUBDrrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra)
/* 69107*/        0, // EndSwitchType
/* 69108*/      0, /*End of Scope*/
/* 69109*/    /*Scope*/ 32, /*->69142*/
/* 69110*/      OPC_MoveChild0,
/* 69111*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69114*/      OPC_RecordChild0, // #0 = $Rn
/* 69115*/      OPC_MoveParent,
/* 69116*/      OPC_RecordChild1, // #1 = $Rm
/* 69117*/      OPC_RecordChild2, // #2 = $Ra
/* 69118*/      OPC_SwitchType /*2 cases */, 9, MVT::f32,// ->69130
/* 69121*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMSUBSrrr), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rn), FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra) - Complexity = 6
                  // Dst: (FMSUBSrrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra)
/* 69130*/      /*SwitchType*/ 9, MVT::f64,// ->69141
/* 69132*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMSUBDrrr), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Rn), FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra) - Complexity = 6
                  // Dst: (FMSUBDrrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra)
/* 69141*/      0, // EndSwitchType
/* 69142*/    /*Scope*/ 44, /*->69187*/
/* 69143*/      OPC_RecordChild0, // #0 = $Rn
/* 69144*/      OPC_RecordChild1, // #1 = $Rm
/* 69145*/      OPC_RecordChild2, // #2 = $Ra
/* 69146*/      OPC_SwitchType /*3 cases */, 11, MVT::f16,// ->69160
/* 69149*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 69151*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMADDHrrr), 0,
                      MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fma:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, FPR16:{ *:[f16] }:$Ra) - Complexity = 3
                  // Dst: (FMADDHrrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, FPR16:{ *:[f16] }:$Ra)
/* 69160*/      /*SwitchType*/ 11, MVT::f32,// ->69173
/* 69162*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 69164*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMADDSrrr), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra) - Complexity = 3
                  // Dst: (FMADDSrrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra)
/* 69173*/      /*SwitchType*/ 11, MVT::f64,// ->69186
/* 69175*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 69177*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMADDDrrr), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra) - Complexity = 3
                  // Dst: (FMADDDrrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra)
/* 69186*/      0, // EndSwitchType
/* 69187*/    /*Scope*/ 99, /*->69287*/
/* 69188*/      OPC_MoveChild0,
/* 69189*/      OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUPLANE32),
/* 69192*/      OPC_MoveChild0,
/* 69193*/      OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 69196*/      OPC_MoveChild0,
/* 69197*/      OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 69200*/      OPC_MoveParent,
/* 69201*/      OPC_MoveChild1,
/* 69202*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69205*/      OPC_RecordChild0, // #0 = $Rm
/* 69206*/      OPC_MoveParent,
/* 69207*/      OPC_CheckChild2Integer, 0, 
/* 69209*/      OPC_CheckChild2Type, MVT::i32,
/* 69211*/      OPC_CheckType, MVT::v4f32,
/* 69213*/      OPC_MoveParent,
/* 69214*/      OPC_RecordChild1, // #1 = $idx
/* 69215*/      OPC_MoveChild1,
/* 69216*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69219*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69221*/      OPC_CheckType, MVT::i64,
/* 69223*/      OPC_MoveParent,
/* 69224*/      OPC_MoveParent,
/* 69225*/      OPC_RecordChild1, // #2 = $Rn
/* 69226*/      OPC_RecordChild2, // #3 = $Rd
/* 69227*/      OPC_SwitchType /*2 cases */, 27, MVT::v2f32,// ->69257
/* 69230*/        OPC_EmitInteger, MVT::i32, 0, 
/* 69233*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 69236*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 69245*/        OPC_EmitConvertToTarget, 1,
/* 69247*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                      MVT::v2f32, 4/*#Ops*/, 3, 2, 6, 7, 
                  // Src: (fma:{ *:[v2f32] } (AArch64duplane32:{ *:[v2f32] } (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rm), 0:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rd) - Complexity = 24
                  // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69257*/      /*SwitchType*/ 27, MVT::v4f32,// ->69286
/* 69259*/        OPC_EmitInteger, MVT::i32, 0, 
/* 69262*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 69265*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 69274*/        OPC_EmitConvertToTarget, 1,
/* 69276*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                      MVT::v4f32, 4/*#Ops*/, 3, 2, 6, 7, 
                  // Src: (fma:{ *:[v4f32] } (AArch64duplane32:{ *:[v4f32] } (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rm), 0:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rd) - Complexity = 24
                  // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69286*/      0, // EndSwitchType
/* 69287*/    /*Scope*/ 67|128,1/*195*/, /*->69484*/
/* 69289*/      OPC_RecordChild0, // #0 = $Rn
/* 69290*/      OPC_MoveChild1,
/* 69291*/      OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(AArch64ISD::DUPLANE32),// ->69389
/* 69295*/        OPC_MoveChild0,
/* 69296*/        OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 69299*/        OPC_MoveChild0,
/* 69300*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 69303*/        OPC_MoveParent,
/* 69304*/        OPC_MoveChild1,
/* 69305*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69308*/        OPC_RecordChild0, // #1 = $Rm
/* 69309*/        OPC_MoveParent,
/* 69310*/        OPC_CheckChild2Integer, 0, 
/* 69312*/        OPC_CheckChild2Type, MVT::i32,
/* 69314*/        OPC_CheckType, MVT::v4f32,
/* 69316*/        OPC_MoveParent,
/* 69317*/        OPC_RecordChild1, // #2 = $idx
/* 69318*/        OPC_MoveChild1,
/* 69319*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69322*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69324*/        OPC_CheckType, MVT::i64,
/* 69326*/        OPC_MoveParent,
/* 69327*/        OPC_MoveParent,
/* 69328*/        OPC_RecordChild2, // #3 = $Rd
/* 69329*/        OPC_SwitchType /*2 cases */, 27, MVT::v2f32,// ->69359
/* 69332*/          OPC_EmitInteger, MVT::i32, 0, 
/* 69335*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 69338*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 69347*/          OPC_EmitConvertToTarget, 2,
/* 69349*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                        MVT::v2f32, 4/*#Ops*/, 3, 0, 6, 7, 
                    // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (AArch64duplane32:{ *:[v2f32] } (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rm), 0:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rd) - Complexity = 24
                    // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69359*/        /*SwitchType*/ 27, MVT::v4f32,// ->69388
/* 69361*/          OPC_EmitInteger, MVT::i32, 0, 
/* 69364*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 69367*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 69376*/          OPC_EmitConvertToTarget, 2,
/* 69378*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                        MVT::v4f32, 4/*#Ops*/, 3, 0, 6, 7, 
                    // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (AArch64duplane32:{ *:[v4f32] } (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rm), 0:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rd) - Complexity = 24
                    // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2f32] }:$Rm, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69388*/        0, // EndSwitchType
/* 69389*/      /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FNEG),// ->69483
/* 69392*/        OPC_MoveChild0,
/* 69393*/        OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(AArch64ISD::DUPLANE32),// ->69447
/* 69397*/          OPC_RecordChild0, // #1 = $Rm
/* 69398*/          OPC_CheckChild0Type, MVT::v4f32,
/* 69400*/          OPC_RecordChild1, // #2 = $idx
/* 69401*/          OPC_MoveChild1,
/* 69402*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69405*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69407*/          OPC_CheckType, MVT::i64,
/* 69409*/          OPC_MoveParent,
/* 69410*/          OPC_MoveParent,
/* 69411*/          OPC_MoveParent,
/* 69412*/          OPC_RecordChild2, // #3 = $Rd
/* 69413*/          OPC_SwitchType /*2 cases */, 14, MVT::v2f32,// ->69430
/* 69416*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69418*/            OPC_EmitConvertToTarget, 2,
/* 69420*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                          MVT::v2f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (fneg:{ *:[v2f32] } (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), V64:{ *:[v2f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69430*/          /*SwitchType*/ 14, MVT::v4f32,// ->69446
/* 69432*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69434*/            OPC_EmitConvertToTarget, 2,
/* 69436*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (fneg:{ *:[v4f32] } (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), V128:{ *:[v4f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69446*/          0, // EndSwitchType
/* 69447*/        /*SwitchOpcode*/ 32, TARGET_VAL(AArch64ISD::DUPLANE64),// ->69482
/* 69450*/          OPC_RecordChild0, // #1 = $Rm
/* 69451*/          OPC_CheckChild0Type, MVT::v2f64,
/* 69453*/          OPC_RecordChild1, // #2 = $idx
/* 69454*/          OPC_MoveChild1,
/* 69455*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69458*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 69460*/          OPC_CheckType, MVT::i64,
/* 69462*/          OPC_MoveParent,
/* 69463*/          OPC_MoveParent,
/* 69464*/          OPC_MoveParent,
/* 69465*/          OPC_RecordChild2, // #3 = $Rd
/* 69466*/          OPC_CheckType, MVT::v2f64,
/* 69468*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69470*/          OPC_EmitConvertToTarget, 2,
/* 69472*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                        MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (fneg:{ *:[v2f64] } (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)), V128:{ *:[v2f64] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69482*/        0, // EndSwitchOpcode
/* 69483*/      0, // EndSwitchOpcode
/* 69484*/    /*Scope*/ 3|128,3/*387*/, /*->69873*/
/* 69486*/      OPC_MoveChild0,
/* 69487*/      OPC_SwitchOpcode /*3 cases */, 110, TARGET_VAL(AArch64ISD::DUPLANE32),// ->69601
/* 69491*/        OPC_Scope, 55, /*->69548*/ // 2 children in Scope
/* 69493*/          OPC_RecordChild0, // #0 = $Rm
/* 69494*/          OPC_CheckChild0Type, MVT::v4f32,
/* 69496*/          OPC_RecordChild1, // #1 = $idx
/* 69497*/          OPC_MoveChild1,
/* 69498*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69501*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69503*/          OPC_CheckType, MVT::i64,
/* 69505*/          OPC_MoveParent,
/* 69506*/          OPC_MoveParent,
/* 69507*/          OPC_MoveChild1,
/* 69508*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69511*/          OPC_RecordChild0, // #2 = $Rn
/* 69512*/          OPC_MoveParent,
/* 69513*/          OPC_RecordChild2, // #3 = $Rd
/* 69514*/          OPC_SwitchType /*2 cases */, 14, MVT::v2f32,// ->69531
/* 69517*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69519*/            OPC_EmitConvertToTarget, 1,
/* 69521*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                          MVT::v2f32, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[v2f32] } (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn), V64:{ *:[v2f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69531*/          /*SwitchType*/ 14, MVT::v4f32,// ->69547
/* 69533*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69535*/            OPC_EmitConvertToTarget, 1,
/* 69537*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[v4f32] } (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn), V128:{ *:[v4f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69547*/          0, // EndSwitchType
/* 69548*/        /*Scope*/ 51, /*->69600*/
/* 69549*/          OPC_MoveChild0,
/* 69550*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69553*/          OPC_RecordChild0, // #0 = $Rm
/* 69554*/          OPC_CheckType, MVT::v4f32,
/* 69556*/          OPC_MoveParent,
/* 69557*/          OPC_RecordChild1, // #1 = $idx
/* 69558*/          OPC_MoveChild1,
/* 69559*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69562*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69564*/          OPC_CheckType, MVT::i64,
/* 69566*/          OPC_MoveParent,
/* 69567*/          OPC_MoveParent,
/* 69568*/          OPC_RecordChild1, // #2 = $Rn
/* 69569*/          OPC_RecordChild2, // #3 = $Rd
/* 69570*/          OPC_SwitchType /*2 cases */, 12, MVT::v2f32,// ->69585
/* 69573*/            OPC_EmitConvertToTarget, 1,
/* 69575*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                          MVT::v2f32, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[v2f32] } (AArch64duplane32:{ *:[v2f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69585*/          /*SwitchType*/ 12, MVT::v4f32,// ->69599
/* 69587*/            OPC_EmitConvertToTarget, 1,
/* 69589*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[v4f32] } (AArch64duplane32:{ *:[v4f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69599*/          0, // EndSwitchType
/* 69600*/        0, /*End of Scope*/
/* 69601*/      /*SwitchOpcode*/ 76, TARGET_VAL(AArch64ISD::DUPLANE64),// ->69680
/* 69604*/        OPC_Scope, 37, /*->69643*/ // 2 children in Scope
/* 69606*/          OPC_RecordChild0, // #0 = $Rm
/* 69607*/          OPC_CheckChild0Type, MVT::v2f64,
/* 69609*/          OPC_RecordChild1, // #1 = $idx
/* 69610*/          OPC_MoveChild1,
/* 69611*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69614*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 69616*/          OPC_CheckType, MVT::i64,
/* 69618*/          OPC_MoveParent,
/* 69619*/          OPC_MoveParent,
/* 69620*/          OPC_MoveChild1,
/* 69621*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69624*/          OPC_RecordChild0, // #2 = $Rn
/* 69625*/          OPC_MoveParent,
/* 69626*/          OPC_RecordChild2, // #3 = $Rd
/* 69627*/          OPC_CheckType, MVT::v2f64,
/* 69629*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69631*/          OPC_EmitConvertToTarget, 1,
/* 69633*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                        MVT::v2f64, 4/*#Ops*/, 3, 2, 0, 4, 
                    // Src: (fma:{ *:[v2f64] } (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn), V128:{ *:[v2f64] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69643*/        /*Scope*/ 35, /*->69679*/
/* 69644*/          OPC_MoveChild0,
/* 69645*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69648*/          OPC_RecordChild0, // #0 = $Rm
/* 69649*/          OPC_CheckType, MVT::v2f64,
/* 69651*/          OPC_MoveParent,
/* 69652*/          OPC_RecordChild1, // #1 = $idx
/* 69653*/          OPC_MoveChild1,
/* 69654*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69657*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 69659*/          OPC_CheckType, MVT::i64,
/* 69661*/          OPC_MoveParent,
/* 69662*/          OPC_MoveParent,
/* 69663*/          OPC_RecordChild1, // #2 = $Rn
/* 69664*/          OPC_RecordChild2, // #3 = $Rd
/* 69665*/          OPC_CheckType, MVT::v2f64,
/* 69667*/          OPC_EmitConvertToTarget, 1,
/* 69669*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                        MVT::v2f64, 4/*#Ops*/, 3, 2, 0, 4, 
                    // Src: (fma:{ *:[v2f64] } (AArch64duplane64:{ *:[v2f64] } (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69679*/        0, /*End of Scope*/
/* 69680*/      /*SwitchOpcode*/ 60|128,1/*188*/, TARGET_VAL(ISD::FNEG),// ->69872
/* 69684*/        OPC_Scope, 93, /*->69779*/ // 2 children in Scope
/* 69686*/          OPC_MoveChild0,
/* 69687*/          OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(AArch64ISD::DUPLANE32),// ->69742
/* 69691*/            OPC_RecordChild0, // #0 = $Rm
/* 69692*/            OPC_CheckChild0Type, MVT::v4f32,
/* 69694*/            OPC_RecordChild1, // #1 = $idx
/* 69695*/            OPC_MoveChild1,
/* 69696*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69699*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69701*/            OPC_CheckType, MVT::i64,
/* 69703*/            OPC_MoveParent,
/* 69704*/            OPC_MoveParent,
/* 69705*/            OPC_MoveParent,
/* 69706*/            OPC_RecordChild1, // #2 = $Rn
/* 69707*/            OPC_RecordChild2, // #3 = $Rd
/* 69708*/            OPC_SwitchType /*2 cases */, 14, MVT::v2f32,// ->69725
/* 69711*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69713*/              OPC_EmitConvertToTarget, 1,
/* 69715*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                            MVT::v2f32, 4/*#Ops*/, 3, 2, 0, 4, 
                        // Src: (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rd) - Complexity = 13
                        // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69725*/            /*SwitchType*/ 14, MVT::v4f32,// ->69741
/* 69727*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69729*/              OPC_EmitConvertToTarget, 1,
/* 69731*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 2, 0, 4, 
                        // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)), V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rd) - Complexity = 13
                        // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69741*/            0, // EndSwitchType
/* 69742*/          /*SwitchOpcode*/ 33, TARGET_VAL(AArch64ISD::DUPLANE64),// ->69778
/* 69745*/            OPC_RecordChild0, // #0 = $Rm
/* 69746*/            OPC_CheckChild0Type, MVT::v2f64,
/* 69748*/            OPC_RecordChild1, // #1 = $idx
/* 69749*/            OPC_MoveChild1,
/* 69750*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69753*/            OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 69755*/            OPC_CheckType, MVT::i64,
/* 69757*/            OPC_MoveParent,
/* 69758*/            OPC_MoveParent,
/* 69759*/            OPC_MoveParent,
/* 69760*/            OPC_RecordChild1, // #2 = $Rn
/* 69761*/            OPC_RecordChild2, // #3 = $Rd
/* 69762*/            OPC_CheckType, MVT::v2f64,
/* 69764*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69766*/            OPC_EmitConvertToTarget, 1,
/* 69768*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 2, 0, 4, 
                      // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)), V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69778*/          0, // EndSwitchOpcode
/* 69779*/        /*Scope*/ 91, /*->69871*/
/* 69780*/          OPC_RecordChild0, // #0 = $Rn
/* 69781*/          OPC_MoveParent,
/* 69782*/          OPC_MoveChild1,
/* 69783*/          OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(AArch64ISD::DUPLANE32),// ->69836
/* 69787*/            OPC_RecordChild0, // #1 = $Rm
/* 69788*/            OPC_CheckChild0Type, MVT::v4f32,
/* 69790*/            OPC_RecordChild1, // #2 = $idx
/* 69791*/            OPC_MoveChild1,
/* 69792*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69795*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69797*/            OPC_CheckType, MVT::i64,
/* 69799*/            OPC_MoveParent,
/* 69800*/            OPC_MoveParent,
/* 69801*/            OPC_RecordChild2, // #3 = $Rd
/* 69802*/            OPC_SwitchType /*2 cases */, 14, MVT::v2f32,// ->69819
/* 69805*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69807*/              OPC_EmitConvertToTarget, 2,
/* 69809*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                            MVT::v2f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn), (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rd) - Complexity = 13
                        // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69819*/            /*SwitchType*/ 14, MVT::v4f32,// ->69835
/* 69821*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69823*/              OPC_EmitConvertToTarget, 2,
/* 69825*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 4, 
                        // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn), (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rd) - Complexity = 13
                        // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69835*/            0, // EndSwitchType
/* 69836*/          /*SwitchOpcode*/ 31, TARGET_VAL(AArch64ISD::DUPLANE64),// ->69870
/* 69839*/            OPC_RecordChild0, // #1 = $Rm
/* 69840*/            OPC_CheckChild0Type, MVT::v2f64,
/* 69842*/            OPC_RecordChild1, // #2 = $idx
/* 69843*/            OPC_MoveChild1,
/* 69844*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69847*/            OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 69849*/            OPC_CheckType, MVT::i64,
/* 69851*/            OPC_MoveParent,
/* 69852*/            OPC_MoveParent,
/* 69853*/            OPC_RecordChild2, // #3 = $Rd
/* 69854*/            OPC_CheckType, MVT::v2f64,
/* 69856*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69858*/            OPC_EmitConvertToTarget, 2,
/* 69860*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 4, 
                      // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn), (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), V128:{ *:[v2f64] }:$Rd) - Complexity = 13
                      // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69870*/          0, // EndSwitchOpcode
/* 69871*/        0, /*End of Scope*/
/* 69872*/      0, // EndSwitchOpcode
/* 69873*/    /*Scope*/ 94, /*->69968*/
/* 69874*/      OPC_RecordChild0, // #0 = $Rn
/* 69875*/      OPC_MoveChild1,
/* 69876*/      OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(AArch64ISD::DUPLANE32),// ->69930
/* 69880*/        OPC_MoveChild0,
/* 69881*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69884*/        OPC_RecordChild0, // #1 = $Rm
/* 69885*/        OPC_CheckType, MVT::v4f32,
/* 69887*/        OPC_MoveParent,
/* 69888*/        OPC_RecordChild1, // #2 = $idx
/* 69889*/        OPC_MoveChild1,
/* 69890*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69893*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69895*/        OPC_CheckType, MVT::i64,
/* 69897*/        OPC_MoveParent,
/* 69898*/        OPC_MoveParent,
/* 69899*/        OPC_RecordChild2, // #3 = $Rd
/* 69900*/        OPC_SwitchType /*2 cases */, 12, MVT::v2f32,// ->69915
/* 69903*/          OPC_EmitConvertToTarget, 2,
/* 69905*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                        MVT::v2f32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (AArch64duplane32:{ *:[v2f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69915*/        /*SwitchType*/ 12, MVT::v4f32,// ->69929
/* 69917*/          OPC_EmitConvertToTarget, 2,
/* 69919*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                        MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (AArch64duplane32:{ *:[v4f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rd) - Complexity = 13
                    // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69929*/        0, // EndSwitchType
/* 69930*/      /*SwitchOpcode*/ 34, TARGET_VAL(AArch64ISD::DUPLANE64),// ->69967
/* 69933*/        OPC_MoveChild0,
/* 69934*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 69937*/        OPC_RecordChild0, // #1 = $Rm
/* 69938*/        OPC_CheckType, MVT::v2f64,
/* 69940*/        OPC_MoveParent,
/* 69941*/        OPC_RecordChild1, // #2 = $idx
/* 69942*/        OPC_MoveChild1,
/* 69943*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69946*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 69948*/        OPC_CheckType, MVT::i64,
/* 69950*/        OPC_MoveParent,
/* 69951*/        OPC_MoveParent,
/* 69952*/        OPC_RecordChild2, // #3 = $Rd
/* 69953*/        OPC_CheckType, MVT::v2f64,
/* 69955*/        OPC_EmitConvertToTarget, 2,
/* 69957*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                      MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 4, 
                  // Src: (fma:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (AArch64duplane64:{ *:[v2f64] } (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm), (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), V128:{ *:[v2f64] }:$Rd) - Complexity = 13
                  // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 69967*/      0, // EndSwitchOpcode
/* 69968*/    /*Scope*/ 91, /*->70060*/
/* 69969*/      OPC_MoveChild0,
/* 69970*/      OPC_SwitchOpcode /*2 cases */, 50, TARGET_VAL(AArch64ISD::DUPLANE32),// ->70024
/* 69974*/        OPC_RecordChild0, // #0 = $Rm
/* 69975*/        OPC_CheckChild0Type, MVT::v4f32,
/* 69977*/        OPC_RecordChild1, // #1 = $idx
/* 69978*/        OPC_MoveChild1,
/* 69979*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69982*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 69984*/        OPC_CheckType, MVT::i64,
/* 69986*/        OPC_MoveParent,
/* 69987*/        OPC_MoveParent,
/* 69988*/        OPC_RecordChild1, // #2 = $Rn
/* 69989*/        OPC_RecordChild2, // #3 = $Rd
/* 69990*/        OPC_SwitchType /*2 cases */, 14, MVT::v2f32,// ->70007
/* 69993*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 69995*/          OPC_EmitConvertToTarget, 1,
/* 69997*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2i32_indexed), 0,
                        MVT::v2f32, 4/*#Ops*/, 3, 2, 0, 4, 
                    // Src: (fma:{ *:[v2f32] } (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rd) - Complexity = 10
                    // Dst: (FMLAv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 70007*/        /*SwitchType*/ 14, MVT::v4f32,// ->70023
/* 70009*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70011*/          OPC_EmitConvertToTarget, 1,
/* 70013*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv4i32_indexed), 0,
                        MVT::v4f32, 4/*#Ops*/, 3, 2, 0, 4, 
                    // Src: (fma:{ *:[v4f32] } (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rd) - Complexity = 10
                    // Dst: (FMLAv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 70023*/        0, // EndSwitchType
/* 70024*/      /*SwitchOpcode*/ 32, TARGET_VAL(AArch64ISD::DUPLANE64),// ->70059
/* 70027*/        OPC_RecordChild0, // #0 = $Rm
/* 70028*/        OPC_CheckChild0Type, MVT::v2f64,
/* 70030*/        OPC_RecordChild1, // #1 = $idx
/* 70031*/        OPC_MoveChild1,
/* 70032*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70035*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 70037*/        OPC_CheckType, MVT::i64,
/* 70039*/        OPC_MoveParent,
/* 70040*/        OPC_MoveParent,
/* 70041*/        OPC_RecordChild1, // #2 = $Rn
/* 70042*/        OPC_RecordChild2, // #3 = $Rd
/* 70043*/        OPC_CheckType, MVT::v2f64,
/* 70045*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70047*/        OPC_EmitConvertToTarget, 1,
/* 70049*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2i64_indexed), 0,
                      MVT::v2f64, 4/*#Ops*/, 3, 2, 0, 4, 
                  // Src: (fma:{ *:[v2f64] } (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rd) - Complexity = 10
                  // Dst: (FMLAv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 70059*/      0, // EndSwitchOpcode
/* 70060*/    /*Scope*/ 82|128,1/*210*/, /*->70272*/
/* 70062*/      OPC_RecordChild0, // #0 = $Rn
/* 70063*/      OPC_MoveChild1,
/* 70064*/      OPC_SwitchOpcode /*3 cases */, 49, TARGET_VAL(AArch64ISD::DUPLANE32),// ->70117
/* 70068*/        OPC_RecordChild0, // #1 = $Rm
/* 70069*/        OPC_CheckChild0Type, MVT::v4f32,
/* 70071*/        OPC_RecordChild1, // #2 = $idx
/* 70072*/        OPC_MoveChild1,
/* 70073*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70076*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 70078*/        OPC_CheckType, MVT::i64,
/* 70080*/        OPC_MoveParent,
/* 70081*/        OPC_MoveParent,
/* 70082*/        OPC_RecordChild2, // #3 = $Rd
/* 70083*/        OPC_SwitchType /*2 cases */, 14, MVT::v2f32,// ->70100
/* 70086*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70088*/          OPC_EmitConvertToTarget, 2,
/* 70090*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2i32_indexed), 0,
                        MVT::v2f32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rd) - Complexity = 10
                    // Dst: (FMLAv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 70100*/        /*SwitchType*/ 14, MVT::v4f32,// ->70116
/* 70102*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70104*/          OPC_EmitConvertToTarget, 2,
/* 70106*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv4i32_indexed), 0,
                        MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 4, 
                    // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rd) - Complexity = 10
                    // Dst: (FMLAv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 70116*/        0, // EndSwitchType
/* 70117*/      /*SwitchOpcode*/ 31, TARGET_VAL(AArch64ISD::DUPLANE64),// ->70151
/* 70120*/        OPC_RecordChild0, // #1 = $Rm
/* 70121*/        OPC_CheckChild0Type, MVT::v2f64,
/* 70123*/        OPC_RecordChild1, // #2 = $idx
/* 70124*/        OPC_MoveChild1,
/* 70125*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70128*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 70130*/        OPC_CheckType, MVT::i64,
/* 70132*/        OPC_MoveParent,
/* 70133*/        OPC_MoveParent,
/* 70134*/        OPC_RecordChild2, // #3 = $Rd
/* 70135*/        OPC_CheckType, MVT::v2f64,
/* 70137*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70139*/        OPC_EmitConvertToTarget, 2,
/* 70141*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2i64_indexed), 0,
                      MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 4, 
                  // Src: (fma:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), V128:{ *:[v2f64] }:$Rd) - Complexity = 10
                  // Dst: (FMLAv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)
/* 70151*/      /*SwitchOpcode*/ 117, TARGET_VAL(ISD::FNEG),// ->70271
/* 70154*/        OPC_MoveChild0,
/* 70155*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUP),
/* 70158*/        OPC_RecordChild0, // #1 = $Rm
/* 70159*/        OPC_Scope, 71, /*->70232*/ // 2 children in Scope
/* 70161*/          OPC_CheckChild0Type, MVT::f32,
/* 70163*/          OPC_MoveParent,
/* 70164*/          OPC_MoveParent,
/* 70165*/          OPC_RecordChild2, // #2 = $Rd
/* 70166*/          OPC_SwitchType /*2 cases */, 30, MVT::v2f32,// ->70199
/* 70169*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70171*/            OPC_EmitInteger, MVT::i32, 0, 
/* 70174*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70177*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70186*/            OPC_EmitInteger, MVT::i64, 0, 
/* 70189*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                          MVT::v2f32, 4/*#Ops*/, 2, 0, 5, 6, 
                      // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (fneg:{ *:[v2f32] } (AArch64dup:{ *:[v2f32] } FPR32Op:{ *:[f32] }:$Rm)), V64:{ *:[v2f32] }:$Rd) - Complexity = 9
                      // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70199*/          /*SwitchType*/ 30, MVT::v4f32,// ->70231
/* 70201*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70203*/            OPC_EmitInteger, MVT::i32, 0, 
/* 70206*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70209*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70218*/            OPC_EmitInteger, MVT::i64, 0, 
/* 70221*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                          MVT::v4f32, 4/*#Ops*/, 2, 0, 5, 6, 
                      // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (fneg:{ *:[v4f32] } (AArch64dup:{ *:[v4f32] } FPR32Op:{ *:[f32] }:$Rm)), V128:{ *:[v4f32] }:$Rd) - Complexity = 9
                      // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70231*/          0, // EndSwitchType
/* 70232*/        /*Scope*/ 37, /*->70270*/
/* 70233*/          OPC_CheckChild0Type, MVT::f64,
/* 70235*/          OPC_MoveParent,
/* 70236*/          OPC_MoveParent,
/* 70237*/          OPC_RecordChild2, // #2 = $Rd
/* 70238*/          OPC_CheckType, MVT::v2f64,
/* 70240*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70242*/          OPC_EmitInteger, MVT::i32, 0, 
/* 70245*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 70248*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70257*/          OPC_EmitInteger, MVT::i64, 0, 
/* 70260*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                        MVT::v2f64, 4/*#Ops*/, 2, 0, 5, 6, 
                    // Src: (fma:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (fneg:{ *:[v2f64] } (AArch64dup:{ *:[v2f64] } FPR64Op:{ *:[f64] }:$Rm)), V128:{ *:[v2f64] }:$Rd) - Complexity = 9
                    // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR64Op:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 70270*/        0, /*End of Scope*/
/* 70271*/      0, // EndSwitchOpcode
/* 70272*/    /*Scope*/ 105|128,3/*489*/, /*->70763*/
/* 70274*/      OPC_MoveChild0,
/* 70275*/      OPC_SwitchOpcode /*2 cases */, 110|128,1/*238*/, TARGET_VAL(AArch64ISD::DUP),// ->70518
/* 70280*/        OPC_Scope, 123, /*->70405*/ // 2 children in Scope
/* 70282*/          OPC_RecordChild0, // #0 = $Rm
/* 70283*/          OPC_Scope, 76, /*->70361*/ // 2 children in Scope
/* 70285*/            OPC_CheckChild0Type, MVT::f32,
/* 70287*/            OPC_MoveParent,
/* 70288*/            OPC_MoveChild1,
/* 70289*/            OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 70292*/            OPC_RecordChild0, // #1 = $Rn
/* 70293*/            OPC_MoveParent,
/* 70294*/            OPC_RecordChild2, // #2 = $Rd
/* 70295*/            OPC_SwitchType /*2 cases */, 30, MVT::v2f32,// ->70328
/* 70298*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70300*/              OPC_EmitInteger, MVT::i32, 0, 
/* 70303*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70306*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70315*/              OPC_EmitInteger, MVT::i64, 0, 
/* 70318*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                            MVT::v2f32, 4/*#Ops*/, 2, 1, 5, 6, 
                        // Src: (fma:{ *:[v2f32] } (AArch64dup:{ *:[v2f32] } FPR32Op:{ *:[f32] }:$Rm), (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn), V64:{ *:[v2f32] }:$Rd) - Complexity = 9
                        // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70328*/            /*SwitchType*/ 30, MVT::v4f32,// ->70360
/* 70330*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70332*/              OPC_EmitInteger, MVT::i32, 0, 
/* 70335*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70338*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70347*/              OPC_EmitInteger, MVT::i64, 0, 
/* 70350*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 1, 5, 6, 
                        // Src: (fma:{ *:[v4f32] } (AArch64dup:{ *:[v4f32] } FPR32Op:{ *:[f32] }:$Rm), (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn), V128:{ *:[v4f32] }:$Rd) - Complexity = 9
                        // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70360*/            0, // EndSwitchType
/* 70361*/          /*Scope*/ 42, /*->70404*/
/* 70362*/            OPC_CheckChild0Type, MVT::f64,
/* 70364*/            OPC_MoveParent,
/* 70365*/            OPC_MoveChild1,
/* 70366*/            OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 70369*/            OPC_RecordChild0, // #1 = $Rn
/* 70370*/            OPC_MoveParent,
/* 70371*/            OPC_RecordChild2, // #2 = $Rd
/* 70372*/            OPC_CheckType, MVT::v2f64,
/* 70374*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70376*/            OPC_EmitInteger, MVT::i32, 0, 
/* 70379*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 70382*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70391*/            OPC_EmitInteger, MVT::i64, 0, 
/* 70394*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 1, 5, 6, 
                      // Src: (fma:{ *:[v2f64] } (AArch64dup:{ *:[v2f64] } FPR64Op:{ *:[f64] }:$Rm), (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn), V128:{ *:[v2f64] }:$Rd) - Complexity = 9
                      // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR64Op:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 70404*/          0, /*End of Scope*/
/* 70405*/        /*Scope*/ 111, /*->70517*/
/* 70406*/          OPC_MoveChild0,
/* 70407*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 70410*/          OPC_RecordChild0, // #0 = $Rm
/* 70411*/          OPC_SwitchType /*2 cases */, 66, MVT::f32,// ->70480
/* 70414*/            OPC_MoveParent,
/* 70415*/            OPC_MoveParent,
/* 70416*/            OPC_RecordChild1, // #1 = $Rn
/* 70417*/            OPC_RecordChild2, // #2 = $Rd
/* 70418*/            OPC_SwitchType /*2 cases */, 28, MVT::v2f32,// ->70449
/* 70421*/              OPC_EmitInteger, MVT::i32, 0, 
/* 70424*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70427*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70436*/              OPC_EmitInteger, MVT::i64, 0, 
/* 70439*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                            MVT::v2f32, 4/*#Ops*/, 2, 1, 5, 6, 
                        // Src: (fma:{ *:[v2f32] } (AArch64dup:{ *:[v2f32] } (fneg:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rm)), V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rd) - Complexity = 9
                        // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70449*/            /*SwitchType*/ 28, MVT::v4f32,// ->70479
/* 70451*/              OPC_EmitInteger, MVT::i32, 0, 
/* 70454*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70457*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70466*/              OPC_EmitInteger, MVT::i64, 0, 
/* 70469*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 1, 5, 6, 
                        // Src: (fma:{ *:[v4f32] } (AArch64dup:{ *:[v4f32] } (fneg:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rm)), V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rd) - Complexity = 9
                        // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70479*/            0, // EndSwitchType
/* 70480*/          /*SwitchType*/ 34, MVT::f64,// ->70516
/* 70482*/            OPC_MoveParent,
/* 70483*/            OPC_MoveParent,
/* 70484*/            OPC_RecordChild1, // #1 = $Rn
/* 70485*/            OPC_RecordChild2, // #2 = $Rd
/* 70486*/            OPC_CheckType, MVT::v2f64,
/* 70488*/            OPC_EmitInteger, MVT::i32, 0, 
/* 70491*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 70494*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70503*/            OPC_EmitInteger, MVT::i64, 0, 
/* 70506*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 1, 5, 6, 
                      // Src: (fma:{ *:[v2f64] } (AArch64dup:{ *:[v2f64] } (fneg:{ *:[f64] } FPR64Op:{ *:[f64] }:$Rm)), V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rd) - Complexity = 9
                      // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR64Op:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 70516*/          0, // EndSwitchType
/* 70517*/        0, /*End of Scope*/
/* 70518*/      /*SwitchOpcode*/ 112|128,1/*240*/, TARGET_VAL(ISD::FNEG),// ->70762
/* 70522*/        OPC_Scope, 119, /*->70643*/ // 2 children in Scope
/* 70524*/          OPC_MoveChild0,
/* 70525*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUP),
/* 70528*/          OPC_RecordChild0, // #0 = $Rm
/* 70529*/          OPC_Scope, 72, /*->70603*/ // 2 children in Scope
/* 70531*/            OPC_CheckChild0Type, MVT::f32,
/* 70533*/            OPC_MoveParent,
/* 70534*/            OPC_MoveParent,
/* 70535*/            OPC_RecordChild1, // #1 = $Rn
/* 70536*/            OPC_RecordChild2, // #2 = $Rd
/* 70537*/            OPC_SwitchType /*2 cases */, 30, MVT::v2f32,// ->70570
/* 70540*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70542*/              OPC_EmitInteger, MVT::i32, 0, 
/* 70545*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70548*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70557*/              OPC_EmitInteger, MVT::i64, 0, 
/* 70560*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                            MVT::v2f32, 4/*#Ops*/, 2, 1, 5, 6, 
                        // Src: (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } (AArch64dup:{ *:[v2f32] } FPR32Op:{ *:[f32] }:$Rm)), V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rd) - Complexity = 9
                        // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70570*/            /*SwitchType*/ 30, MVT::v4f32,// ->70602
/* 70572*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70574*/              OPC_EmitInteger, MVT::i32, 0, 
/* 70577*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70580*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70589*/              OPC_EmitInteger, MVT::i64, 0, 
/* 70592*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 1, 5, 6, 
                        // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } (AArch64dup:{ *:[v4f32] } FPR32Op:{ *:[f32] }:$Rm)), V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rd) - Complexity = 9
                        // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70602*/            0, // EndSwitchType
/* 70603*/          /*Scope*/ 38, /*->70642*/
/* 70604*/            OPC_CheckChild0Type, MVT::f64,
/* 70606*/            OPC_MoveParent,
/* 70607*/            OPC_MoveParent,
/* 70608*/            OPC_RecordChild1, // #1 = $Rn
/* 70609*/            OPC_RecordChild2, // #2 = $Rd
/* 70610*/            OPC_CheckType, MVT::v2f64,
/* 70612*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70614*/            OPC_EmitInteger, MVT::i32, 0, 
/* 70617*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 70620*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 70629*/            OPC_EmitInteger, MVT::i64, 0, 
/* 70632*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 1, 5, 6, 
                      // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } (AArch64dup:{ *:[v2f64] } FPR64Op:{ *:[f64] }:$Rm)), V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rd) - Complexity = 9
                      // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR64Op:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 70642*/          0, /*End of Scope*/
/* 70643*/        /*Scope*/ 117, /*->70761*/
/* 70644*/          OPC_RecordChild0, // #0 = $Rn
/* 70645*/          OPC_MoveParent,
/* 70646*/          OPC_MoveChild1,
/* 70647*/          OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUP),
/* 70650*/          OPC_RecordChild0, // #1 = $Rm
/* 70651*/          OPC_Scope, 70, /*->70723*/ // 2 children in Scope
/* 70653*/            OPC_CheckChild0Type, MVT::f32,
/* 70655*/            OPC_MoveParent,
/* 70656*/            OPC_RecordChild2, // #2 = $Rd
/* 70657*/            OPC_SwitchType /*2 cases */, 30, MVT::v2f32,// ->70690
/* 70660*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70662*/              OPC_EmitInteger, MVT::i32, 0, 
/* 70665*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70668*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70677*/              OPC_EmitInteger, MVT::i64, 0, 
/* 70680*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                            MVT::v2f32, 4/*#Ops*/, 2, 0, 5, 6, 
                        // Src: (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn), (AArch64dup:{ *:[v2f32] } FPR32Op:{ *:[f32] }:$Rm), V64:{ *:[v2f32] }:$Rd) - Complexity = 9
                        // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70690*/            /*SwitchType*/ 30, MVT::v4f32,// ->70722
/* 70692*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70694*/              OPC_EmitInteger, MVT::i32, 0, 
/* 70697*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70700*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70709*/              OPC_EmitInteger, MVT::i64, 0, 
/* 70712*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                            MVT::v4f32, 4/*#Ops*/, 2, 0, 5, 6, 
                        // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn), (AArch64dup:{ *:[v4f32] } FPR32Op:{ *:[f32] }:$Rm), V128:{ *:[v4f32] }:$Rd) - Complexity = 9
                        // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70722*/            0, // EndSwitchType
/* 70723*/          /*Scope*/ 36, /*->70760*/
/* 70724*/            OPC_CheckChild0Type, MVT::f64,
/* 70726*/            OPC_MoveParent,
/* 70727*/            OPC_RecordChild2, // #2 = $Rd
/* 70728*/            OPC_CheckType, MVT::v2f64,
/* 70730*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70732*/            OPC_EmitInteger, MVT::i32, 0, 
/* 70735*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 70738*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70747*/            OPC_EmitInteger, MVT::i64, 0, 
/* 70750*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                          MVT::v2f64, 4/*#Ops*/, 2, 0, 5, 6, 
                      // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn), (AArch64dup:{ *:[v2f64] } FPR64Op:{ *:[f64] }:$Rm), V128:{ *:[v2f64] }:$Rd) - Complexity = 9
                      // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR64Op:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 70760*/          0, /*End of Scope*/
/* 70761*/        0, /*End of Scope*/
/* 70762*/      0, // EndSwitchOpcode
/* 70763*/    /*Scope*/ 61|128,1/*189*/, /*->70954*/
/* 70765*/      OPC_RecordChild0, // #0 = $Rn
/* 70766*/      OPC_MoveChild1,
/* 70767*/      OPC_SwitchOpcode /*2 cases */, 109, TARGET_VAL(AArch64ISD::DUP),// ->70880
/* 70771*/        OPC_MoveChild0,
/* 70772*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 70775*/        OPC_RecordChild0, // #1 = $Rm
/* 70776*/        OPC_SwitchType /*2 cases */, 65, MVT::f32,// ->70844
/* 70779*/          OPC_MoveParent,
/* 70780*/          OPC_MoveParent,
/* 70781*/          OPC_RecordChild2, // #2 = $Rd
/* 70782*/          OPC_SwitchType /*2 cases */, 28, MVT::v2f32,// ->70813
/* 70785*/            OPC_EmitInteger, MVT::i32, 0, 
/* 70788*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70791*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70800*/            OPC_EmitInteger, MVT::i64, 0, 
/* 70803*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i32_indexed), 0,
                          MVT::v2f32, 4/*#Ops*/, 2, 0, 5, 6, 
                      // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (AArch64dup:{ *:[v2f32] } (fneg:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rm)), V64:{ *:[v2f32] }:$Rd) - Complexity = 9
                      // Dst: (FMLSv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70813*/          /*SwitchType*/ 28, MVT::v4f32,// ->70843
/* 70815*/            OPC_EmitInteger, MVT::i32, 0, 
/* 70818*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 70821*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70830*/            OPC_EmitInteger, MVT::i64, 0, 
/* 70833*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4i32_indexed), 0,
                          MVT::v4f32, 4/*#Ops*/, 2, 0, 5, 6, 
                      // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (AArch64dup:{ *:[v4f32] } (fneg:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rm)), V128:{ *:[v4f32] }:$Rd) - Complexity = 9
                      // Dst: (FMLSv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 70843*/          0, // EndSwitchType
/* 70844*/        /*SwitchType*/ 33, MVT::f64,// ->70879
/* 70846*/          OPC_MoveParent,
/* 70847*/          OPC_MoveParent,
/* 70848*/          OPC_RecordChild2, // #2 = $Rd
/* 70849*/          OPC_CheckType, MVT::v2f64,
/* 70851*/          OPC_EmitInteger, MVT::i32, 0, 
/* 70854*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 70857*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 70866*/          OPC_EmitInteger, MVT::i64, 0, 
/* 70869*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2i64_indexed), 0,
                        MVT::v2f64, 4/*#Ops*/, 2, 0, 5, 6, 
                    // Src: (fma:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (AArch64dup:{ *:[v2f64] } (fneg:{ *:[f64] } FPR64Op:{ *:[f64] }:$Rm)), V128:{ *:[v2f64] }:$Rd) - Complexity = 9
                    // Dst: (FMLSv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR64Op:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 70879*/        0, // EndSwitchType
/* 70880*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::FNEG),// ->70953
/* 70883*/        OPC_RecordChild0, // #1 = $Rm
/* 70884*/        OPC_MoveParent,
/* 70885*/        OPC_RecordChild2, // #2 = $Rd
/* 70886*/        OPC_SwitchType /*5 cases */, 11, MVT::v4f16,// ->70900
/* 70889*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 70891*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4f16), 0,
                        MVT::v4f16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, (fneg:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rm), V64:{ *:[v4f16] }:$Rd) - Complexity = 6
                    // Dst: (FMLSv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rd, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 70900*/        /*SwitchType*/ 11, MVT::v8f16,// ->70913
/* 70902*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 70904*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv8f16), 0,
                        MVT::v8f16, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, (fneg:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rm), V128:{ *:[v8f16] }:$Rd) - Complexity = 6
                    // Dst: (FMLSv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rd, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 70913*/        /*SwitchType*/ 11, MVT::v2f32,// ->70926
/* 70915*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70917*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2f32), 0,
                        MVT::v2f32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rm), V64:{ *:[v2f32] }:$Rd) - Complexity = 6
                    // Dst: (FMLSv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 70926*/        /*SwitchType*/ 11, MVT::v4f32,// ->70939
/* 70928*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70930*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4f32), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm), V128:{ *:[v4f32] }:$Rd) - Complexity = 6
                    // Dst: (FMLSv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 70939*/        /*SwitchType*/ 11, MVT::v2f64,// ->70952
/* 70941*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 70943*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2f64), 0,
                        MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm), V128:{ *:[v2f64] }:$Rd) - Complexity = 6
                    // Dst: (FMLSv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 70952*/        0, // EndSwitchType
/* 70953*/      0, // EndSwitchOpcode
/* 70954*/    /*Scope*/ 33|128,1/*161*/, /*->71117*/
/* 70956*/      OPC_MoveChild0,
/* 70957*/      OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::FNEG),// ->71000
/* 70961*/        OPC_RecordChild0, // #0 = $Rn
/* 70962*/        OPC_MoveParent,
/* 70963*/        OPC_RecordChild1, // #1 = $Rm
/* 70964*/        OPC_RecordChild2, // #2 = $Rd
/* 70965*/        OPC_SwitchType /*3 cases */, 9, MVT::v2f32,// ->70977
/* 70968*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2f32), 0,
                        MVT::v2f32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn), V64:{ *:[v2f32] }:$Rm, V64:{ *:[v2f32] }:$Rd) - Complexity = 6
                    // Dst: (FMLSv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 70977*/        /*SwitchType*/ 9, MVT::v4f32,// ->70988
/* 70979*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv4f32), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn), V128:{ *:[v4f32] }:$Rm, V128:{ *:[v4f32] }:$Rd) - Complexity = 6
                    // Dst: (FMLSv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 70988*/        /*SwitchType*/ 9, MVT::v2f64,// ->70999
/* 70990*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLSv2f64), 0,
                        MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn), V128:{ *:[v2f64] }:$Rm, V128:{ *:[v2f64] }:$Rd) - Complexity = 6
                    // Dst: (FMLSv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 70999*/        0, // EndSwitchType
/* 71000*/      /*SwitchOpcode*/ 113, TARGET_VAL(AArch64ISD::DUP),// ->71116
/* 71003*/        OPC_RecordChild0, // #0 = $Rm
/* 71004*/        OPC_Scope, 71, /*->71077*/ // 2 children in Scope
/* 71006*/          OPC_CheckChild0Type, MVT::f32,
/* 71008*/          OPC_MoveParent,
/* 71009*/          OPC_RecordChild1, // #1 = $Rn
/* 71010*/          OPC_RecordChild2, // #2 = $Rd
/* 71011*/          OPC_SwitchType /*2 cases */, 30, MVT::v2f32,// ->71044
/* 71014*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71016*/            OPC_EmitInteger, MVT::i32, 0, 
/* 71019*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 71022*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 71031*/            OPC_EmitInteger, MVT::i64, 0, 
/* 71034*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2i32_indexed), 0,
                          MVT::v2f32, 4/*#Ops*/, 2, 1, 5, 6, 
                      // Src: (fma:{ *:[v2f32] } (AArch64dup:{ *:[v2f32] } FPR32Op:{ *:[f32] }:$Rm), V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rd) - Complexity = 6
                      // Dst: (FMLAv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 71044*/          /*SwitchType*/ 30, MVT::v4f32,// ->71076
/* 71046*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71048*/            OPC_EmitInteger, MVT::i32, 0, 
/* 71051*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 71054*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 71063*/            OPC_EmitInteger, MVT::i64, 0, 
/* 71066*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv4i32_indexed), 0,
                          MVT::v4f32, 4/*#Ops*/, 2, 1, 5, 6, 
                      // Src: (fma:{ *:[v4f32] } (AArch64dup:{ *:[v4f32] } FPR32Op:{ *:[f32] }:$Rm), V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rd) - Complexity = 6
                      // Dst: (FMLAv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 71076*/          0, // EndSwitchType
/* 71077*/        /*Scope*/ 37, /*->71115*/
/* 71078*/          OPC_CheckChild0Type, MVT::f64,
/* 71080*/          OPC_MoveParent,
/* 71081*/          OPC_RecordChild1, // #1 = $Rn
/* 71082*/          OPC_RecordChild2, // #2 = $Rd
/* 71083*/          OPC_CheckType, MVT::v2f64,
/* 71085*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71087*/          OPC_EmitInteger, MVT::i32, 0, 
/* 71090*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 71093*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 71102*/          OPC_EmitInteger, MVT::i64, 0, 
/* 71105*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2i64_indexed), 0,
                        MVT::v2f64, 4/*#Ops*/, 2, 1, 5, 6, 
                    // Src: (fma:{ *:[v2f64] } (AArch64dup:{ *:[v2f64] } FPR64Op:{ *:[f64] }:$Rm), V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rd) - Complexity = 6
                    // Dst: (FMLAv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR64Op:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 71115*/        0, /*End of Scope*/
/* 71116*/      0, // EndSwitchOpcode
/* 71117*/    /*Scope*/ 61|128,1/*189*/, /*->71308*/
/* 71119*/      OPC_RecordChild0, // #0 = $Rn
/* 71120*/      OPC_Scope, 115, /*->71237*/ // 2 children in Scope
/* 71122*/        OPC_MoveChild1,
/* 71123*/        OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUP),
/* 71126*/        OPC_RecordChild0, // #1 = $Rm
/* 71127*/        OPC_Scope, 70, /*->71199*/ // 2 children in Scope
/* 71129*/          OPC_CheckChild0Type, MVT::f32,
/* 71131*/          OPC_MoveParent,
/* 71132*/          OPC_RecordChild2, // #2 = $Rd
/* 71133*/          OPC_SwitchType /*2 cases */, 30, MVT::v2f32,// ->71166
/* 71136*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71138*/            OPC_EmitInteger, MVT::i32, 0, 
/* 71141*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 71144*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 71153*/            OPC_EmitInteger, MVT::i64, 0, 
/* 71156*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2i32_indexed), 0,
                          MVT::v2f32, 4/*#Ops*/, 2, 0, 5, 6, 
                      // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (AArch64dup:{ *:[v2f32] } FPR32Op:{ *:[f32] }:$Rm), V64:{ *:[v2f32] }:$Rd) - Complexity = 6
                      // Dst: (FMLAv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 71166*/          /*SwitchType*/ 30, MVT::v4f32,// ->71198
/* 71168*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71170*/            OPC_EmitInteger, MVT::i32, 0, 
/* 71173*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 71176*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 71185*/            OPC_EmitInteger, MVT::i64, 0, 
/* 71188*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv4i32_indexed), 0,
                          MVT::v4f32, 4/*#Ops*/, 2, 0, 5, 6, 
                      // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (AArch64dup:{ *:[v4f32] } FPR32Op:{ *:[f32] }:$Rm), V128:{ *:[v4f32] }:$Rd) - Complexity = 6
                      // Dst: (FMLAv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR32Op:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 71198*/          0, // EndSwitchType
/* 71199*/        /*Scope*/ 36, /*->71236*/
/* 71200*/          OPC_CheckChild0Type, MVT::f64,
/* 71202*/          OPC_MoveParent,
/* 71203*/          OPC_RecordChild2, // #2 = $Rd
/* 71204*/          OPC_CheckType, MVT::v2f64,
/* 71206*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71208*/          OPC_EmitInteger, MVT::i32, 0, 
/* 71211*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 71214*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/* 71223*/          OPC_EmitInteger, MVT::i64, 0, 
/* 71226*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2i64_indexed), 0,
                        MVT::v2f64, 4/*#Ops*/, 2, 0, 5, 6, 
                    // Src: (fma:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (AArch64dup:{ *:[v2f64] } FPR64Op:{ *:[f64] }:$Rm), V128:{ *:[v2f64] }:$Rd) - Complexity = 6
                    // Dst: (FMLAv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, FPR64Op:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 71236*/        0, /*End of Scope*/
/* 71237*/      /*Scope*/ 69, /*->71307*/
/* 71238*/        OPC_RecordChild1, // #1 = $Rn
/* 71239*/        OPC_RecordChild2, // #2 = $Rd
/* 71240*/        OPC_SwitchType /*5 cases */, 11, MVT::v4f16,// ->71254
/* 71243*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 71245*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv4f16), 0,
                        MVT::v4f16, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (fma:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rm, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rd) - Complexity = 3
                    // Dst: (FMLAv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rd, V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 71254*/        /*SwitchType*/ 11, MVT::v8f16,// ->71267
/* 71256*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 71258*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv8f16), 0,
                        MVT::v8f16, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (fma:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rm, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rd) - Complexity = 3
                    // Dst: (FMLAv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rd, V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 71267*/        /*SwitchType*/ 11, MVT::v2f32,// ->71280
/* 71269*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71271*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2f32), 0,
                        MVT::v2f32, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (fma:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rm, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rd) - Complexity = 3
                    // Dst: (FMLAv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 71280*/        /*SwitchType*/ 11, MVT::v4f32,// ->71293
/* 71282*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71284*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv4f32), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (fma:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rd) - Complexity = 3
                    // Dst: (FMLAv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rd, V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 71293*/        /*SwitchType*/ 11, MVT::v2f64,// ->71306
/* 71295*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 71297*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMLAv2f64), 0,
                        MVT::v2f64, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (fma:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rd) - Complexity = 3
                    // Dst: (FMLAv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rd, V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 71306*/        0, // EndSwitchType
/* 71307*/      0, /*End of Scope*/
/* 71308*/    0, /*End of Scope*/
/* 71309*/  /*SwitchOpcode*/ 16|128,8/*1040*/, TARGET_VAL(ISD::UINT_TO_FP),// ->72353
/* 71313*/    OPC_Scope, 117|128,6/*885*/, /*->72201*/ // 2 children in Scope
/* 71316*/      OPC_MoveChild0,
/* 71317*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 71320*/      OPC_RecordMemRef,
/* 71321*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 71322*/      OPC_RecordChild1, // #1 = $ro_Windexed8:Rn:Rm:extend
/* 71323*/      OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 71325*/      OPC_CheckType, MVT::i32,
/* 71327*/      OPC_Scope, 100|128,2/*356*/, /*->71686*/ // 4 children in Scope
/* 71330*/        OPC_CheckPredicate, 27, // Predicate_zextload
/* 71332*/        OPC_Scope, 87, /*->71421*/ // 4 children in Scope
/* 71334*/          OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 71336*/          OPC_MoveParent,
/* 71337*/          OPC_CheckType, MVT::f32,
/* 71339*/          OPC_Scope, 39, /*->71380*/ // 2 children in Scope
/* 71341*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 71344*/            OPC_EmitMergeInputChains1_0,
/* 71345*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #6
/* 71351*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71361*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 71364*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71373*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 9, 
                      // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 22
                      // Dst: (UCVTFv1i32:{ *:[f32] } (INSERT_SUBREG:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), (LDRBroW:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend), bsub:{ *:[i32] }))
/* 71380*/          /*Scope*/ 39, /*->71420*/
/* 71381*/            OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 71384*/            OPC_EmitMergeInputChains1_0,
/* 71385*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #6
/* 71391*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71401*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 71404*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71413*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 9, 
                      // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 22
                      // Dst: (UCVTFv1i32:{ *:[f32] } (INSERT_SUBREG:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), (LDRBroX:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend), bsub:{ *:[i32] }))
/* 71420*/          0, /*End of Scope*/
/* 71421*/        /*Scope*/ 87, /*->71509*/
/* 71422*/          OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 71424*/          OPC_MoveParent,
/* 71425*/          OPC_CheckType, MVT::f32,
/* 71427*/          OPC_Scope, 39, /*->71468*/ // 2 children in Scope
/* 71429*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 71432*/            OPC_EmitMergeInputChains1_0,
/* 71433*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #6
/* 71439*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71449*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 71452*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71461*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 9, 
                      // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 22
                      // Dst: (UCVTFv1i32:{ *:[f32] } (INSERT_SUBREG:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend), hsub:{ *:[i32] }))
/* 71468*/          /*Scope*/ 39, /*->71508*/
/* 71469*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 71472*/            OPC_EmitMergeInputChains1_0,
/* 71473*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #6
/* 71479*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71489*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 71492*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71501*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 9, 
                      // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 22
                      // Dst: (UCVTFv1i32:{ *:[f32] } (INSERT_SUBREG:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend), hsub:{ *:[i32] }))
/* 71508*/          0, /*End of Scope*/
/* 71509*/        /*Scope*/ 87, /*->71597*/
/* 71510*/          OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 71512*/          OPC_MoveParent,
/* 71513*/          OPC_CheckType, MVT::f64,
/* 71515*/          OPC_Scope, 39, /*->71556*/ // 2 children in Scope
/* 71517*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 71520*/            OPC_EmitMergeInputChains1_0,
/* 71521*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #6
/* 71527*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71537*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 71540*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71549*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 9, 
                      // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 22
                      // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRBroW:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend), bsub:{ *:[i32] }))
/* 71556*/          /*Scope*/ 39, /*->71596*/
/* 71557*/            OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 71560*/            OPC_EmitMergeInputChains1_0,
/* 71561*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #6
/* 71567*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71577*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 71580*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71589*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 9, 
                      // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Wextend8:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 22
                      // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRBroX:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$extend), bsub:{ *:[i32] }))
/* 71596*/          0, /*End of Scope*/
/* 71597*/        /*Scope*/ 87, /*->71685*/
/* 71598*/          OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 71600*/          OPC_MoveParent,
/* 71601*/          OPC_CheckType, MVT::f64,
/* 71603*/          OPC_Scope, 39, /*->71644*/ // 2 children in Scope
/* 71605*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 71608*/            OPC_EmitMergeInputChains1_0,
/* 71609*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #6
/* 71615*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71625*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 71628*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71637*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 9, 
                      // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 22
                      // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend), hsub:{ *:[i32] }))
/* 71644*/          /*Scope*/ 39, /*->71684*/
/* 71645*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 71648*/            OPC_EmitMergeInputChains1_0,
/* 71649*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #6
/* 71655*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71665*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 71668*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71677*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 9, 
                      // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Wextend16:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 22
                      // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$extend), hsub:{ *:[i32] }))
/* 71684*/          0, /*End of Scope*/
/* 71685*/        0, /*End of Scope*/
/* 71686*/      /*Scope*/ 87, /*->71774*/
/* 71687*/        OPC_CheckPredicate, 30, // Predicate_load
/* 71689*/        OPC_MoveParent,
/* 71690*/        OPC_CheckType, MVT::f64,
/* 71692*/        OPC_Scope, 39, /*->71733*/ // 2 children in Scope
/* 71694*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 71697*/          OPC_EmitMergeInputChains1_0,
/* 71698*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #6
/* 71704*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71714*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 71717*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71726*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                        MVT::f64, 1/*#Ops*/, 9, 
                    // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 22
                    // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRSroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend), ssub:{ *:[i32] }))
/* 71733*/        /*Scope*/ 39, /*->71773*/
/* 71734*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 71737*/          OPC_EmitMergeInputChains1_0,
/* 71738*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #6
/* 71744*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 71754*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 71757*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 71766*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                        MVT::f64, 1/*#Ops*/, 9, 
                    // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Wextend32:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 22
                    // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRSroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$extend), ssub:{ *:[i32] }))
/* 71773*/        0, /*End of Scope*/
/* 71774*/      /*Scope*/ 84|128,2/*340*/, /*->72116*/
/* 71776*/        OPC_CheckPredicate, 27, // Predicate_zextload
/* 71778*/        OPC_Scope, 83, /*->71863*/ // 4 children in Scope
/* 71780*/          OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 71782*/          OPC_MoveParent,
/* 71783*/          OPC_CheckType, MVT::f32,
/* 71785*/          OPC_Scope, 37, /*->71824*/ // 2 children in Scope
/* 71787*/            OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 71790*/            OPC_EmitMergeInputChains1_0,
/* 71791*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #4
/* 71797*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 2/*#Ops*/, 2, 3,  // Results = #5
/* 71805*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 71808*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 71817*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 7, 
                      // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 16
                      // Dst: (UCVTFv1i32:{ *:[f32] } (INSERT_SUBREG:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), (LDRBui:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), bsub:{ *:[i32] }))
/* 71824*/          /*Scope*/ 37, /*->71862*/
/* 71825*/            OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 71828*/            OPC_EmitMergeInputChains1_0,
/* 71829*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #4
/* 71835*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDURBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 2/*#Ops*/, 2, 3,  // Results = #5
/* 71843*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 71846*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 71855*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 7, 
                      // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 16
                      // Dst: (UCVTFv1i32:{ *:[f32] } (INSERT_SUBREG:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), (LDURBi:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), bsub:{ *:[i32] }))
/* 71862*/          0, /*End of Scope*/
/* 71863*/        /*Scope*/ 83, /*->71947*/
/* 71864*/          OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 71866*/          OPC_MoveParent,
/* 71867*/          OPC_CheckType, MVT::f32,
/* 71869*/          OPC_Scope, 37, /*->71908*/ // 2 children in Scope
/* 71871*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 71874*/            OPC_EmitMergeInputChains1_0,
/* 71875*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #4
/* 71881*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 71889*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 71892*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 71901*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 7, 
                      // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 16
                      // Dst: (UCVTFv1i32:{ *:[f32] } (INSERT_SUBREG:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), (LDRHui:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), hsub:{ *:[i32] }))
/* 71908*/          /*Scope*/ 37, /*->71946*/
/* 71909*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 71912*/            OPC_EmitMergeInputChains1_0,
/* 71913*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #4
/* 71919*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDURHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 71927*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 71930*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 71939*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 7, 
                      // Src: (uint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 16
                      // Dst: (UCVTFv1i32:{ *:[f32] } (INSERT_SUBREG:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), (LDURHi:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), hsub:{ *:[i32] }))
/* 71946*/          0, /*End of Scope*/
/* 71947*/        /*Scope*/ 83, /*->72031*/
/* 71948*/          OPC_CheckPredicate, 28, // Predicate_zextloadi8
/* 71950*/          OPC_MoveParent,
/* 71951*/          OPC_CheckType, MVT::f64,
/* 71953*/          OPC_Scope, 37, /*->71992*/ // 2 children in Scope
/* 71955*/            OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 71958*/            OPC_EmitMergeInputChains1_0,
/* 71959*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #4
/* 71965*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 2/*#Ops*/, 2, 3,  // Results = #5
/* 71973*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 71976*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 71985*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 7, 
                      // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 16
                      // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRBui:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), bsub:{ *:[i32] }))
/* 71992*/          /*Scope*/ 37, /*->72030*/
/* 71993*/            OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 71996*/            OPC_EmitMergeInputChains1_0,
/* 71997*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #4
/* 72003*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDURBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 2/*#Ops*/, 2, 3,  // Results = #5
/* 72011*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 72014*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 72023*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 7, 
                      // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 16
                      // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDURBi:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), bsub:{ *:[i32] }))
/* 72030*/          0, /*End of Scope*/
/* 72031*/        /*Scope*/ 83, /*->72115*/
/* 72032*/          OPC_CheckPredicate, 29, // Predicate_zextloadi16
/* 72034*/          OPC_MoveParent,
/* 72035*/          OPC_CheckType, MVT::f64,
/* 72037*/          OPC_Scope, 37, /*->72076*/ // 2 children in Scope
/* 72039*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 72042*/            OPC_EmitMergeInputChains1_0,
/* 72043*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #4
/* 72049*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 72057*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 72060*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 72069*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 7, 
                      // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 16
                      // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHui:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), hsub:{ *:[i32] }))
/* 72076*/          /*Scope*/ 37, /*->72114*/
/* 72077*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 72080*/            OPC_EmitMergeInputChains1_0,
/* 72081*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #4
/* 72087*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDURHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 72095*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 72098*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 72107*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 7, 
                      // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 16
                      // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDURHi:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), hsub:{ *:[i32] }))
/* 72114*/          0, /*End of Scope*/
/* 72115*/        0, /*End of Scope*/
/* 72116*/      /*Scope*/ 83, /*->72200*/
/* 72117*/        OPC_CheckPredicate, 30, // Predicate_load
/* 72119*/        OPC_MoveParent,
/* 72120*/        OPC_CheckType, MVT::f64,
/* 72122*/        OPC_Scope, 37, /*->72161*/ // 2 children in Scope
/* 72124*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 72127*/          OPC_EmitMergeInputChains1_0,
/* 72128*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #4
/* 72134*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRSui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 72142*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 72145*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 72154*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                        MVT::f64, 1/*#Ops*/, 7, 
                    // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                    // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRSui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset), ssub:{ *:[i32] }))
/* 72161*/        /*Scope*/ 37, /*->72199*/
/* 72162*/          OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #2 #3
/* 72165*/          OPC_EmitMergeInputChains1_0,
/* 72166*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #4
/* 72172*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDURSi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 72180*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 72183*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 72192*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                        MVT::f64, 1/*#Ops*/, 7, 
                    // Src: (uint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                    // Dst: (UCVTFv1i64:{ *:[f64] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDURSi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), ssub:{ *:[i32] }))
/* 72199*/        0, /*End of Scope*/
/* 72200*/      0, /*End of Scope*/
/* 72201*/    /*Scope*/ 21|128,1/*149*/, /*->72352*/
/* 72203*/      OPC_RecordChild0, // #0 = $Rn
/* 72204*/      OPC_Scope, 37, /*->72243*/ // 7 children in Scope
/* 72206*/        OPC_CheckChild0Type, MVT::i32,
/* 72208*/        OPC_SwitchType /*3 cases */, 9, MVT::f16,// ->72220
/* 72211*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 72213*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFUWHri), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f16] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (UCVTFUWHri:{ *:[f16] } GPR32:{ *:[i32] }:$Rn)
/* 72220*/        /*SwitchType*/ 9, MVT::f32,// ->72231
/* 72222*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 72224*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFUWSri), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f32] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (UCVTFUWSri:{ *:[f32] } GPR32:{ *:[i32] }:$Rn)
/* 72231*/        /*SwitchType*/ 9, MVT::f64,// ->72242
/* 72233*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 72235*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFUWDri), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f64] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (UCVTFUWDri:{ *:[f64] } GPR32:{ *:[i32] }:$Rn)
/* 72242*/        0, // EndSwitchType
/* 72243*/      /*Scope*/ 37, /*->72281*/
/* 72244*/        OPC_CheckChild0Type, MVT::i64,
/* 72246*/        OPC_SwitchType /*3 cases */, 9, MVT::f16,// ->72258
/* 72249*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 72251*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFUXHri), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f16] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                    // Dst: (UCVTFUXHri:{ *:[f16] } GPR64:{ *:[i64] }:$Rn)
/* 72258*/        /*SwitchType*/ 9, MVT::f32,// ->72269
/* 72260*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 72262*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFUXSri), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f32] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                    // Dst: (UCVTFUXSri:{ *:[f32] } GPR64:{ *:[i64] }:$Rn)
/* 72269*/        /*SwitchType*/ 9, MVT::f64,// ->72280
/* 72271*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 72273*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFUXDri), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f64] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                    // Dst: (UCVTFUXDri:{ *:[f64] } GPR64:{ *:[i64] }:$Rn)
/* 72280*/        0, // EndSwitchType
/* 72281*/      /*Scope*/ 13, /*->72295*/
/* 72282*/        OPC_CheckChild0Type, MVT::v4i16,
/* 72284*/        OPC_CheckType, MVT::v4f16,
/* 72286*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 72288*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv4f16), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (uint_to_fp:{ *:[v4f16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (UCVTFv4f16:{ *:[v4f16] } V64:{ *:[v4i16] }:$Rn)
/* 72295*/      /*Scope*/ 13, /*->72309*/
/* 72296*/        OPC_CheckChild0Type, MVT::v8i16,
/* 72298*/        OPC_CheckType, MVT::v8f16,
/* 72300*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 72302*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv8f16), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (uint_to_fp:{ *:[v8f16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                  // Dst: (UCVTFv8f16:{ *:[v8f16] } V128:{ *:[v8i16] }:$Rn)
/* 72309*/      /*Scope*/ 13, /*->72323*/
/* 72310*/        OPC_CheckChild0Type, MVT::v2i32,
/* 72312*/        OPC_CheckType, MVT::v2f32,
/* 72314*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 72316*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv2f32), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (uint_to_fp:{ *:[v2f32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (UCVTFv2f32:{ *:[v2f32] } V64:{ *:[v2i32] }:$Rn)
/* 72323*/      /*Scope*/ 13, /*->72337*/
/* 72324*/        OPC_CheckChild0Type, MVT::v4i32,
/* 72326*/        OPC_CheckType, MVT::v4f32,
/* 72328*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 72330*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv4f32), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (uint_to_fp:{ *:[v4f32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                  // Dst: (UCVTFv4f32:{ *:[v4f32] } V128:{ *:[v4i32] }:$Rn)
/* 72337*/      /*Scope*/ 13, /*->72351*/
/* 72338*/        OPC_CheckChild0Type, MVT::v2i64,
/* 72340*/        OPC_CheckType, MVT::v2f64,
/* 72342*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 72344*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv2f64), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (uint_to_fp:{ *:[v2f64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                  // Dst: (UCVTFv2f64:{ *:[v2f64] } V128:{ *:[v2i64] }:$Rn)
/* 72351*/      0, /*End of Scope*/
/* 72352*/    0, /*End of Scope*/
/* 72353*/  /*SwitchOpcode*/ 12|128,11/*1420*/, TARGET_VAL(ISD::SINT_TO_FP),// ->73777
/* 72357*/    OPC_Scope, 113|128,9/*1265*/, /*->73625*/ // 2 children in Scope
/* 72360*/      OPC_MoveChild0,
/* 72361*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72364*/      OPC_RecordMemRef,
/* 72365*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 72366*/      OPC_RecordChild1, // #1 = $ro_Windexed16:Rn:Rm:ext
/* 72367*/      OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 72369*/      OPC_CheckType, MVT::i32,
/* 72371*/      OPC_Scope, 7|128,1/*135*/, /*->72509*/ // 5 children in Scope
/* 72374*/        OPC_CheckPredicate, 31, // Predicate_sextload
/* 72376*/        OPC_CheckPredicate, 29, // Predicate_sextloadi16
/* 72378*/        OPC_MoveParent,
/* 72379*/        OPC_CheckType, MVT::f32,
/* 72381*/        OPC_CheckPatternPredicate, 17, // (!MF->getFunction().optForSize())
/* 72383*/        OPC_Scope, 61, /*->72446*/ // 2 children in Scope
/* 72385*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 72388*/          OPC_EmitMergeInputChains1_0,
/* 72389*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #6
/* 72395*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 72405*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 72408*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 72417*/          OPC_EmitInteger, MVT::i32, 0, 
/* 72420*/          OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                        MVT::f128, 2/*#Ops*/, 9, 10,  // Results = #11
/* 72428*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 72431*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 11, 12,  // Results = #13
/* 72439*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                        MVT::f32, 1/*#Ops*/, 13, 
                    // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$ext))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 22
                    // Dst: (SCVTFv1i32:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (SSHLLv4i16_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$ext), hsub:{ *:[i32] }), 0:{ *:[i32] }), ssub:{ *:[i32] }))
/* 72446*/        /*Scope*/ 61, /*->72508*/
/* 72447*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 72450*/          OPC_EmitMergeInputChains1_0,
/* 72451*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #6
/* 72457*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 72467*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 72470*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 72479*/          OPC_EmitInteger, MVT::i32, 0, 
/* 72482*/          OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                        MVT::f128, 2/*#Ops*/, 9, 10,  // Results = #11
/* 72490*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 72493*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 11, 12,  // Results = #13
/* 72501*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                        MVT::f32, 1/*#Ops*/, 13, 
                    // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$ext))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 22
                    // Dst: (SCVTFv1i32:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (SSHLLv4i16_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$ext), hsub:{ *:[i32] }), 0:{ *:[i32] }), ssub:{ *:[i32] }))
/* 72508*/        0, /*End of Scope*/
/* 72509*/      /*Scope*/ 5|128,1/*133*/, /*->72644*/
/* 72511*/        OPC_CheckPredicate, 30, // Predicate_load
/* 72513*/        OPC_MoveParent,
/* 72514*/        OPC_CheckType, MVT::f64,
/* 72516*/        OPC_CheckPatternPredicate, 17, // (!MF->getFunction().optForSize())
/* 72518*/        OPC_Scope, 61, /*->72581*/ // 2 children in Scope
/* 72520*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 72523*/          OPC_EmitMergeInputChains1_0,
/* 72524*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #6
/* 72530*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 72540*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 72543*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 72552*/          OPC_EmitInteger, MVT::i32, 0, 
/* 72555*/          OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                        MVT::f128, 2/*#Ops*/, 9, 10,  // Results = #11
/* 72563*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 72566*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 72574*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                        MVT::f64, 1/*#Ops*/, 13, 
                    // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$ext))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 22
                    // Dst: (SCVTFv1i64:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv2i32_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRSroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$ext), ssub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }))
/* 72581*/        /*Scope*/ 61, /*->72643*/
/* 72582*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 72585*/          OPC_EmitMergeInputChains1_0,
/* 72586*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #6
/* 72592*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 72602*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 72605*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 72614*/          OPC_EmitInteger, MVT::i32, 0, 
/* 72617*/          OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                        MVT::f128, 2/*#Ops*/, 9, 10,  // Results = #11
/* 72625*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 72628*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 72636*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                        MVT::f64, 1/*#Ops*/, 13, 
                    // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$ext))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 22
                    // Dst: (SCVTFv1i64:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv2i32_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRSroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$ext), ssub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }))
/* 72643*/        0, /*End of Scope*/
/* 72644*/      /*Scope*/ 107|128,3/*491*/, /*->73137*/
/* 72646*/        OPC_CheckPredicate, 31, // Predicate_sextload
/* 72648*/        OPC_Scope, 49|128,1/*177*/, /*->72828*/ // 2 children in Scope
/* 72651*/          OPC_CheckPredicate, 28, // Predicate_sextloadi8
/* 72653*/          OPC_MoveParent,
/* 72654*/          OPC_CheckType, MVT::f32,
/* 72656*/          OPC_CheckPatternPredicate, 18, // (!MF->getFunction().optForSize()) && (Subtarget->useAlternateSExtLoadCVTF32Pattern())
/* 72658*/          OPC_Scope, 83, /*->72743*/ // 2 children in Scope
/* 72660*/            OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 72663*/            OPC_EmitMergeInputChains1_0,
/* 72664*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #6
/* 72670*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 72680*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 72683*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 72692*/            OPC_EmitInteger, MVT::i32, 0, 
/* 72695*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv8i8_shift), 0,
                          MVT::f128, 2/*#Ops*/, 9, 10,  // Results = #11
/* 72703*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 72706*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 72714*/            OPC_EmitInteger, MVT::i32, 0, 
/* 72717*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                          MVT::f128, 2/*#Ops*/, 13, 14,  // Results = #15
/* 72725*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 72728*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f32, 2/*#Ops*/, 15, 16,  // Results = #17
/* 72736*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 17, 
                      // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$ext))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>>) - Complexity = 22
                      // Dst: (SCVTFv1i32:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (SSHLLv4i16_shift:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv8i8_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRBroW:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$ext), bsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }), 0:{ *:[i32] }), ssub:{ *:[i32] }))
/* 72743*/          /*Scope*/ 83, /*->72827*/
/* 72744*/            OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 72747*/            OPC_EmitMergeInputChains1_0,
/* 72748*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #6
/* 72754*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 72764*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 72767*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 72776*/            OPC_EmitInteger, MVT::i32, 0, 
/* 72779*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv8i8_shift), 0,
                          MVT::f128, 2/*#Ops*/, 9, 10,  // Results = #11
/* 72787*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 72790*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 72798*/            OPC_EmitInteger, MVT::i32, 0, 
/* 72801*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                          MVT::f128, 2/*#Ops*/, 13, 14,  // Results = #15
/* 72809*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 72812*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f32, 2/*#Ops*/, 15, 16,  // Results = #17
/* 72820*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 17, 
                      // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$ext))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>>) - Complexity = 22
                      // Dst: (SCVTFv1i32:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (SSHLLv4i16_shift:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv8i8_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRBroX:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$ext), bsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }), 0:{ *:[i32] }), ssub:{ *:[i32] }))
/* 72827*/          0, /*End of Scope*/
/* 72828*/        /*Scope*/ 50|128,2/*306*/, /*->73136*/
/* 72830*/          OPC_CheckPredicate, 29, // Predicate_sextloadi16
/* 72832*/          OPC_MoveParent,
/* 72833*/          OPC_SwitchType /*2 cases */, 44|128,1/*172*/, MVT::f64,// ->73009
/* 72837*/            OPC_CheckPatternPredicate, 18, // (!MF->getFunction().optForSize()) && (Subtarget->useAlternateSExtLoadCVTF32Pattern())
/* 72839*/            OPC_Scope, 83, /*->72924*/ // 2 children in Scope
/* 72841*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 72844*/              OPC_EmitMergeInputChains1_0,
/* 72845*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::f64, 0/*#Ops*/,  // Results = #6
/* 72851*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 72861*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 72864*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 72873*/              OPC_EmitInteger, MVT::i32, 0, 
/* 72876*/              OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                            MVT::f128, 2/*#Ops*/, 9, 10,  // Results = #11
/* 72884*/              OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 72887*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 72895*/              OPC_EmitInteger, MVT::i32, 0, 
/* 72898*/              OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                            MVT::f128, 2/*#Ops*/, 13, 14,  // Results = #15
/* 72906*/              OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 72909*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 15, 16,  // Results = #17
/* 72917*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                            MVT::f64, 1/*#Ops*/, 17, 
                        // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$ext))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 22
                        // Dst: (SCVTFv1i64:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv2i32_shift:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv4i16_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$ext), hsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }))
/* 72924*/            /*Scope*/ 83, /*->73008*/
/* 72925*/              OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 72928*/              OPC_EmitMergeInputChains1_0,
/* 72929*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::f64, 0/*#Ops*/,  // Results = #6
/* 72935*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 72945*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 72948*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 72957*/              OPC_EmitInteger, MVT::i32, 0, 
/* 72960*/              OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                            MVT::f128, 2/*#Ops*/, 9, 10,  // Results = #11
/* 72968*/              OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 72971*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 72979*/              OPC_EmitInteger, MVT::i32, 0, 
/* 72982*/              OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                            MVT::f128, 2/*#Ops*/, 13, 14,  // Results = #15
/* 72990*/              OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 72993*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 15, 16,  // Results = #17
/* 73001*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                            MVT::f64, 1/*#Ops*/, 17, 
                        // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$ext))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 22
                        // Dst: (SCVTFv1i64:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv2i32_shift:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv4i16_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$ext), hsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }))
/* 73008*/            0, /*End of Scope*/
/* 73009*/          /*SwitchType*/ 124, MVT::f32,// ->73135
/* 73011*/            OPC_CheckPatternPredicate, 17, // (!MF->getFunction().optForSize())
/* 73013*/            OPC_Scope, 59, /*->73074*/ // 2 children in Scope
/* 73015*/              OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 73018*/              OPC_EmitMergeInputChains1_0,
/* 73019*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::f64, 0/*#Ops*/,  // Results = #4
/* 73025*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRHui), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 73033*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 73036*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 73045*/              OPC_EmitInteger, MVT::i32, 0, 
/* 73048*/              OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                            MVT::f128, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73056*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 73059*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f32, 2/*#Ops*/, 9, 10,  // Results = #11
/* 73067*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                            MVT::f32, 1/*#Ops*/, 11, 
                        // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 16
                        // Dst: (SCVTFv1i32:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (SSHLLv4i16_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHui:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), hsub:{ *:[i32] }), 0:{ *:[i32] }), ssub:{ *:[i32] }))
/* 73074*/            /*Scope*/ 59, /*->73134*/
/* 73075*/              OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 73078*/              OPC_EmitMergeInputChains1_0,
/* 73079*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::f64, 0/*#Ops*/,  // Results = #4
/* 73085*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDURHi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 73093*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 73096*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 73105*/              OPC_EmitInteger, MVT::i32, 0, 
/* 73108*/              OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                            MVT::f128, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73116*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 73119*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f32, 2/*#Ops*/, 9, 10,  // Results = #11
/* 73127*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                            MVT::f32, 1/*#Ops*/, 11, 
                        // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 16
                        // Dst: (SCVTFv1i32:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (SSHLLv4i16_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDURHi:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), hsub:{ *:[i32] }), 0:{ *:[i32] }), ssub:{ *:[i32] }))
/* 73134*/            0, /*End of Scope*/
/* 73135*/          0, // EndSwitchType
/* 73136*/        0, /*End of Scope*/
/* 73137*/      /*Scope*/ 1|128,1/*129*/, /*->73268*/
/* 73139*/        OPC_CheckPredicate, 30, // Predicate_load
/* 73141*/        OPC_MoveParent,
/* 73142*/        OPC_CheckType, MVT::f64,
/* 73144*/        OPC_CheckPatternPredicate, 17, // (!MF->getFunction().optForSize())
/* 73146*/        OPC_Scope, 59, /*->73207*/ // 2 children in Scope
/* 73148*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 73151*/          OPC_EmitMergeInputChains1_0,
/* 73152*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #4
/* 73158*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRSui), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 73166*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 73169*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 73178*/          OPC_EmitInteger, MVT::i32, 0, 
/* 73181*/          OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                        MVT::f128, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73189*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73192*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 73200*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                        MVT::f64, 1/*#Ops*/, 11, 
                    // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                    // Dst: (SCVTFv1i64:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv2i32_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRSui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset), ssub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }))
/* 73207*/        /*Scope*/ 59, /*->73267*/
/* 73208*/          OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectAddrModeUnscaled32:$ #2 #3
/* 73211*/          OPC_EmitMergeInputChains1_0,
/* 73212*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #4
/* 73218*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDURSi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 73226*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 73229*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 73238*/          OPC_EmitInteger, MVT::i32, 0, 
/* 73241*/          OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                        MVT::f128, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73249*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73252*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 73260*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                        MVT::f64, 1/*#Ops*/, 11, 
                    // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_unscaled32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                    // Dst: (SCVTFv1i64:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv2i32_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDURSi:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), ssub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }))
/* 73267*/        0, /*End of Scope*/
/* 73268*/      /*Scope*/ 98|128,2/*354*/, /*->73624*/
/* 73270*/        OPC_CheckPredicate, 31, // Predicate_sextload
/* 73272*/        OPC_Scope, 45|128,1/*173*/, /*->73448*/ // 2 children in Scope
/* 73275*/          OPC_CheckPredicate, 28, // Predicate_sextloadi8
/* 73277*/          OPC_MoveParent,
/* 73278*/          OPC_CheckType, MVT::f32,
/* 73280*/          OPC_CheckPatternPredicate, 18, // (!MF->getFunction().optForSize()) && (Subtarget->useAlternateSExtLoadCVTF32Pattern())
/* 73282*/          OPC_Scope, 81, /*->73365*/ // 2 children in Scope
/* 73284*/            OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 73287*/            OPC_EmitMergeInputChains1_0,
/* 73288*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #4
/* 73294*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRBui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 2/*#Ops*/, 2, 3,  // Results = #5
/* 73302*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 73305*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 73314*/            OPC_EmitInteger, MVT::i32, 0, 
/* 73317*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv8i8_shift), 0,
                          MVT::f128, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73325*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73328*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 73336*/            OPC_EmitInteger, MVT::i32, 0, 
/* 73339*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                          MVT::f128, 2/*#Ops*/, 11, 12,  // Results = #13
/* 73347*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 73350*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f32, 2/*#Ops*/, 13, 14,  // Results = #15
/* 73358*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 15, 
                      // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>>) - Complexity = 16
                      // Dst: (SCVTFv1i32:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (SSHLLv4i16_shift:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv8i8_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRBui:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), bsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }), 0:{ *:[i32] }), ssub:{ *:[i32] }))
/* 73365*/          /*Scope*/ 81, /*->73447*/
/* 73366*/            OPC_CheckComplexPat, /*CP*/21, /*#*/1, // SelectAddrModeUnscaled8:$ #2 #3
/* 73369*/            OPC_EmitMergeInputChains1_0,
/* 73370*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #4
/* 73376*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDURBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::Untyped, 2/*#Ops*/, 2, 3,  // Results = #5
/* 73384*/            OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 73387*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 73396*/            OPC_EmitInteger, MVT::i32, 0, 
/* 73399*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv8i8_shift), 0,
                          MVT::f128, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73407*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73410*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 73418*/            OPC_EmitInteger, MVT::i32, 0, 
/* 73421*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                          MVT::f128, 2/*#Ops*/, 11, 12,  // Results = #13
/* 73429*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 73432*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f32, 2/*#Ops*/, 13, 14,  // Results = #15
/* 73440*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                          MVT::f32, 1/*#Ops*/, 15, 
                      // Src: (sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } (am_unscaled8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>>) - Complexity = 16
                      // Dst: (SCVTFv1i32:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (SSHLLv4i16_shift:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv8i8_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDURBi:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), bsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }), 0:{ *:[i32] }), ssub:{ *:[i32] }))
/* 73447*/          0, /*End of Scope*/
/* 73448*/        /*Scope*/ 45|128,1/*173*/, /*->73623*/
/* 73450*/          OPC_CheckPredicate, 29, // Predicate_sextloadi16
/* 73452*/          OPC_MoveParent,
/* 73453*/          OPC_CheckType, MVT::f64,
/* 73455*/          OPC_CheckPatternPredicate, 18, // (!MF->getFunction().optForSize()) && (Subtarget->useAlternateSExtLoadCVTF32Pattern())
/* 73457*/          OPC_Scope, 81, /*->73540*/ // 2 children in Scope
/* 73459*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 73462*/            OPC_EmitMergeInputChains1_0,
/* 73463*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #4
/* 73469*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 73477*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 73480*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 73489*/            OPC_EmitInteger, MVT::i32, 0, 
/* 73492*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                          MVT::f128, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73500*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73503*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 73511*/            OPC_EmitInteger, MVT::i32, 0, 
/* 73514*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                          MVT::f128, 2/*#Ops*/, 11, 12,  // Results = #13
/* 73522*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73525*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 13, 14,  // Results = #15
/* 73533*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 15, 
                      // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 16
                      // Dst: (SCVTFv1i64:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv2i32_shift:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv4i16_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDRHui:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), hsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }))
/* 73540*/          /*Scope*/ 81, /*->73622*/
/* 73541*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectAddrModeUnscaled16:$ #2 #3
/* 73544*/            OPC_EmitMergeInputChains1_0,
/* 73545*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #4
/* 73551*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDURHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 73559*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 73562*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 73571*/            OPC_EmitInteger, MVT::i32, 0, 
/* 73574*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                          MVT::f128, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73582*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73585*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 73593*/            OPC_EmitInteger, MVT::i32, 0, 
/* 73596*/            OPC_EmitNode1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                          MVT::f128, 2/*#Ops*/, 11, 12,  // Results = #13
/* 73604*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73607*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 13, 14,  // Results = #15
/* 73615*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                          MVT::f64, 1/*#Ops*/, 15, 
                      // Src: (sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } (am_unscaled16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 16
                      // Dst: (SCVTFv1i64:{ *:[f64] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv2i32_shift:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (SSHLLv4i16_shift:{ *:[f128] } (INSERT_SUBREG:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), (LDURHi:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_simm9>>:$offset), hsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }), 0:{ *:[i32] }), dsub:{ *:[i32] }))
/* 73622*/          0, /*End of Scope*/
/* 73623*/        0, /*End of Scope*/
/* 73624*/      0, /*End of Scope*/
/* 73625*/    /*Scope*/ 21|128,1/*149*/, /*->73776*/
/* 73627*/      OPC_RecordChild0, // #0 = $Rn
/* 73628*/      OPC_Scope, 37, /*->73667*/ // 7 children in Scope
/* 73630*/        OPC_CheckChild0Type, MVT::i32,
/* 73632*/        OPC_SwitchType /*3 cases */, 9, MVT::f16,// ->73644
/* 73635*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 73637*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFUWHri), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f16] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (SCVTFUWHri:{ *:[f16] } GPR32:{ *:[i32] }:$Rn)
/* 73644*/        /*SwitchType*/ 9, MVT::f32,// ->73655
/* 73646*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 73648*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFUWSri), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f32] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (SCVTFUWSri:{ *:[f32] } GPR32:{ *:[i32] }:$Rn)
/* 73655*/        /*SwitchType*/ 9, MVT::f64,// ->73666
/* 73657*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 73659*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFUWDri), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f64] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (SCVTFUWDri:{ *:[f64] } GPR32:{ *:[i32] }:$Rn)
/* 73666*/        0, // EndSwitchType
/* 73667*/      /*Scope*/ 37, /*->73705*/
/* 73668*/        OPC_CheckChild0Type, MVT::i64,
/* 73670*/        OPC_SwitchType /*3 cases */, 9, MVT::f16,// ->73682
/* 73673*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 73675*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFUXHri), 0,
                        MVT::f16, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f16] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                    // Dst: (SCVTFUXHri:{ *:[f16] } GPR64:{ *:[i64] }:$Rn)
/* 73682*/        /*SwitchType*/ 9, MVT::f32,// ->73693
/* 73684*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 73686*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFUXSri), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f32] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                    // Dst: (SCVTFUXSri:{ *:[f32] } GPR64:{ *:[i64] }:$Rn)
/* 73693*/        /*SwitchType*/ 9, MVT::f64,// ->73704
/* 73695*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 73697*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFUXDri), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f64] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                    // Dst: (SCVTFUXDri:{ *:[f64] } GPR64:{ *:[i64] }:$Rn)
/* 73704*/        0, // EndSwitchType
/* 73705*/      /*Scope*/ 13, /*->73719*/
/* 73706*/        OPC_CheckChild0Type, MVT::v4i16,
/* 73708*/        OPC_CheckType, MVT::v4f16,
/* 73710*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73712*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv4f16), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (sint_to_fp:{ *:[v4f16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (SCVTFv4f16:{ *:[v4f16] } V64:{ *:[v4i16] }:$Rn)
/* 73719*/      /*Scope*/ 13, /*->73733*/
/* 73720*/        OPC_CheckChild0Type, MVT::v8i16,
/* 73722*/        OPC_CheckType, MVT::v8f16,
/* 73724*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73726*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv8f16), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (sint_to_fp:{ *:[v8f16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                  // Dst: (SCVTFv8f16:{ *:[v8f16] } V128:{ *:[v8i16] }:$Rn)
/* 73733*/      /*Scope*/ 13, /*->73747*/
/* 73734*/        OPC_CheckChild0Type, MVT::v2i32,
/* 73736*/        OPC_CheckType, MVT::v2f32,
/* 73738*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 73740*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv2f32), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (sint_to_fp:{ *:[v2f32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (SCVTFv2f32:{ *:[v2f32] } V64:{ *:[v2i32] }:$Rn)
/* 73747*/      /*Scope*/ 13, /*->73761*/
/* 73748*/        OPC_CheckChild0Type, MVT::v4i32,
/* 73750*/        OPC_CheckType, MVT::v4f32,
/* 73752*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 73754*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv4f32), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (sint_to_fp:{ *:[v4f32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                  // Dst: (SCVTFv4f32:{ *:[v4f32] } V128:{ *:[v4i32] }:$Rn)
/* 73761*/      /*Scope*/ 13, /*->73775*/
/* 73762*/        OPC_CheckChild0Type, MVT::v2i64,
/* 73764*/        OPC_CheckType, MVT::v2f64,
/* 73766*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 73768*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv2f64), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (sint_to_fp:{ *:[v2f64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                  // Dst: (SCVTFv2f64:{ *:[v2f64] } V128:{ *:[v2i64] }:$Rn)
/* 73775*/      0, /*End of Scope*/
/* 73776*/    0, /*End of Scope*/
/* 73777*/  /*SwitchOpcode*/ 120|128,1/*248*/, TARGET_VAL(ISD::FADD),// ->74029
/* 73781*/    OPC_Scope, 15|128,1/*143*/, /*->73927*/ // 2 children in Scope
/* 73784*/      OPC_MoveChild0,
/* 73785*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 73788*/      OPC_RecordChild0, // #0 = $Rn
/* 73789*/      OPC_Scope, 56, /*->73847*/ // 2 children in Scope
/* 73791*/        OPC_CheckChild0Type, MVT::v2f64,
/* 73793*/        OPC_Scope, 25, /*->73820*/ // 2 children in Scope
/* 73795*/          OPC_CheckChild1Integer, 0, 
/* 73797*/          OPC_CheckChild1Type, MVT::i64,
/* 73799*/          OPC_MoveParent,
/* 73800*/          OPC_MoveChild1,
/* 73801*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 73804*/          OPC_CheckChild0Same, 0,
/* 73806*/          OPC_CheckChild1Integer, 1, 
/* 73808*/          OPC_CheckChild1Type, MVT::i64,
/* 73810*/          OPC_MoveParent,
/* 73811*/          OPC_CheckType, MVT::f64,
/* 73813*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2i64p), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fadd:{ *:[f64] } (vector_extract:{ *:[f64] } FPR128:{ *:[v2f64] }:$Rn, 0:{ *:[i64] }), (vector_extract:{ *:[f64] } FPR128:{ *:[v2f64] }:$Rn, 1:{ *:[i64] })) - Complexity = 19
                    // Dst: (FADDPv2i64p:{ *:[f64] } FPR128:{ *:[v2f64] }:$Rn)
/* 73820*/        /*Scope*/ 25, /*->73846*/
/* 73821*/          OPC_CheckChild1Integer, 1, 
/* 73823*/          OPC_CheckChild1Type, MVT::i64,
/* 73825*/          OPC_MoveParent,
/* 73826*/          OPC_MoveChild1,
/* 73827*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 73830*/          OPC_CheckChild0Same, 0,
/* 73832*/          OPC_CheckChild1Integer, 0, 
/* 73834*/          OPC_CheckChild1Type, MVT::i64,
/* 73836*/          OPC_MoveParent,
/* 73837*/          OPC_CheckType, MVT::f64,
/* 73839*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2i64p), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fadd:{ *:[f64] } (vector_extract:{ *:[f64] } FPR128:{ *:[v2f64] }:$Rn, 1:{ *:[i64] }), (vector_extract:{ *:[f64] } FPR128:{ *:[v2f64] }:$Rn, 0:{ *:[i64] })) - Complexity = 19
                    // Dst: (FADDPv2i64p:{ *:[f64] } FPR128:{ *:[v2f64] }:$Rn)
/* 73846*/        0, /*End of Scope*/
/* 73847*/      /*Scope*/ 78, /*->73926*/
/* 73848*/        OPC_CheckChild0Type, MVT::v4f32,
/* 73850*/        OPC_Scope, 36, /*->73888*/ // 2 children in Scope
/* 73852*/          OPC_CheckChild1Integer, 0, 
/* 73854*/          OPC_CheckChild1Type, MVT::i64,
/* 73856*/          OPC_MoveParent,
/* 73857*/          OPC_MoveChild1,
/* 73858*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 73861*/          OPC_CheckChild0Same, 0,
/* 73863*/          OPC_CheckChild1Integer, 1, 
/* 73865*/          OPC_CheckChild1Type, MVT::i64,
/* 73867*/          OPC_MoveParent,
/* 73868*/          OPC_CheckType, MVT::f32,
/* 73870*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73873*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 73881*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2i32p), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (fadd:{ *:[f32] } (vector_extract:{ *:[f32] } FPR128:{ *:[v4f32] }:$Rn, 0:{ *:[i64] }), (vector_extract:{ *:[f32] } FPR128:{ *:[v4f32] }:$Rn, 1:{ *:[i64] })) - Complexity = 19
                    // Dst: (FADDPv2i32p:{ *:[f32] } (EXTRACT_SUBREG:{ *:[i64] } FPR128:{ *:[v4f32] }:$Rn, dsub:{ *:[i32] }))
/* 73888*/        /*Scope*/ 36, /*->73925*/
/* 73889*/          OPC_CheckChild1Integer, 1, 
/* 73891*/          OPC_CheckChild1Type, MVT::i64,
/* 73893*/          OPC_MoveParent,
/* 73894*/          OPC_MoveChild1,
/* 73895*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 73898*/          OPC_CheckChild0Same, 0,
/* 73900*/          OPC_CheckChild1Integer, 0, 
/* 73902*/          OPC_CheckChild1Type, MVT::i64,
/* 73904*/          OPC_MoveParent,
/* 73905*/          OPC_CheckType, MVT::f32,
/* 73907*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 73910*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 73918*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDPv2i32p), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (fadd:{ *:[f32] } (vector_extract:{ *:[f32] } FPR128:{ *:[v4f32] }:$Rn, 1:{ *:[i64] }), (vector_extract:{ *:[f32] } FPR128:{ *:[v4f32] }:$Rn, 0:{ *:[i64] })) - Complexity = 19
                    // Dst: (FADDPv2i32p:{ *:[f32] } (EXTRACT_SUBREG:{ *:[i64] } FPR128:{ *:[v4f32] }:$Rn, dsub:{ *:[i32] }))
/* 73925*/        0, /*End of Scope*/
/* 73926*/      0, /*End of Scope*/
/* 73927*/    /*Scope*/ 100, /*->74028*/
/* 73928*/      OPC_RecordChild0, // #0 = $Rn
/* 73929*/      OPC_RecordChild1, // #1 = $Rm
/* 73930*/      OPC_SwitchType /*8 cases */, 10, MVT::f16,// ->73943
/* 73933*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 73935*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDHrr), 0,
                      MVT::f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                  // Dst: (FADDHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 73943*/      /*SwitchType*/ 10, MVT::f32,// ->73955
/* 73945*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 73947*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDSrr), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                  // Dst: (FADDSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 73955*/      /*SwitchType*/ 10, MVT::f64,// ->73967
/* 73957*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 73959*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDDrr), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                  // Dst: (FADDDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 73967*/      /*SwitchType*/ 10, MVT::v4f16,// ->73979
/* 73969*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73971*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                  // Dst: (FADDv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 73979*/      /*SwitchType*/ 10, MVT::v8f16,// ->73991
/* 73981*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 73983*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                  // Dst: (FADDv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 73991*/      /*SwitchType*/ 10, MVT::v2f32,// ->74003
/* 73993*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 73995*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                  // Dst: (FADDv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 74003*/      /*SwitchType*/ 10, MVT::v4f32,// ->74015
/* 74005*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74007*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                  // Dst: (FADDv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 74015*/      /*SwitchType*/ 10, MVT::v2f64,// ->74027
/* 74017*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74019*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FADDv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                  // Dst: (FADDv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 74027*/      0, // EndSwitchType
/* 74028*/    0, /*End of Scope*/
/* 74029*/  /*SwitchOpcode*/ 72|128,2/*328*/, TARGET_VAL(ISD::FDIV),// ->74361
/* 74033*/    OPC_Scope, 95|128,1/*223*/, /*->74259*/ // 2 children in Scope
/* 74036*/      OPC_MoveChild0,
/* 74037*/      OPC_SwitchOpcode /*2 cases */, 107, TARGET_VAL(ISD::SINT_TO_FP),// ->74148
/* 74041*/        OPC_RecordChild0, // #0 = $Rn
/* 74042*/        OPC_Scope, 51, /*->74095*/ // 2 children in Scope
/* 74044*/          OPC_CheckChild0Type, MVT::i32,
/* 74046*/          OPC_MoveParent,
/* 74047*/          OPC_RecordChild1, // #1 = $scale
/* 74048*/          OPC_SwitchType /*3 cases */, 13, MVT::f16,// ->74064
/* 74051*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 74053*/            OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 74056*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFSWHri), 0,
                          MVT::f16, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f16] } (sint_to_fp:{ *:[f16] } GPR32:{ *:[i32] }:$Rn), fixedpoint_f16_i32:{ *:[f16] }:$scale) - Complexity = 12
                      // Dst: (SCVTFSWHri:{ *:[f16] } GPR32:{ *:[i32] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)
/* 74064*/          /*SwitchType*/ 13, MVT::f32,// ->74079
/* 74066*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74068*/            OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 74071*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFSWSri), 0,
                          MVT::f32, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f32] } (sint_to_fp:{ *:[f32] } GPR32:{ *:[i32] }:$Rn), fixedpoint_f32_i32:{ *:[f32] }:$scale) - Complexity = 12
                      // Dst: (SCVTFSWSri:{ *:[f32] } GPR32:{ *:[i32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)
/* 74079*/          /*SwitchType*/ 13, MVT::f64,// ->74094
/* 74081*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74083*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 74086*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFSWDri), 0,
                          MVT::f64, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f64] } (sint_to_fp:{ *:[f64] } GPR32:{ *:[i32] }:$Rn), fixedpoint_f64_i32:{ *:[f64] }:$scale) - Complexity = 12
                      // Dst: (SCVTFSWDri:{ *:[f64] } GPR32:{ *:[i32] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)
/* 74094*/          0, // EndSwitchType
/* 74095*/        /*Scope*/ 51, /*->74147*/
/* 74096*/          OPC_CheckChild0Type, MVT::i64,
/* 74098*/          OPC_MoveParent,
/* 74099*/          OPC_RecordChild1, // #1 = $scale
/* 74100*/          OPC_SwitchType /*3 cases */, 13, MVT::f16,// ->74116
/* 74103*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 74105*/            OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 74108*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFSXHri), 0,
                          MVT::f16, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f16] } (sint_to_fp:{ *:[f16] } GPR64:{ *:[i64] }:$Rn), fixedpoint_f16_i64:{ *:[f16] }:$scale) - Complexity = 12
                      // Dst: (SCVTFSXHri:{ *:[f16] } GPR64:{ *:[i64] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)
/* 74116*/          /*SwitchType*/ 13, MVT::f32,// ->74131
/* 74118*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74120*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 74123*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFSXSri), 0,
                          MVT::f32, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f32] } (sint_to_fp:{ *:[f32] } GPR64:{ *:[i64] }:$Rn), fixedpoint_f32_i64:{ *:[f32] }:$scale) - Complexity = 12
                      // Dst: (SCVTFSXSri:{ *:[f32] } GPR64:{ *:[i64] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)
/* 74131*/          /*SwitchType*/ 13, MVT::f64,// ->74146
/* 74133*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74135*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 74138*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFSXDri), 0,
                          MVT::f64, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f64] } (sint_to_fp:{ *:[f64] } GPR64:{ *:[i64] }:$Rn), fixedpoint_f64_i64:{ *:[f64] }:$scale) - Complexity = 12
                      // Dst: (SCVTFSXDri:{ *:[f64] } GPR64:{ *:[i64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)
/* 74146*/          0, // EndSwitchType
/* 74147*/        0, /*End of Scope*/
/* 74148*/      /*SwitchOpcode*/ 107, TARGET_VAL(ISD::UINT_TO_FP),// ->74258
/* 74151*/        OPC_RecordChild0, // #0 = $Rn
/* 74152*/        OPC_Scope, 51, /*->74205*/ // 2 children in Scope
/* 74154*/          OPC_CheckChild0Type, MVT::i32,
/* 74156*/          OPC_MoveParent,
/* 74157*/          OPC_RecordChild1, // #1 = $scale
/* 74158*/          OPC_SwitchType /*3 cases */, 13, MVT::f16,// ->74174
/* 74161*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 74163*/            OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 74166*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFSWHri), 0,
                          MVT::f16, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f16] } (uint_to_fp:{ *:[f16] } GPR32:{ *:[i32] }:$Rn), fixedpoint_f16_i32:{ *:[f16] }:$scale) - Complexity = 12
                      // Dst: (UCVTFSWHri:{ *:[f16] } GPR32:{ *:[i32] }:$Rn, fixedpoint_f16_i32:{ *:[f16] }:$scale)
/* 74174*/          /*SwitchType*/ 13, MVT::f32,// ->74189
/* 74176*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74178*/            OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 74181*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFSWSri), 0,
                          MVT::f32, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f32] } (uint_to_fp:{ *:[f32] } GPR32:{ *:[i32] }:$Rn), fixedpoint_f32_i32:{ *:[f32] }:$scale) - Complexity = 12
                      // Dst: (UCVTFSWSri:{ *:[f32] } GPR32:{ *:[i32] }:$Rn, fixedpoint_f32_i32:{ *:[f32] }:$scale)
/* 74189*/          /*SwitchType*/ 13, MVT::f64,// ->74204
/* 74191*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74193*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectCVTFixedPosOperand<32>:$scale #2
/* 74196*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFSWDri), 0,
                          MVT::f64, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f64] } (uint_to_fp:{ *:[f64] } GPR32:{ *:[i32] }:$Rn), fixedpoint_f64_i32:{ *:[f64] }:$scale) - Complexity = 12
                      // Dst: (UCVTFSWDri:{ *:[f64] } GPR32:{ *:[i32] }:$Rn, fixedpoint_f64_i32:{ *:[f64] }:$scale)
/* 74204*/          0, // EndSwitchType
/* 74205*/        /*Scope*/ 51, /*->74257*/
/* 74206*/          OPC_CheckChild0Type, MVT::i64,
/* 74208*/          OPC_MoveParent,
/* 74209*/          OPC_RecordChild1, // #1 = $scale
/* 74210*/          OPC_SwitchType /*3 cases */, 13, MVT::f16,// ->74226
/* 74213*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 74215*/            OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 74218*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFSXHri), 0,
                          MVT::f16, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f16] } (uint_to_fp:{ *:[f16] } GPR64:{ *:[i64] }:$Rn), fixedpoint_f16_i64:{ *:[f16] }:$scale) - Complexity = 12
                      // Dst: (UCVTFSXHri:{ *:[f16] } GPR64:{ *:[i64] }:$Rn, fixedpoint_f16_i64:{ *:[f16] }:$scale)
/* 74226*/          /*SwitchType*/ 13, MVT::f32,// ->74241
/* 74228*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74230*/            OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 74233*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFSXSri), 0,
                          MVT::f32, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f32] } (uint_to_fp:{ *:[f32] } GPR64:{ *:[i64] }:$Rn), fixedpoint_f32_i64:{ *:[f32] }:$scale) - Complexity = 12
                      // Dst: (UCVTFSXSri:{ *:[f32] } GPR64:{ *:[i64] }:$Rn, fixedpoint_f32_i64:{ *:[f32] }:$scale)
/* 74241*/          /*SwitchType*/ 13, MVT::f64,// ->74256
/* 74243*/            OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74245*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectCVTFixedPosOperand<64>:$scale #2
/* 74248*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFSXDri), 0,
                          MVT::f64, 2/*#Ops*/, 0, 2, 
                      // Src: (fdiv:{ *:[f64] } (uint_to_fp:{ *:[f64] } GPR64:{ *:[i64] }:$Rn), fixedpoint_f64_i64:{ *:[f64] }:$scale) - Complexity = 12
                      // Dst: (UCVTFSXDri:{ *:[f64] } GPR64:{ *:[i64] }:$Rn, fixedpoint_f64_i64:{ *:[f64] }:$scale)
/* 74256*/          0, // EndSwitchType
/* 74257*/        0, /*End of Scope*/
/* 74258*/      0, // EndSwitchOpcode
/* 74259*/    /*Scope*/ 100, /*->74360*/
/* 74260*/      OPC_RecordChild0, // #0 = $Rn
/* 74261*/      OPC_RecordChild1, // #1 = $Rm
/* 74262*/      OPC_SwitchType /*8 cases */, 10, MVT::f16,// ->74275
/* 74265*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 74267*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FDIVHrr), 0,
                      MVT::f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                  // Dst: (FDIVHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 74275*/      /*SwitchType*/ 10, MVT::f32,// ->74287
/* 74277*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74279*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FDIVSrr), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                  // Dst: (FDIVSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 74287*/      /*SwitchType*/ 10, MVT::f64,// ->74299
/* 74289*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74291*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FDIVDrr), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                  // Dst: (FDIVDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 74299*/      /*SwitchType*/ 10, MVT::v4f16,// ->74311
/* 74301*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74303*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FDIVv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                  // Dst: (FDIVv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 74311*/      /*SwitchType*/ 10, MVT::v8f16,// ->74323
/* 74313*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74315*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FDIVv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                  // Dst: (FDIVv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 74323*/      /*SwitchType*/ 10, MVT::v2f32,// ->74335
/* 74325*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74327*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FDIVv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                  // Dst: (FDIVv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 74335*/      /*SwitchType*/ 10, MVT::v4f32,// ->74347
/* 74337*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74339*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FDIVv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                  // Dst: (FDIVv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 74347*/      /*SwitchType*/ 10, MVT::v2f64,// ->74359
/* 74349*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74351*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FDIVv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                  // Dst: (FDIVv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 74359*/      0, // EndSwitchType
/* 74360*/    0, /*End of Scope*/
/* 74361*/  /*SwitchOpcode*/ 42|128,6/*810*/, TARGET_VAL(ISD::FMUL),// ->75175
/* 74365*/    OPC_Scope, 95, /*->74462*/ // 7 children in Scope
/* 74367*/      OPC_RecordChild0, // #0 = $Rn
/* 74368*/      OPC_MoveChild1,
/* 74369*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 74372*/      OPC_RecordChild0, // #1 = $Rm
/* 74373*/      OPC_Scope, 28, /*->74403*/ // 3 children in Scope
/* 74375*/        OPC_CheckChild0Type, MVT::v8f16,
/* 74377*/        OPC_RecordChild1, // #2 = $idx
/* 74378*/        OPC_MoveChild1,
/* 74379*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74382*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 74384*/        OPC_CheckType, MVT::i64,
/* 74386*/        OPC_MoveParent,
/* 74387*/        OPC_MoveParent,
/* 74388*/        OPC_CheckType, MVT::f16,
/* 74390*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74392*/        OPC_EmitConvertToTarget, 2,
/* 74394*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv1i16_indexed), 0,
                      MVT::f16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (fmul:{ *:[f16] } FPR16Op:{ *:[f16] }:$Rn, (vector_extract:{ *:[f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 10
                  // Dst: (FMULv1i16_indexed:{ *:[f16] } FPR16Op:{ *:[f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74403*/      /*Scope*/ 28, /*->74432*/
/* 74404*/        OPC_CheckChild0Type, MVT::v4f32,
/* 74406*/        OPC_RecordChild1, // #2 = $idx
/* 74407*/        OPC_MoveChild1,
/* 74408*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74411*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 74413*/        OPC_CheckType, MVT::i64,
/* 74415*/        OPC_MoveParent,
/* 74416*/        OPC_MoveParent,
/* 74417*/        OPC_CheckType, MVT::f32,
/* 74419*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74421*/        OPC_EmitConvertToTarget, 2,
/* 74423*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv1i32_indexed), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (fmul:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rn, (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 10
                  // Dst: (FMULv1i32_indexed:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74432*/      /*Scope*/ 28, /*->74461*/
/* 74433*/        OPC_CheckChild0Type, MVT::v2f64,
/* 74435*/        OPC_RecordChild1, // #2 = $idx
/* 74436*/        OPC_MoveChild1,
/* 74437*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74440*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 74442*/        OPC_CheckType, MVT::i64,
/* 74444*/        OPC_MoveParent,
/* 74445*/        OPC_MoveParent,
/* 74446*/        OPC_CheckType, MVT::f64,
/* 74448*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74450*/        OPC_EmitConvertToTarget, 2,
/* 74452*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv1i64_indexed), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (fmul:{ *:[f64] } FPR64Op:{ *:[f64] }:$Rn, (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)) - Complexity = 10
                  // Dst: (FMULv1i64_indexed:{ *:[f64] } FPR64Op:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74461*/      0, /*End of Scope*/
/* 74462*/    /*Scope*/ 97, /*->74560*/
/* 74463*/      OPC_MoveChild0,
/* 74464*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 74467*/      OPC_RecordChild0, // #0 = $Rm
/* 74468*/      OPC_Scope, 29, /*->74499*/ // 3 children in Scope
/* 74470*/        OPC_CheckChild0Type, MVT::v8f16,
/* 74472*/        OPC_RecordChild1, // #1 = $idx
/* 74473*/        OPC_MoveChild1,
/* 74474*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74477*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 74479*/        OPC_CheckType, MVT::i64,
/* 74481*/        OPC_MoveParent,
/* 74482*/        OPC_MoveParent,
/* 74483*/        OPC_RecordChild1, // #2 = $Rn
/* 74484*/        OPC_CheckType, MVT::f16,
/* 74486*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74488*/        OPC_EmitConvertToTarget, 1,
/* 74490*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv1i16_indexed), 0,
                      MVT::f16, 3/*#Ops*/, 2, 0, 3, 
                  // Src: (fmul:{ *:[f16] } (vector_extract:{ *:[f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), FPR16Op:{ *:[f16] }:$Rn) - Complexity = 10
                  // Dst: (FMULv1i16_indexed:{ *:[f16] } FPR16Op:{ *:[f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74499*/      /*Scope*/ 29, /*->74529*/
/* 74500*/        OPC_CheckChild0Type, MVT::v4f32,
/* 74502*/        OPC_RecordChild1, // #1 = $idx
/* 74503*/        OPC_MoveChild1,
/* 74504*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74507*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 74509*/        OPC_CheckType, MVT::i64,
/* 74511*/        OPC_MoveParent,
/* 74512*/        OPC_MoveParent,
/* 74513*/        OPC_RecordChild1, // #2 = $Rn
/* 74514*/        OPC_CheckType, MVT::f32,
/* 74516*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74518*/        OPC_EmitConvertToTarget, 1,
/* 74520*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv1i32_indexed), 0,
                      MVT::f32, 3/*#Ops*/, 2, 0, 3, 
                  // Src: (fmul:{ *:[f32] } (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), FPR32Op:{ *:[f32] }:$Rn) - Complexity = 10
                  // Dst: (FMULv1i32_indexed:{ *:[f32] } FPR32Op:{ *:[f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74529*/      /*Scope*/ 29, /*->74559*/
/* 74530*/        OPC_CheckChild0Type, MVT::v2f64,
/* 74532*/        OPC_RecordChild1, // #1 = $idx
/* 74533*/        OPC_MoveChild1,
/* 74534*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74537*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 74539*/        OPC_CheckType, MVT::i64,
/* 74541*/        OPC_MoveParent,
/* 74542*/        OPC_MoveParent,
/* 74543*/        OPC_RecordChild1, // #2 = $Rn
/* 74544*/        OPC_CheckType, MVT::f64,
/* 74546*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74548*/        OPC_EmitConvertToTarget, 1,
/* 74550*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv1i64_indexed), 0,
                      MVT::f64, 3/*#Ops*/, 2, 0, 3, 
                  // Src: (fmul:{ *:[f64] } (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), FPR64Op:{ *:[f64] }:$Rn) - Complexity = 10
                  // Dst: (FMULv1i64_indexed:{ *:[f64] } FPR64Op:{ *:[f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74559*/      0, /*End of Scope*/
/* 74560*/    /*Scope*/ 50|128,1/*178*/, /*->74740*/
/* 74562*/      OPC_RecordChild0, // #0 = $Rn
/* 74563*/      OPC_Scope, 39, /*->74604*/ // 2 children in Scope
/* 74565*/        OPC_RecordChild1, // #1 = $Rm
/* 74566*/        OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->74579
/* 74569*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 74571*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULHrr), 0,
                        MVT::f16, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                    // Dst: (FMULHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 74579*/        /*SwitchType*/ 10, MVT::f32,// ->74591
/* 74581*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74583*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULSrr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                    // Dst: (FMULSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 74591*/        /*SwitchType*/ 10, MVT::f64,// ->74603
/* 74593*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 74595*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULDrr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                    // Dst: (FMULDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 74603*/        0, // EndSwitchType
/* 74604*/      /*Scope*/ 5|128,1/*133*/, /*->74739*/
/* 74606*/        OPC_MoveChild1,
/* 74607*/        OPC_SwitchOpcode /*3 cases */, 46, TARGET_VAL(AArch64ISD::DUPLANE16),// ->74657
/* 74611*/          OPC_RecordChild0, // #1 = $Rm
/* 74612*/          OPC_CheckChild0Type, MVT::v8f16,
/* 74614*/          OPC_RecordChild1, // #2 = $idx
/* 74615*/          OPC_MoveChild1,
/* 74616*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74619*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 74621*/          OPC_CheckType, MVT::i64,
/* 74623*/          OPC_MoveParent,
/* 74624*/          OPC_MoveParent,
/* 74625*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f16,// ->74641
/* 74628*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74630*/            OPC_EmitConvertToTarget, 2,
/* 74632*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv4i16_indexed), 0,
                          MVT::v4f16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (fmul:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, (AArch64duplane16:{ *:[v4f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 10
                      // Dst: (FMULv4i16_indexed:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74641*/          /*SwitchType*/ 13, MVT::v8f16,// ->74656
/* 74643*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74645*/            OPC_EmitConvertToTarget, 2,
/* 74647*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv8i16_indexed), 0,
                          MVT::v8f16, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (fmul:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, (AArch64duplane16:{ *:[v8f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx)) - Complexity = 10
                      // Dst: (FMULv8i16_indexed:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74656*/          0, // EndSwitchType
/* 74657*/        /*SwitchOpcode*/ 46, TARGET_VAL(AArch64ISD::DUPLANE32),// ->74706
/* 74660*/          OPC_RecordChild0, // #1 = $Rm
/* 74661*/          OPC_CheckChild0Type, MVT::v4f32,
/* 74663*/          OPC_RecordChild1, // #2 = $idx
/* 74664*/          OPC_MoveChild1,
/* 74665*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74668*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 74670*/          OPC_CheckType, MVT::i64,
/* 74672*/          OPC_MoveParent,
/* 74673*/          OPC_MoveParent,
/* 74674*/          OPC_SwitchType /*2 cases */, 13, MVT::v2f32,// ->74690
/* 74677*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74679*/            OPC_EmitConvertToTarget, 2,
/* 74681*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2i32_indexed), 0,
                          MVT::v2f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (fmul:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 10
                      // Dst: (FMULv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74690*/          /*SwitchType*/ 13, MVT::v4f32,// ->74705
/* 74692*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74694*/            OPC_EmitConvertToTarget, 2,
/* 74696*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv4i32_indexed), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (fmul:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx)) - Complexity = 10
                      // Dst: (FMULv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74705*/          0, // EndSwitchType
/* 74706*/        /*SwitchOpcode*/ 29, TARGET_VAL(AArch64ISD::DUPLANE64),// ->74738
/* 74709*/          OPC_RecordChild0, // #1 = $Rm
/* 74710*/          OPC_CheckChild0Type, MVT::v2f64,
/* 74712*/          OPC_RecordChild1, // #2 = $idx
/* 74713*/          OPC_MoveChild1,
/* 74714*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74717*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 74719*/          OPC_CheckType, MVT::i64,
/* 74721*/          OPC_MoveParent,
/* 74722*/          OPC_MoveParent,
/* 74723*/          OPC_CheckType, MVT::v2f64,
/* 74725*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74727*/          OPC_EmitConvertToTarget, 2,
/* 74729*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2i64_indexed), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                    // Src: (fmul:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)) - Complexity = 10
                    // Dst: (FMULv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74738*/        0, // EndSwitchOpcode
/* 74739*/      0, /*End of Scope*/
/* 74740*/    /*Scope*/ 8|128,1/*136*/, /*->74878*/
/* 74742*/      OPC_MoveChild0,
/* 74743*/      OPC_SwitchOpcode /*3 cases */, 47, TARGET_VAL(AArch64ISD::DUPLANE16),// ->74794
/* 74747*/        OPC_RecordChild0, // #0 = $Rm
/* 74748*/        OPC_CheckChild0Type, MVT::v8f16,
/* 74750*/        OPC_RecordChild1, // #1 = $idx
/* 74751*/        OPC_MoveChild1,
/* 74752*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74755*/        OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 74757*/        OPC_CheckType, MVT::i64,
/* 74759*/        OPC_MoveParent,
/* 74760*/        OPC_MoveParent,
/* 74761*/        OPC_RecordChild1, // #2 = $Rn
/* 74762*/        OPC_SwitchType /*2 cases */, 13, MVT::v4f16,// ->74778
/* 74765*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74767*/          OPC_EmitConvertToTarget, 1,
/* 74769*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv4i16_indexed), 0,
                        MVT::v4f16, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (fmul:{ *:[v4f16] } (AArch64duplane16:{ *:[v4f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V64:{ *:[v4f16] }:$Rn) - Complexity = 10
                    // Dst: (FMULv4i16_indexed:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74778*/        /*SwitchType*/ 13, MVT::v8f16,// ->74793
/* 74780*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 74782*/          OPC_EmitConvertToTarget, 1,
/* 74784*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv8i16_indexed), 0,
                        MVT::v8f16, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (fmul:{ *:[v8f16] } (AArch64duplane16:{ *:[v8f16] } V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx), V128:{ *:[v8f16] }:$Rn) - Complexity = 10
                    // Dst: (FMULv8i16_indexed:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128_lo:{ *:[v8f16] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74793*/        0, // EndSwitchType
/* 74794*/      /*SwitchOpcode*/ 47, TARGET_VAL(AArch64ISD::DUPLANE32),// ->74844
/* 74797*/        OPC_RecordChild0, // #0 = $Rm
/* 74798*/        OPC_CheckChild0Type, MVT::v4f32,
/* 74800*/        OPC_RecordChild1, // #1 = $idx
/* 74801*/        OPC_MoveChild1,
/* 74802*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74805*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 74807*/        OPC_CheckType, MVT::i64,
/* 74809*/        OPC_MoveParent,
/* 74810*/        OPC_MoveParent,
/* 74811*/        OPC_RecordChild1, // #2 = $Rn
/* 74812*/        OPC_SwitchType /*2 cases */, 13, MVT::v2f32,// ->74828
/* 74815*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74817*/          OPC_EmitConvertToTarget, 1,
/* 74819*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2i32_indexed), 0,
                        MVT::v2f32, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (fmul:{ *:[v2f32] } (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V64:{ *:[v2f32] }:$Rn) - Complexity = 10
                    // Dst: (FMULv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74828*/        /*SwitchType*/ 13, MVT::v4f32,// ->74843
/* 74830*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74832*/          OPC_EmitConvertToTarget, 1,
/* 74834*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv4i32_indexed), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 0, 3, 
                    // Src: (fmul:{ *:[v4f32] } (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx), V128:{ *:[v4f32] }:$Rn) - Complexity = 10
                    // Dst: (FMULv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74843*/        0, // EndSwitchType
/* 74844*/      /*SwitchOpcode*/ 30, TARGET_VAL(AArch64ISD::DUPLANE64),// ->74877
/* 74847*/        OPC_RecordChild0, // #0 = $Rm
/* 74848*/        OPC_CheckChild0Type, MVT::v2f64,
/* 74850*/        OPC_RecordChild1, // #1 = $idx
/* 74851*/        OPC_MoveChild1,
/* 74852*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 74855*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 74857*/        OPC_CheckType, MVT::i64,
/* 74859*/        OPC_MoveParent,
/* 74860*/        OPC_MoveParent,
/* 74861*/        OPC_RecordChild1, // #2 = $Rn
/* 74862*/        OPC_CheckType, MVT::v2f64,
/* 74864*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 74866*/        OPC_EmitConvertToTarget, 1,
/* 74868*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2i64_indexed), 0,
                      MVT::v2f64, 3/*#Ops*/, 2, 0, 3, 
                  // Src: (fmul:{ *:[v2f64] } (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx), V128:{ *:[v2f64] }:$Rn) - Complexity = 10
                  // Dst: (FMULv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i64] }):$idx)
/* 74877*/      0, // EndSwitchOpcode
/* 74878*/    /*Scope*/ 114, /*->74993*/
/* 74879*/      OPC_RecordChild0, // #0 = $Rn
/* 74880*/      OPC_MoveChild1,
/* 74881*/      OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUP),
/* 74884*/      OPC_RecordChild0, // #1 = $Rm
/* 74885*/      OPC_Scope, 69, /*->74956*/ // 2 children in Scope
/* 74887*/        OPC_CheckChild0Type, MVT::f32,
/* 74889*/        OPC_MoveParent,
/* 74890*/        OPC_SwitchType /*2 cases */, 30, MVT::v2f32,// ->74923
/* 74893*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 74899*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 74902*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 74911*/          OPC_EmitInteger, MVT::i64, 0, 
/* 74914*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2i32_indexed), 0,
                        MVT::v2f32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (fmul:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (AArch64dup:{ *:[v2f32] } FPR32:{ *:[f32] }:$Rm)) - Complexity = 6
                    // Dst: (FMULv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 74923*/        /*SwitchType*/ 30, MVT::v4f32,// ->74955
/* 74925*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 74931*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 74934*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 74943*/          OPC_EmitInteger, MVT::i64, 0, 
/* 74946*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv4i32_indexed), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (fmul:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (AArch64dup:{ *:[v4f32] } FPR32:{ *:[f32] }:$Rm)) - Complexity = 6
                    // Dst: (FMULv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 74955*/        0, // EndSwitchType
/* 74956*/      /*Scope*/ 35, /*->74992*/
/* 74957*/        OPC_CheckChild0Type, MVT::f64,
/* 74959*/        OPC_MoveParent,
/* 74960*/        OPC_CheckType, MVT::v2f64,
/* 74962*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 74968*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 74971*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 74980*/        OPC_EmitInteger, MVT::i64, 0, 
/* 74983*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2i64_indexed), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 4, 5, 
                  // Src: (fmul:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (AArch64dup:{ *:[v2f64] } FPR64:{ *:[f64] }:$Rm)) - Complexity = 6
                  // Dst: (FMULv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR64:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 74992*/      0, /*End of Scope*/
/* 74993*/    /*Scope*/ 115, /*->75109*/
/* 74994*/      OPC_MoveChild0,
/* 74995*/      OPC_CheckOpcode, TARGET_VAL(AArch64ISD::DUP),
/* 74998*/      OPC_RecordChild0, // #0 = $Rm
/* 74999*/      OPC_Scope, 70, /*->75071*/ // 2 children in Scope
/* 75001*/        OPC_CheckChild0Type, MVT::f32,
/* 75003*/        OPC_MoveParent,
/* 75004*/        OPC_RecordChild1, // #1 = $Rn
/* 75005*/        OPC_SwitchType /*2 cases */, 30, MVT::v2f32,// ->75038
/* 75008*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 75014*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 75017*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 75026*/          OPC_EmitInteger, MVT::i64, 0, 
/* 75029*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2i32_indexed), 0,
                        MVT::v2f32, 3/*#Ops*/, 1, 4, 5, 
                    // Src: (fmul:{ *:[v2f32] } (AArch64dup:{ *:[v2f32] } FPR32:{ *:[f32] }:$Rm), V64:{ *:[v2f32] }:$Rn) - Complexity = 6
                    // Dst: (FMULv2i32_indexed:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 75038*/        /*SwitchType*/ 30, MVT::v4f32,// ->75070
/* 75040*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 75046*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 75049*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 75058*/          OPC_EmitInteger, MVT::i64, 0, 
/* 75061*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv4i32_indexed), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 4, 5, 
                    // Src: (fmul:{ *:[v4f32] } (AArch64dup:{ *:[v4f32] } FPR32:{ *:[f32] }:$Rm), V128:{ *:[v4f32] }:$Rn) - Complexity = 6
                    // Dst: (FMULv4i32_indexed:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 75070*/        0, // EndSwitchType
/* 75071*/      /*Scope*/ 36, /*->75108*/
/* 75072*/        OPC_CheckChild0Type, MVT::f64,
/* 75074*/        OPC_MoveParent,
/* 75075*/        OPC_RecordChild1, // #1 = $Rn
/* 75076*/        OPC_CheckType, MVT::v2f64,
/* 75078*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 75084*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 75087*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 75096*/        OPC_EmitInteger, MVT::i64, 0, 
/* 75099*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2i64_indexed), 0,
                      MVT::v2f64, 3/*#Ops*/, 1, 4, 5, 
                  // Src: (fmul:{ *:[v2f64] } (AArch64dup:{ *:[v2f64] } FPR64:{ *:[f64] }:$Rm), V128:{ *:[v2f64] }:$Rn) - Complexity = 6
                  // Dst: (FMULv2i64_indexed:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR64:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 75108*/      0, /*End of Scope*/
/* 75109*/    /*Scope*/ 64, /*->75174*/
/* 75110*/      OPC_RecordChild0, // #0 = $Rn
/* 75111*/      OPC_RecordChild1, // #1 = $Rm
/* 75112*/      OPC_SwitchType /*5 cases */, 10, MVT::v4f16,// ->75125
/* 75115*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75117*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                  // Dst: (FMULv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 75125*/      /*SwitchType*/ 10, MVT::v8f16,// ->75137
/* 75127*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75129*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                  // Dst: (FMULv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 75137*/      /*SwitchType*/ 10, MVT::v2f32,// ->75149
/* 75139*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75141*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                  // Dst: (FMULv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 75149*/      /*SwitchType*/ 10, MVT::v4f32,// ->75161
/* 75151*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75153*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                  // Dst: (FMULv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 75161*/      /*SwitchType*/ 10, MVT::v2f64,// ->75173
/* 75163*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75165*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMULv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                  // Dst: (FMULv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 75173*/      0, // EndSwitchType
/* 75174*/    0, /*End of Scope*/
/* 75175*/  /*SwitchOpcode*/ 36, TARGET_VAL(AArch64ISD::MOVIedit),// ->75214
/* 75178*/    OPC_RecordChild0, // #0 = $shift
/* 75179*/    OPC_MoveChild0,
/* 75180*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 75183*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 75185*/    OPC_CheckType, MVT::i32,
/* 75187*/    OPC_MoveParent,
/* 75188*/    OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->75200
/* 75191*/      OPC_EmitConvertToTarget, 0,
/* 75193*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                    MVT::f64, 1/*#Ops*/, 1, 
                // Src: (AArch64movi_edit:{ *:[f64] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$shift) - Complexity = 7
                // Dst: (MOVID:{ *:[f64] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$shift)
/* 75200*/    /*SwitchType*/ 11, MVT::v2i64,// ->75213
/* 75202*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75204*/      OPC_EmitConvertToTarget, 0,
/* 75206*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                    MVT::v2i64, 1/*#Ops*/, 1, 
                // Src: (AArch64movi_edit:{ *:[v2i64] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                // Dst: (MOVIv2d_ns:{ *:[v2i64] } (imm:{ *:[i32] }):$imm8)
/* 75213*/    0, // EndSwitchType
/* 75214*/  /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ISD::FNEG),// ->75408
/* 75218*/    OPC_Scope, 95, /*->75315*/ // 2 children in Scope
/* 75220*/      OPC_MoveChild0,
/* 75221*/      OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::FMUL),// ->75266
/* 75225*/        OPC_RecordChild0, // #0 = $Rn
/* 75226*/        OPC_RecordChild1, // #1 = $Rm
/* 75227*/        OPC_MoveParent,
/* 75228*/        OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->75241
/* 75231*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 75233*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMULHrr), 0,
                        MVT::f16, 2/*#Ops*/, 0, 1, 
                    // Src: (fneg:{ *:[f16] } (fmul:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)) - Complexity = 6
                    // Dst: (FNMULHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 75241*/        /*SwitchType*/ 10, MVT::f32,// ->75253
/* 75243*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75245*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMULSrr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fneg:{ *:[f32] } (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)) - Complexity = 6
                    // Dst: (FNMULSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 75253*/        /*SwitchType*/ 10, MVT::f64,// ->75265
/* 75255*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75257*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMULDrr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fneg:{ *:[f64] } (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)) - Complexity = 6
                    // Dst: (FNMULDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 75265*/        0, // EndSwitchType
/* 75266*/      /*SwitchOpcode*/ 45, TARGET_VAL(ISD::FMA),// ->75314
/* 75269*/        OPC_RecordChild0, // #0 = $Rn
/* 75270*/        OPC_RecordChild1, // #1 = $Rm
/* 75271*/        OPC_RecordChild2, // #2 = $Ra
/* 75272*/        OPC_MoveParent,
/* 75273*/        OPC_SwitchType /*3 cases */, 11, MVT::f16,// ->75287
/* 75276*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 75278*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMADDHrrr), 0,
                        MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (fneg:{ *:[f16] } (fma:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, FPR16:{ *:[f16] }:$Ra)) - Complexity = 6
                    // Dst: (FNMADDHrrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, FPR16:{ *:[f16] }:$Ra)
/* 75287*/        /*SwitchType*/ 11, MVT::f32,// ->75300
/* 75289*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75291*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMADDSrrr), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (fneg:{ *:[f32] } (fma:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra)) - Complexity = 6
                    // Dst: (FNMADDSrrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, FPR32:{ *:[f32] }:$Ra)
/* 75300*/        /*SwitchType*/ 11, MVT::f64,// ->75313
/* 75302*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75304*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNMADDDrrr), 0,
                        MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (fneg:{ *:[f64] } (fma:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra)) - Complexity = 6
                    // Dst: (FNMADDDrrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, FPR64:{ *:[f64] }:$Ra)
/* 75313*/        0, // EndSwitchType
/* 75314*/      0, // EndSwitchOpcode
/* 75315*/    /*Scope*/ 91, /*->75407*/
/* 75316*/      OPC_RecordChild0, // #0 = $Rn
/* 75317*/      OPC_SwitchType /*8 cases */, 9, MVT::f16,// ->75329
/* 75320*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 75322*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNEGHr), 0,
                      MVT::f16, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                  // Dst: (FNEGHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 75329*/      /*SwitchType*/ 9, MVT::f32,// ->75340
/* 75331*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75333*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNEGSr), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                  // Dst: (FNEGSr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 75340*/      /*SwitchType*/ 9, MVT::f64,// ->75351
/* 75342*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75344*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNEGDr), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                  // Dst: (FNEGDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 75351*/      /*SwitchType*/ 9, MVT::v4f16,// ->75362
/* 75353*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75355*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNEGv4f16), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                  // Dst: (FNEGv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 75362*/      /*SwitchType*/ 9, MVT::v8f16,// ->75373
/* 75364*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75366*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNEGv8f16), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                  // Dst: (FNEGv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 75373*/      /*SwitchType*/ 9, MVT::v2f32,// ->75384
/* 75375*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75377*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNEGv2f32), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                  // Dst: (FNEGv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 75384*/      /*SwitchType*/ 9, MVT::v4f32,// ->75395
/* 75386*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75388*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNEGv4f32), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                  // Dst: (FNEGv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 75395*/      /*SwitchType*/ 9, MVT::v2f64,// ->75406
/* 75397*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75399*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FNEGv2f64), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                  // Dst: (FNEGv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 75406*/      0, // EndSwitchType
/* 75407*/    0, /*End of Scope*/
/* 75408*/  /*SwitchOpcode*/ 82|128,1/*210*/, TARGET_VAL(ISD::FABS),// ->75622
/* 75412*/    OPC_Scope, 41, /*->75455*/ // 4 children in Scope
/* 75414*/      OPC_MoveChild0,
/* 75415*/      OPC_CheckOpcode, TARGET_VAL(ISD::FSUB),
/* 75418*/      OPC_RecordChild0, // #0 = $Rn
/* 75419*/      OPC_RecordChild1, // #1 = $Rm
/* 75420*/      OPC_MoveParent,
/* 75421*/      OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->75434
/* 75424*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 75426*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABD16), 0,
                      MVT::f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fabs:{ *:[f16] } (fsub:{ *:[f16] } f16:{ *:[f16] }:$Rn, f16:{ *:[f16] }:$Rm)) - Complexity = 6
                  // Dst: (FABD16:{ *:[f16] } f16:{ *:[f16] }:$Rn, f16:{ *:[f16] }:$Rm)
/* 75434*/      /*SwitchType*/ 8, MVT::f32,// ->75444
/* 75436*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABD32), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fabs:{ *:[f32] } (fsub:{ *:[f32] } f32:{ *:[f32] }:$Rn, f32:{ *:[f32] }:$Rm)) - Complexity = 6
                  // Dst: (FABD32:{ *:[f32] } f32:{ *:[f32] }:$Rn, f32:{ *:[f32] }:$Rm)
/* 75444*/      /*SwitchType*/ 8, MVT::f64,// ->75454
/* 75446*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABD64), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fabs:{ *:[f64] } (fsub:{ *:[f64] } f64:{ *:[f64] }:$Rn, f64:{ *:[f64] }:$Rm)) - Complexity = 6
                  // Dst: (FABD64:{ *:[f64] } f64:{ *:[f64] }:$Rn, f64:{ *:[f64] }:$Rm)
/* 75454*/      0, // EndSwitchType
/* 75455*/    /*Scope*/ 36, /*->75492*/
/* 75456*/      OPC_RecordChild0, // #0 = $Rn
/* 75457*/      OPC_SwitchType /*3 cases */, 9, MVT::f16,// ->75469
/* 75460*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 75462*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABSHr), 0,
                      MVT::f16, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                  // Dst: (FABSHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 75469*/      /*SwitchType*/ 9, MVT::f32,// ->75480
/* 75471*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75473*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABSSr), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                  // Dst: (FABSSr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 75480*/      /*SwitchType*/ 9, MVT::f64,// ->75491
/* 75482*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75484*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABSDr), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                  // Dst: (FABSDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 75491*/      0, // EndSwitchType
/* 75492*/    /*Scope*/ 69, /*->75562*/
/* 75493*/      OPC_MoveChild0,
/* 75494*/      OPC_CheckOpcode, TARGET_VAL(ISD::FSUB),
/* 75497*/      OPC_RecordChild0, // #0 = $Rn
/* 75498*/      OPC_RecordChild1, // #1 = $Rm
/* 75499*/      OPC_MoveParent,
/* 75500*/      OPC_SwitchType /*5 cases */, 10, MVT::v2f32,// ->75513
/* 75503*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75505*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv2f32), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fabs:{ *:[v2f32] } (fsub:{ *:[v2f32] } v2f32:{ *:[v2f32] }:$Rn, v2f32:{ *:[v2f32] }:$Rm)) - Complexity = 6
                  // Dst: (FABDv2f32:{ *:[v2f32] } v2f32:{ *:[v2f32] }:$Rn, v2f32:{ *:[v2f32] }:$Rm)
/* 75513*/      /*SwitchType*/ 10, MVT::v4f32,// ->75525
/* 75515*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75517*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fabs:{ *:[v4f32] } (fsub:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$Rn, v4f32:{ *:[v4f32] }:$Rm)) - Complexity = 6
                  // Dst: (FABDv4f32:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$Rn, v4f32:{ *:[v4f32] }:$Rm)
/* 75525*/      /*SwitchType*/ 10, MVT::v2f64,// ->75537
/* 75527*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75529*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv2f64), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fabs:{ *:[v2f64] } (fsub:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$Rn, v2f64:{ *:[v2f64] }:$Rm)) - Complexity = 6
                  // Dst: (FABDv2f64:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$Rn, v2f64:{ *:[v2f64] }:$Rm)
/* 75537*/      /*SwitchType*/ 10, MVT::v4f16,// ->75549
/* 75539*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75541*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv4f16), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fabs:{ *:[v4f16] } (fsub:{ *:[v4f16] } v4f16:{ *:[v4f16] }:$Rn, v4f16:{ *:[v4f16] }:$Rm)) - Complexity = 6
                  // Dst: (FABDv4f16:{ *:[v4f16] } v4f16:{ *:[v4f16] }:$Rn, v4f16:{ *:[v4f16] }:$Rm)
/* 75549*/      /*SwitchType*/ 10, MVT::v8f16,// ->75561
/* 75551*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75553*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABDv8f16), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fabs:{ *:[v8f16] } (fsub:{ *:[v8f16] } v8f16:{ *:[v8f16] }:$Rn, v8f16:{ *:[v8f16] }:$Rm)) - Complexity = 6
                  // Dst: (FABDv8f16:{ *:[v8f16] } v8f16:{ *:[v8f16] }:$Rn, v8f16:{ *:[v8f16] }:$Rm)
/* 75561*/      0, // EndSwitchType
/* 75562*/    /*Scope*/ 58, /*->75621*/
/* 75563*/      OPC_RecordChild0, // #0 = $Rn
/* 75564*/      OPC_SwitchType /*5 cases */, 9, MVT::v4f16,// ->75576
/* 75567*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75569*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABSv4f16), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                  // Dst: (FABSv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 75576*/      /*SwitchType*/ 9, MVT::v8f16,// ->75587
/* 75578*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 75580*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABSv8f16), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                  // Dst: (FABSv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 75587*/      /*SwitchType*/ 9, MVT::v2f32,// ->75598
/* 75589*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75591*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABSv2f32), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                  // Dst: (FABSv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 75598*/      /*SwitchType*/ 9, MVT::v4f32,// ->75609
/* 75600*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75602*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABSv4f32), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                  // Dst: (FABSv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 75609*/      /*SwitchType*/ 9, MVT::v2f64,// ->75620
/* 75611*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75613*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FABSv2f64), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                  // Dst: (FABSv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 75620*/      0, // EndSwitchType
/* 75621*/    0, /*End of Scope*/
/* 75622*/  /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(ISD::ConstantFP),// ->75784
/* 75626*/    OPC_Scope, 30, /*->75658*/ // 2 children in Scope
/* 75628*/      OPC_CheckPredicate, 58, // Predicate_fpimm0
/* 75630*/      OPC_SwitchType /*3 cases */, 8, MVT::f16,// ->75641
/* 75633*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 75635*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVH0), 0,
                      MVT::f16, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f16] })<<P:Predicate_fpimm0>> - Complexity = 4
                  // Dst: (FMOVH0:{ *:[f16] })
/* 75641*/      /*SwitchType*/ 6, MVT::f32,// ->75649
/* 75643*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVS0), 0,
                      MVT::f32, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f32] })<<P:Predicate_fpimm0>> - Complexity = 4
                  // Dst: (FMOVS0:{ *:[f32] })
/* 75649*/      /*SwitchType*/ 6, MVT::f64,// ->75657
/* 75651*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVD0), 0,
                      MVT::f64, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimm0>> - Complexity = 4
                  // Dst: (FMOVD0:{ *:[f64] })
/* 75657*/      0, // EndSwitchType
/* 75658*/    /*Scope*/ 124, /*->75783*/
/* 75659*/      OPC_RecordNode, // #0 = $imm
/* 75660*/      OPC_SwitchType /*3 cases */, 16, MVT::f16,// ->75679
/* 75663*/        OPC_CheckPredicate, 66, // Predicate_fpimm16
/* 75665*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 75667*/        OPC_EmitConvertToTarget, 0,
/* 75669*/        OPC_EmitNodeXForm, 13, 1, // anonymous_1070
/* 75672*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVHi), 0,
                      MVT::f16, 1/*#Ops*/, 2, 
                  // Src: (fpimm:{ *:[f16] })<<P:Predicate_fpimm16>><<X:anonymous_1070>>:$imm - Complexity = 4
                  // Dst: (FMOVHi:{ *:[f16] } (anonymous_1070:{ *:[f16] } (fpimm:{ *:[f16] }):$imm))
/* 75679*/      /*SwitchType*/ 41, MVT::f32,// ->75722
/* 75681*/        OPC_Scope, 16, /*->75699*/ // 2 children in Scope
/* 75683*/          OPC_CheckPredicate, 67, // Predicate_fpimm32
/* 75685*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75687*/          OPC_EmitConvertToTarget, 0,
/* 75689*/          OPC_EmitNodeXForm, 14, 1, // anonymous_1071
/* 75692*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVSi), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (fpimm:{ *:[f32] })<<P:Predicate_fpimm32>><<X:anonymous_1071>>:$imm - Complexity = 4
                    // Dst: (FMOVSi:{ *:[f32] } (anonymous_1071:{ *:[f32] } (fpimm:{ *:[f32] }):$imm))
/* 75699*/        /*Scope*/ 21, /*->75721*/
/* 75700*/          OPC_EmitNodeXForm, 15, 0, // bitcast_fpimm_to_i32
/* 75703*/          OPC_EmitNode1, TARGET_VAL(AArch64::MOVi32imm), 0,
                        MVT::i32, 1/*#Ops*/, 1,  // Results = #2
/* 75710*/          OPC_EmitInteger, MVT::i32, AArch64::FPR32RegClassID,
/* 75713*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 2, 3, 
                    // Src: (fpimm:{ *:[f32] }):$in - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (MOVi32imm:{ *:[i32] } (bitcast_fpimm_to_i32:{ *:[i32] } f32:{ *:[f32] }:$in)), FPR32:{ *:[i32] })
/* 75721*/        0, /*End of Scope*/
/* 75722*/      /*SwitchType*/ 58, MVT::f64,// ->75782
/* 75724*/        OPC_Scope, 16, /*->75742*/ // 3 children in Scope
/* 75726*/          OPC_CheckPredicate, 68, // Predicate_fpimm64
/* 75728*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75730*/          OPC_EmitConvertToTarget, 0,
/* 75732*/          OPC_EmitNodeXForm, 16, 1, // anonymous_1072
/* 75735*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVDi), 0,
                        MVT::f64, 1/*#Ops*/, 2, 
                    // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimm64>><<X:anonymous_1072>>:$imm - Complexity = 4
                    // Dst: (FMOVDi:{ *:[f64] } (anonymous_1072:{ *:[f64] } (fpimm:{ *:[f64] }):$imm))
/* 75742*/        /*Scope*/ 16, /*->75759*/
/* 75743*/          OPC_CheckPredicate, 69, // Predicate_simdimmtype10
/* 75745*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 75747*/          OPC_EmitConvertToTarget, 0,
/* 75749*/          OPC_EmitNodeXForm, 17, 1, // anonymous_1073
/* 75752*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                        MVT::f64, 1/*#Ops*/, 2, 
                    // Src: (fpimm:{ *:[f64] })<<P:Predicate_simdimmtype10>><<X:anonymous_1073>>:$imm8 - Complexity = 4
                    // Dst: (MOVID:{ *:[f64] } (anonymous_1073:{ *:[i32] } (fpimm:{ *:[f64] }):$imm8))
/* 75759*/        /*Scope*/ 21, /*->75781*/
/* 75760*/          OPC_EmitNodeXForm, 18, 0, // bitcast_fpimm_to_i64
/* 75763*/          OPC_EmitNode1, TARGET_VAL(AArch64::MOVi64imm), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 75770*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 75773*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3, 
                    // Src: (fpimm:{ *:[f64] }):$in - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (MOVi64imm:{ *:[i64] } (bitcast_fpimm_to_i64:{ *:[i64] } f64:{ *:[f64] }:$in)), FPR64:{ *:[i32] })
/* 75781*/        0, /*End of Scope*/
/* 75782*/      0, // EndSwitchType
/* 75783*/    0, /*End of Scope*/
/* 75784*/  /*SwitchOpcode*/ 68, TARGET_VAL(ISD::FP_ROUND),// ->75855
/* 75787*/    OPC_RecordChild0, // #0 = $Rn
/* 75788*/    OPC_Scope, 26, /*->75816*/ // 4 children in Scope
/* 75790*/      OPC_CheckChild0Type, MVT::f64,
/* 75792*/      OPC_SwitchType /*2 cases */, 9, MVT::f16,// ->75804
/* 75795*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75797*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTHDr), 0,
                      MVT::f16, 1/*#Ops*/, 0, 
                  // Src: (fpround:{ *:[f16] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                  // Dst: (FCVTHDr:{ *:[f16] } FPR64:{ *:[f64] }:$Rn)
/* 75804*/      /*SwitchType*/ 9, MVT::f32,// ->75815
/* 75806*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75808*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTSDr), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fpround:{ *:[f32] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                  // Dst: (FCVTSDr:{ *:[f32] } FPR64:{ *:[f64] }:$Rn)
/* 75815*/      0, // EndSwitchType
/* 75816*/    /*Scope*/ 13, /*->75830*/
/* 75817*/      OPC_CheckChild0Type, MVT::f32,
/* 75819*/      OPC_CheckType, MVT::f16,
/* 75821*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75823*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTHSr), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (fpround:{ *:[f16] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FCVTHSr:{ *:[f16] } FPR32:{ *:[f32] }:$Rn)
/* 75830*/    /*Scope*/ 11, /*->75842*/
/* 75831*/      OPC_CheckChild0Type, MVT::v2f64,
/* 75833*/      OPC_CheckType, MVT::v2f32,
/* 75835*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNv2i32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (fpround:{ *:[v2f32] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FCVTNv2i32:{ *:[v2f32] } V128:{ *:[v2f64] }:$Rn)
/* 75842*/    /*Scope*/ 11, /*->75854*/
/* 75843*/      OPC_CheckChild0Type, MVT::v4f32,
/* 75845*/      OPC_CheckType, MVT::v4f16,
/* 75847*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNv4i16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (fpround:{ *:[v4f16] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FCVTNv4i16:{ *:[v4f16] } V128:{ *:[v4f32] }:$Rn)
/* 75854*/    0, /*End of Scope*/
/* 75855*/  /*SwitchOpcode*/ 111, TARGET_VAL(ISD::FP_EXTEND),// ->75969
/* 75858*/    OPC_Scope, 42, /*->75902*/ // 3 children in Scope
/* 75860*/      OPC_RecordChild0, // #0 = $Rn
/* 75861*/      OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->75890
/* 75864*/        OPC_Scope, 11, /*->75877*/ // 2 children in Scope
/* 75866*/          OPC_CheckChild0Type, MVT::f16,
/* 75868*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75870*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTDHr), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fpextend:{ *:[f64] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (FCVTDHr:{ *:[f64] } FPR16:{ *:[f16] }:$Rn)
/* 75877*/        /*Scope*/ 11, /*->75889*/
/* 75878*/          OPC_CheckChild0Type, MVT::f32,
/* 75880*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75882*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTDSr), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fpextend:{ *:[f64] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (FCVTDSr:{ *:[f64] } FPR32:{ *:[f32] }:$Rn)
/* 75889*/        0, /*End of Scope*/
/* 75890*/      /*SwitchType*/ 9, MVT::f32,// ->75901
/* 75892*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75894*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTSHr), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fpextend:{ *:[f32] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                  // Dst: (FCVTSHr:{ *:[f32] } FPR16:{ *:[f16] }:$Rn)
/* 75901*/      0, // EndSwitchType
/* 75902*/    /*Scope*/ 39, /*->75942*/
/* 75903*/      OPC_MoveChild0,
/* 75904*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 75907*/      OPC_RecordChild0, // #0 = $Rn
/* 75908*/      OPC_SwitchType /*2 cases */, 14, MVT::v2f32,// ->75925
/* 75911*/        OPC_CheckChild1Integer, 2, 
/* 75913*/        OPC_CheckChild1Type, MVT::i64,
/* 75915*/        OPC_MoveParent,
/* 75916*/        OPC_CheckType, MVT::v2f64,
/* 75918*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTLv4i32), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (fpextend:{ *:[v2f64] } (extract_subvector:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rn, 2:{ *:[i64] })) - Complexity = 11
                  // Dst: (FCVTLv4i32:{ *:[v2f64] } V128:{ *:[v4f32] }:$Rn)
/* 75925*/      /*SwitchType*/ 14, MVT::v4f16,// ->75941
/* 75927*/        OPC_CheckChild1Integer, 4, 
/* 75929*/        OPC_CheckChild1Type, MVT::i64,
/* 75931*/        OPC_MoveParent,
/* 75932*/        OPC_CheckType, MVT::v4f32,
/* 75934*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTLv8i16), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fpextend:{ *:[v4f32] } (extract_subvector:{ *:[v4f16] } V128:{ *:[v8f16] }:$Rn, 4:{ *:[i64] })) - Complexity = 11
                  // Dst: (FCVTLv8i16:{ *:[v4f32] } V128:{ *:[v8f16] }:$Rn)
/* 75941*/      0, // EndSwitchType
/* 75942*/    /*Scope*/ 25, /*->75968*/
/* 75943*/      OPC_RecordChild0, // #0 = $Rn
/* 75944*/      OPC_SwitchType /*2 cases */, 9, MVT::v2f64,// ->75956
/* 75947*/        OPC_CheckChild0Type, MVT::v2f32,
/* 75949*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTLv2i32), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (fpextend:{ *:[v2f64] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                  // Dst: (FCVTLv2i32:{ *:[v2f64] } V64:{ *:[v2f32] }:$Rn)
/* 75956*/      /*SwitchType*/ 9, MVT::v4f32,// ->75967
/* 75958*/        OPC_CheckChild0Type, MVT::v4f16,
/* 75960*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTLv4i16), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fpextend:{ *:[v4f32] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                  // Dst: (FCVTLv4i16:{ *:[v4f32] } V64:{ *:[v4f16] }:$Rn)
/* 75967*/      0, // EndSwitchType
/* 75968*/    0, /*End of Scope*/
/* 75969*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FROUND),// ->76063
/* 75972*/    OPC_RecordChild0, // #0 = $Rn
/* 75973*/    OPC_SwitchType /*8 cases */, 9, MVT::f16,// ->75985
/* 75976*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 75978*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTAHr), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTAHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 75985*/    /*SwitchType*/ 9, MVT::f32,// ->75996
/* 75987*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 75989*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTASr), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTASr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 75996*/    /*SwitchType*/ 9, MVT::f64,// ->76007
/* 75998*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76000*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTADr), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTADr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 76007*/    /*SwitchType*/ 9, MVT::v4f16,// ->76018
/* 76009*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76011*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTAv4f16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTAv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 76018*/    /*SwitchType*/ 9, MVT::v8f16,// ->76029
/* 76020*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76022*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTAv8f16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTAv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 76029*/    /*SwitchType*/ 9, MVT::v2f32,// ->76040
/* 76031*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76033*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTAv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTAv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 76040*/    /*SwitchType*/ 9, MVT::v4f32,// ->76051
/* 76042*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76044*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTAv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTAv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 76051*/    /*SwitchType*/ 9, MVT::v2f64,// ->76062
/* 76053*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76055*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTAv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTAv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 76062*/    0, // EndSwitchType
/* 76063*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FNEARBYINT),// ->76157
/* 76066*/    OPC_RecordChild0, // #0 = $Rn
/* 76067*/    OPC_SwitchType /*8 cases */, 9, MVT::f16,// ->76079
/* 76070*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76072*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTIHr), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTIHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 76079*/    /*SwitchType*/ 9, MVT::f32,// ->76090
/* 76081*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76083*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTISr), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTISr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 76090*/    /*SwitchType*/ 9, MVT::f64,// ->76101
/* 76092*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76094*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTIDr), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTIDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 76101*/    /*SwitchType*/ 9, MVT::v4f16,// ->76112
/* 76103*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76105*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTIv4f16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTIv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 76112*/    /*SwitchType*/ 9, MVT::v8f16,// ->76123
/* 76114*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76116*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTIv8f16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTIv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 76123*/    /*SwitchType*/ 9, MVT::v2f32,// ->76134
/* 76125*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76127*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTIv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTIv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 76134*/    /*SwitchType*/ 9, MVT::v4f32,// ->76145
/* 76136*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76138*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTIv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTIv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 76145*/    /*SwitchType*/ 9, MVT::v2f64,// ->76156
/* 76147*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76149*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTIv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTIv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 76156*/    0, // EndSwitchType
/* 76157*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FFLOOR),// ->76251
/* 76160*/    OPC_RecordChild0, // #0 = $Rn
/* 76161*/    OPC_SwitchType /*8 cases */, 9, MVT::f16,// ->76173
/* 76164*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76166*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTMHr), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTMHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 76173*/    /*SwitchType*/ 9, MVT::f32,// ->76184
/* 76175*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76177*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTMSr), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTMSr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 76184*/    /*SwitchType*/ 9, MVT::f64,// ->76195
/* 76186*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76188*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTMDr), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTMDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 76195*/    /*SwitchType*/ 9, MVT::v4f16,// ->76206
/* 76197*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76199*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTMv4f16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTMv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 76206*/    /*SwitchType*/ 9, MVT::v8f16,// ->76217
/* 76208*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76210*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTMv8f16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTMv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 76217*/    /*SwitchType*/ 9, MVT::v2f32,// ->76228
/* 76219*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76221*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTMv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTMv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 76228*/    /*SwitchType*/ 9, MVT::v4f32,// ->76239
/* 76230*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76232*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTMv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTMv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 76239*/    /*SwitchType*/ 9, MVT::v2f64,// ->76250
/* 76241*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76243*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTMv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTMv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 76250*/    0, // EndSwitchType
/* 76251*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FCEIL),// ->76345
/* 76254*/    OPC_RecordChild0, // #0 = $Rn
/* 76255*/    OPC_SwitchType /*8 cases */, 9, MVT::f16,// ->76267
/* 76258*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76260*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTPHr), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTPHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 76267*/    /*SwitchType*/ 9, MVT::f32,// ->76278
/* 76269*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76271*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTPSr), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTPSr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 76278*/    /*SwitchType*/ 9, MVT::f64,// ->76289
/* 76280*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76282*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTPDr), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTPDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 76289*/    /*SwitchType*/ 9, MVT::v4f16,// ->76300
/* 76291*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76293*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTPv4f16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTPv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 76300*/    /*SwitchType*/ 9, MVT::v8f16,// ->76311
/* 76302*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76304*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTPv8f16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTPv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 76311*/    /*SwitchType*/ 9, MVT::v2f32,// ->76322
/* 76313*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76315*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTPv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTPv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 76322*/    /*SwitchType*/ 9, MVT::v4f32,// ->76333
/* 76324*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76326*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTPv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTPv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 76333*/    /*SwitchType*/ 9, MVT::v2f64,// ->76344
/* 76335*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76337*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTPv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTPv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 76344*/    0, // EndSwitchType
/* 76345*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FRINT),// ->76439
/* 76348*/    OPC_RecordChild0, // #0 = $Rn
/* 76349*/    OPC_SwitchType /*8 cases */, 9, MVT::f16,// ->76361
/* 76352*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76354*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTXHr), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (frint:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTXHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 76361*/    /*SwitchType*/ 9, MVT::f32,// ->76372
/* 76363*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76365*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTXSr), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (frint:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTXSr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 76372*/    /*SwitchType*/ 9, MVT::f64,// ->76383
/* 76374*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76376*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTXDr), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (frint:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTXDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 76383*/    /*SwitchType*/ 9, MVT::v4f16,// ->76394
/* 76385*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76387*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTXv4f16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (frint:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTXv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 76394*/    /*SwitchType*/ 9, MVT::v8f16,// ->76405
/* 76396*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76398*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTXv8f16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (frint:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTXv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 76405*/    /*SwitchType*/ 9, MVT::v2f32,// ->76416
/* 76407*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76409*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTXv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (frint:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTXv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 76416*/    /*SwitchType*/ 9, MVT::v4f32,// ->76427
/* 76418*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76420*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTXv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (frint:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTXv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 76427*/    /*SwitchType*/ 9, MVT::v2f64,// ->76438
/* 76429*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76431*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTXv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (frint:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTXv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 76438*/    0, // EndSwitchType
/* 76439*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FTRUNC),// ->76533
/* 76442*/    OPC_RecordChild0, // #0 = $Rn
/* 76443*/    OPC_SwitchType /*8 cases */, 9, MVT::f16,// ->76455
/* 76446*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76448*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTZHr), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTZHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 76455*/    /*SwitchType*/ 9, MVT::f32,// ->76466
/* 76457*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76459*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTZSr), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTZSr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 76466*/    /*SwitchType*/ 9, MVT::f64,// ->76477
/* 76468*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76470*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTZDr), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTZDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 76477*/    /*SwitchType*/ 9, MVT::v4f16,// ->76488
/* 76479*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76481*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTZv4f16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTZv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 76488*/    /*SwitchType*/ 9, MVT::v8f16,// ->76499
/* 76490*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76492*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTZv8f16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FRINTZv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 76499*/    /*SwitchType*/ 9, MVT::v2f32,// ->76510
/* 76501*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76503*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTZv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTZv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 76510*/    /*SwitchType*/ 9, MVT::v4f32,// ->76521
/* 76512*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76514*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTZv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FRINTZv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 76521*/    /*SwitchType*/ 9, MVT::v2f64,// ->76532
/* 76523*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76525*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRINTZv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FRINTZv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 76532*/    0, // EndSwitchType
/* 76533*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::FSQRT),// ->76627
/* 76536*/    OPC_RecordChild0, // #0 = $Rn
/* 76537*/    OPC_SwitchType /*8 cases */, 9, MVT::f16,// ->76549
/* 76540*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76542*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSQRTHr), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (FSQRTHr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 76549*/    /*SwitchType*/ 9, MVT::f32,// ->76560
/* 76551*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76553*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSQRTSr), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FSQRTSr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 76560*/    /*SwitchType*/ 9, MVT::f64,// ->76571
/* 76562*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76564*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSQRTDr), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FSQRTDr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 76571*/    /*SwitchType*/ 9, MVT::v4f16,// ->76582
/* 76573*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76575*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSQRTv4f16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FSQRTv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 76582*/    /*SwitchType*/ 9, MVT::v8f16,// ->76593
/* 76584*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76586*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSQRTv8f16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FSQRTv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 76593*/    /*SwitchType*/ 9, MVT::v2f32,// ->76604
/* 76595*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76597*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSQRTv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FSQRTv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 76604*/    /*SwitchType*/ 9, MVT::v4f32,// ->76615
/* 76606*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76608*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSQRTv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FSQRTv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 76615*/    /*SwitchType*/ 9, MVT::v2f64,// ->76626
/* 76617*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76619*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSQRTv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FSQRTv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn)
/* 76626*/    0, // EndSwitchType
/* 76627*/  /*SwitchOpcode*/ 110, TARGET_VAL(ISD::FMAXNUM),// ->76740
/* 76630*/    OPC_RecordChild0, // #0 = $Rn
/* 76631*/    OPC_RecordChild1, // #1 = $Rm
/* 76632*/    OPC_SwitchType /*9 cases */, 10, MVT::f16,// ->76645
/* 76635*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76637*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMHrr), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 76645*/    /*SwitchType*/ 10, MVT::f32,// ->76657
/* 76647*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76649*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMSrr), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 76657*/    /*SwitchType*/ 10, MVT::f64,// ->76669
/* 76659*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76661*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMDrr), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 76669*/    /*SwitchType*/ 8, MVT::v1f64,// ->76679
/* 76671*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMDrr), 0,
                    MVT::v1f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMDrr:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 76679*/    /*SwitchType*/ 10, MVT::v4f16,// ->76691
/* 76681*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76683*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMv4f16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 76691*/    /*SwitchType*/ 10, MVT::v8f16,// ->76703
/* 76693*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76695*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMv8f16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 76703*/    /*SwitchType*/ 10, MVT::v2f32,// ->76715
/* 76705*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76707*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMv2f32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 76715*/    /*SwitchType*/ 10, MVT::v4f32,// ->76727
/* 76717*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76719*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMv4f32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 76727*/    /*SwitchType*/ 10, MVT::v2f64,// ->76739
/* 76729*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76731*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXNMv2f64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FMAXNMv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 76739*/    0, // EndSwitchType
/* 76740*/  /*SwitchOpcode*/ 110, TARGET_VAL(ISD::FMAXNAN),// ->76853
/* 76743*/    OPC_RecordChild0, // #0 = $Rn
/* 76744*/    OPC_RecordChild1, // #1 = $Rm
/* 76745*/    OPC_SwitchType /*9 cases */, 10, MVT::f16,// ->76758
/* 76748*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76750*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXHrr), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                // Dst: (FMAXHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 76758*/    /*SwitchType*/ 10, MVT::f32,// ->76770
/* 76760*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76762*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXSrr), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FMAXSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 76770*/    /*SwitchType*/ 10, MVT::f64,// ->76782
/* 76772*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76774*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXDrr), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FMAXDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 76782*/    /*SwitchType*/ 8, MVT::v1f64,// ->76792
/* 76784*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXDrr), 0,
                    MVT::v1f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 3
                // Dst: (FMAXDrr:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 76792*/    /*SwitchType*/ 10, MVT::v4f16,// ->76804
/* 76794*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76796*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXv4f16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (FMAXv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 76804*/    /*SwitchType*/ 10, MVT::v8f16,// ->76816
/* 76806*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76808*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXv8f16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (FMAXv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 76816*/    /*SwitchType*/ 10, MVT::v2f32,// ->76828
/* 76818*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76820*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXv2f32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FMAXv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 76828*/    /*SwitchType*/ 10, MVT::v4f32,// ->76840
/* 76830*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76832*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXv4f32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FMAXv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 76840*/    /*SwitchType*/ 10, MVT::v2f64,// ->76852
/* 76842*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76844*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMAXv2f64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnan:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FMAXv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 76852*/    0, // EndSwitchType
/* 76853*/  /*SwitchOpcode*/ 110, TARGET_VAL(ISD::FMINNUM),// ->76966
/* 76856*/    OPC_RecordChild0, // #0 = $Rn
/* 76857*/    OPC_RecordChild1, // #1 = $Rm
/* 76858*/    OPC_SwitchType /*9 cases */, 10, MVT::f16,// ->76871
/* 76861*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76863*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMHrr), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                // Dst: (FMINNMHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 76871*/    /*SwitchType*/ 10, MVT::f32,// ->76883
/* 76873*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76875*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMSrr), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FMINNMSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 76883*/    /*SwitchType*/ 10, MVT::f64,// ->76895
/* 76885*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76887*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMDrr), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FMINNMDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 76895*/    /*SwitchType*/ 8, MVT::v1f64,// ->76905
/* 76897*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMDrr), 0,
                    MVT::v1f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 3
                // Dst: (FMINNMDrr:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 76905*/    /*SwitchType*/ 10, MVT::v4f16,// ->76917
/* 76907*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76909*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMv4f16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (FMINNMv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 76917*/    /*SwitchType*/ 10, MVT::v8f16,// ->76929
/* 76919*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 76921*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMv8f16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (FMINNMv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 76929*/    /*SwitchType*/ 10, MVT::v2f32,// ->76941
/* 76931*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76933*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMv2f32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FMINNMv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 76941*/    /*SwitchType*/ 10, MVT::v4f32,// ->76953
/* 76943*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76945*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMv4f32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FMINNMv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 76953*/    /*SwitchType*/ 10, MVT::v2f64,// ->76965
/* 76955*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 76957*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINNMv2f64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FMINNMv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 76965*/    0, // EndSwitchType
/* 76966*/  /*SwitchOpcode*/ 110, TARGET_VAL(ISD::FMINNAN),// ->77079
/* 76969*/    OPC_RecordChild0, // #0 = $Rn
/* 76970*/    OPC_RecordChild1, // #1 = $Rm
/* 76971*/    OPC_SwitchType /*9 cases */, 10, MVT::f16,// ->76984
/* 76974*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 76976*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINHrr), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                // Dst: (FMINHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 76984*/    /*SwitchType*/ 10, MVT::f32,// ->76996
/* 76986*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 76988*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINSrr), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FMINSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 76996*/    /*SwitchType*/ 10, MVT::f64,// ->77008
/* 76998*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 77000*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINDrr), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FMINDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 77008*/    /*SwitchType*/ 8, MVT::v1f64,// ->77018
/* 77010*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINDrr), 0,
                    MVT::v1f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm) - Complexity = 3
                // Dst: (FMINDrr:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn, FPR64:{ *:[v1f64] }:$Rm)
/* 77018*/    /*SwitchType*/ 10, MVT::v4f16,// ->77030
/* 77020*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 77022*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINv4f16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (FMINv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 77030*/    /*SwitchType*/ 10, MVT::v8f16,// ->77042
/* 77032*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 77034*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINv8f16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (FMINv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 77042*/    /*SwitchType*/ 10, MVT::v2f32,// ->77054
/* 77044*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77046*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINv2f32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FMINv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 77054*/    /*SwitchType*/ 10, MVT::v4f32,// ->77066
/* 77056*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77058*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINv4f32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FMINv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 77066*/    /*SwitchType*/ 10, MVT::v2f64,// ->77078
/* 77068*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77070*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMINv2f64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnan:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FMINv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 77078*/    0, // EndSwitchType
/* 77079*/  /*SwitchOpcode*/ 100, TARGET_VAL(ISD::FSUB),// ->77182
/* 77082*/    OPC_RecordChild0, // #0 = $Rn
/* 77083*/    OPC_RecordChild1, // #1 = $Rm
/* 77084*/    OPC_SwitchType /*8 cases */, 10, MVT::f16,// ->77097
/* 77087*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasFullFP16())
/* 77089*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSUBHrr), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm) - Complexity = 3
                // Dst: (FSUBHrr:{ *:[f16] } FPR16:{ *:[f16] }:$Rn, FPR16:{ *:[f16] }:$Rm)
/* 77097*/    /*SwitchType*/ 10, MVT::f32,// ->77109
/* 77099*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 77101*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSUBSrr), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FSUBSrr:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 77109*/    /*SwitchType*/ 10, MVT::f64,// ->77121
/* 77111*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasFPARMv8())
/* 77113*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSUBDrr), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FSUBDrr:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 77121*/    /*SwitchType*/ 10, MVT::v4f16,// ->77133
/* 77123*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 77125*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSUBv4f16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (FSUBv4f16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 77133*/    /*SwitchType*/ 10, MVT::v8f16,// ->77145
/* 77135*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 77137*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSUBv8f16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (FSUBv8f16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 77145*/    /*SwitchType*/ 10, MVT::v2f32,// ->77157
/* 77147*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77149*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSUBv2f32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FSUBv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 77157*/    /*SwitchType*/ 10, MVT::v4f32,// ->77169
/* 77159*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77161*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSUBv4f32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FSUBv4f32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 77169*/    /*SwitchType*/ 10, MVT::v2f64,// ->77181
/* 77171*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77173*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FSUBv2f64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FSUBv2f64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 77181*/    0, // EndSwitchType
/* 77182*/  /*SwitchOpcode*/ 36, TARGET_VAL(AArch64ISD::SITOF),// ->77221
/* 77185*/    OPC_RecordChild0, // #0 = $Rn
/* 77186*/    OPC_SwitchType /*3 cases */, 9, MVT::f64,// ->77198
/* 77189*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77191*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i64), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (AArch64sitof:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (SCVTFv1i64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 77198*/    /*SwitchType*/ 9, MVT::f32,// ->77209
/* 77200*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77202*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i32), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (AArch64sitof:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (SCVTFv1i32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 77209*/    /*SwitchType*/ 9, MVT::f16,// ->77220
/* 77211*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 77213*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SCVTFv1i16), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (AArch64sitof:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (SCVTFv1i16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 77220*/    0, // EndSwitchType
/* 77221*/  /*SwitchOpcode*/ 36, TARGET_VAL(AArch64ISD::UITOF),// ->77260
/* 77224*/    OPC_RecordChild0, // #0 = $Rn
/* 77225*/    OPC_SwitchType /*3 cases */, 9, MVT::f64,// ->77237
/* 77228*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77230*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i64), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (AArch64uitof:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (UCVTFv1i64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 77237*/    /*SwitchType*/ 9, MVT::f32,// ->77248
/* 77239*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 77241*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i32), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (AArch64uitof:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (UCVTFv1i32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 77248*/    /*SwitchType*/ 9, MVT::f16,// ->77259
/* 77250*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 77252*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UCVTFv1i16), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (AArch64uitof:{ *:[f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                // Dst: (UCVTFv1i16:{ *:[f16] } FPR16:{ *:[f16] }:$Rn)
/* 77259*/    0, // EndSwitchType
/* 77260*/  /*SwitchOpcode*/ 57, TARGET_VAL(AArch64ISD::FRECPE),// ->77320
/* 77263*/    OPC_RecordChild0, // #0 = $Rn
/* 77264*/    OPC_SwitchType /*6 cases */, 7, MVT::f32,// ->77274
/* 77267*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv1i32), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (AArch64frecpe:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FRECPEv1i32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 77274*/    /*SwitchType*/ 7, MVT::f64,// ->77283
/* 77276*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv1i64), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (AArch64frecpe:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FRECPEv1i64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 77283*/    /*SwitchType*/ 7, MVT::v2f32,// ->77292
/* 77285*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (AArch64frecpe:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FRECPEv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 77292*/    /*SwitchType*/ 7, MVT::v4f32,// ->77301
/* 77294*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (AArch64frecpe:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FRECPEv4f32:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$Rn)
/* 77301*/    /*SwitchType*/ 7, MVT::v1f64,// ->77310
/* 77303*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv1i64), 0,
                    MVT::v1f64, 1/*#Ops*/, 0, 
                // Src: (AArch64frecpe:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn) - Complexity = 3
                // Dst: (FRECPEv1i64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn)
/* 77310*/    /*SwitchType*/ 7, MVT::v2f64,// ->77319
/* 77312*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPEv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (AArch64frecpe:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FRECPEv2f64:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$Rn)
/* 77319*/    0, // EndSwitchType
/* 77320*/  /*SwitchOpcode*/ 54, TARGET_VAL(AArch64ISD::FRECPS),// ->77377
/* 77323*/    OPC_RecordChild0, // #0 = $Rn
/* 77324*/    OPC_RecordChild1, // #1 = $Rm
/* 77325*/    OPC_SwitchType /*5 cases */, 8, MVT::f32,// ->77336
/* 77328*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPS32), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frecps:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FRECPS32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 77336*/    /*SwitchType*/ 8, MVT::f64,// ->77346
/* 77338*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPS64), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frecps:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FRECPS64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 77346*/    /*SwitchType*/ 8, MVT::v2f32,// ->77356
/* 77348*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPSv2f32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frecps:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FRECPSv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 77356*/    /*SwitchType*/ 8, MVT::v4f32,// ->77366
/* 77358*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPSv4f32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frecps:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$Rn, FPR128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FRECPSv4f32:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$Rn, FPR128:{ *:[v4f32] }:$Rm)
/* 77366*/    /*SwitchType*/ 8, MVT::v2f64,// ->77376
/* 77368*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRECPSv2f64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frecps:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$Rn, FPR128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FRECPSv2f64:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$Rn, FPR128:{ *:[v2f64] }:$Rm)
/* 77376*/    0, // EndSwitchType
/* 77377*/  /*SwitchOpcode*/ 57, TARGET_VAL(AArch64ISD::FRSQRTE),// ->77437
/* 77380*/    OPC_RecordChild0, // #0 = $Rn
/* 77381*/    OPC_SwitchType /*6 cases */, 7, MVT::f32,// ->77391
/* 77384*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv1i32), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (AArch64frsqrte:{ *:[f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                // Dst: (FRSQRTEv1i32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn)
/* 77391*/    /*SwitchType*/ 7, MVT::f64,// ->77400
/* 77393*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv1i64), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (AArch64frsqrte:{ *:[f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                // Dst: (FRSQRTEv1i64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn)
/* 77400*/    /*SwitchType*/ 7, MVT::v2f32,// ->77409
/* 77402*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv2f32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (AArch64frsqrte:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FRSQRTEv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 77409*/    /*SwitchType*/ 7, MVT::v4f32,// ->77418
/* 77411*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv4f32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (AArch64frsqrte:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FRSQRTEv4f32:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$Rn)
/* 77418*/    /*SwitchType*/ 7, MVT::v1f64,// ->77427
/* 77420*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv1i64), 0,
                    MVT::v1f64, 1/*#Ops*/, 0, 
                // Src: (AArch64frsqrte:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn) - Complexity = 3
                // Dst: (FRSQRTEv1i64:{ *:[v1f64] } FPR64:{ *:[v1f64] }:$Rn)
/* 77427*/    /*SwitchType*/ 7, MVT::v2f64,// ->77436
/* 77429*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTEv2f64), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (AArch64frsqrte:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FRSQRTEv2f64:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$Rn)
/* 77436*/    0, // EndSwitchType
/* 77437*/  /*SwitchOpcode*/ 54, TARGET_VAL(AArch64ISD::FRSQRTS),// ->77494
/* 77440*/    OPC_RecordChild0, // #0 = $Rn
/* 77441*/    OPC_RecordChild1, // #1 = $Rm
/* 77442*/    OPC_SwitchType /*5 cases */, 8, MVT::f32,// ->77453
/* 77445*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTS32), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frsqrts:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm) - Complexity = 3
                // Dst: (FRSQRTS32:{ *:[f32] } FPR32:{ *:[f32] }:$Rn, FPR32:{ *:[f32] }:$Rm)
/* 77453*/    /*SwitchType*/ 8, MVT::f64,// ->77463
/* 77455*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTS64), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frsqrts:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm) - Complexity = 3
                // Dst: (FRSQRTS64:{ *:[f64] } FPR64:{ *:[f64] }:$Rn, FPR64:{ *:[f64] }:$Rm)
/* 77463*/    /*SwitchType*/ 8, MVT::v2f32,// ->77473
/* 77465*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTSv2f32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frsqrts:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (FRSQRTSv2f32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 77473*/    /*SwitchType*/ 8, MVT::v4f32,// ->77483
/* 77475*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTSv4f32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frsqrts:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$Rn, FPR128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (FRSQRTSv4f32:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$Rn, FPR128:{ *:[v4f32] }:$Rm)
/* 77483*/    /*SwitchType*/ 8, MVT::v2f64,// ->77493
/* 77485*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FRSQRTSv2f64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64frsqrts:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$Rn, FPR128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (FRSQRTSv2f64:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$Rn, FPR128:{ *:[v2f64] }:$Rm)
/* 77493*/    0, // EndSwitchType
/* 77494*/  /*SwitchOpcode*/ 77|128,12/*1613*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->79111
/* 77498*/    OPC_Scope, 119|128,6/*887*/, /*->78388*/ // 4 children in Scope
/* 77501*/      OPC_MoveChild0,
/* 77502*/      OPC_SwitchOpcode /*2 cases */, 79|128,6/*847*/, TARGET_VAL(ISD::LOAD),// ->78354
/* 77507*/        OPC_RecordMemRef,
/* 77508*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77509*/        OPC_RecordChild1, // #1 = $ro_Windexed64:Rn:Rm:extend
/* 77510*/        OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 77512*/        OPC_Scope, 39, /*->77553*/ // 5 children in Scope
/* 77514*/          OPC_CheckPredicate, 30, // Predicate_load
/* 77516*/          OPC_CheckType, MVT::i64,
/* 77518*/          OPC_MoveParent,
/* 77519*/          OPC_CheckType, MVT::v1i64,
/* 77521*/          OPC_Scope, 14, /*->77537*/ // 2 children in Scope
/* 77523*/            OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 77526*/            OPC_EmitMergeInputChains1_0,
/* 77527*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v1i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v1i64] } (ld:{ *:[i64] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (LDRDroW:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$extend)
/* 77537*/          /*Scope*/ 14, /*->77552*/
/* 77538*/            OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 77541*/            OPC_EmitMergeInputChains1_0,
/* 77542*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v1i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v1i64] } (ld:{ *:[i64] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (LDRDroX:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$extend)
/* 77552*/          0, /*End of Scope*/
/* 77553*/        /*Scope*/ 44|128,2/*300*/, /*->77855*/
/* 77555*/          OPC_CheckPredicate, 33, // Predicate_extload
/* 77557*/          OPC_CheckType, MVT::i32,
/* 77559*/          OPC_Scope, 17|128,1/*145*/, /*->77707*/ // 2 children in Scope
/* 77562*/            OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 77564*/            OPC_MoveParent,
/* 77565*/            OPC_SwitchType /*2 cases */, 68, MVT::v8i8,// ->77636
/* 77568*/              OPC_Scope, 32, /*->77602*/ // 2 children in Scope
/* 77570*/                OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 77573*/                OPC_EmitMergeInputChains1_0,
/* 77574*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v8i8, 0/*#Ops*/,  // Results = #6
/* 77580*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroW), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77590*/                OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 77593*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v8i8, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v8i8] } (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (LDRBroW:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$offset), bsub:{ *:[i32] })
/* 77602*/              /*Scope*/ 32, /*->77635*/
/* 77603*/                OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 77606*/                OPC_EmitMergeInputChains1_0,
/* 77607*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v8i8, 0/*#Ops*/,  // Results = #6
/* 77613*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroX), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77623*/                OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 77626*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v8i8, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v8i8] } (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (LDRBroX:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$offset), bsub:{ *:[i32] })
/* 77635*/              0, /*End of Scope*/
/* 77636*/            /*SwitchType*/ 68, MVT::v16i8,// ->77706
/* 77638*/              OPC_Scope, 32, /*->77672*/ // 2 children in Scope
/* 77640*/                OPC_CheckComplexPat, /*CP*/10, /*#*/1, // SelectAddrModeWRO<8>:$ #2 #3 #4 #5
/* 77643*/                OPC_EmitMergeInputChains1_0,
/* 77644*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16i8, 0/*#Ops*/,  // Results = #6
/* 77650*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroW), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77660*/                OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 77663*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v16i8, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i32] } (ro_Windexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (LDRBroW:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend8:{ *:[i32] }:$offset), bsub:{ *:[i32] })
/* 77672*/              /*Scope*/ 32, /*->77705*/
/* 77673*/                OPC_CheckComplexPat, /*CP*/11, /*#*/1, // SelectAddrModeXRO<8>:$ #2 #3 #4 #5
/* 77676*/                OPC_EmitMergeInputChains1_0,
/* 77677*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v16i8, 0/*#Ops*/,  // Results = #6
/* 77683*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRBroX), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::Untyped, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77693*/                OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 77696*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v16i8, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i32] } (ro_Xindexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (LDRBroX:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend8:{ *:[i32] }:$offset), bsub:{ *:[i32] })
/* 77705*/              0, /*End of Scope*/
/* 77706*/            0, // EndSwitchType
/* 77707*/          /*Scope*/ 17|128,1/*145*/, /*->77854*/
/* 77709*/            OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 77711*/            OPC_MoveParent,
/* 77712*/            OPC_SwitchType /*2 cases */, 68, MVT::v4i16,// ->77783
/* 77715*/              OPC_Scope, 32, /*->77749*/ // 2 children in Scope
/* 77717*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 77720*/                OPC_EmitMergeInputChains1_0,
/* 77721*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v4i16, 0/*#Ops*/,  // Results = #6
/* 77727*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77737*/                OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 77740*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v4i16, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v4i16] } (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$offset), hsub:{ *:[i32] })
/* 77749*/              /*Scope*/ 32, /*->77782*/
/* 77750*/                OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 77753*/                OPC_EmitMergeInputChains1_0,
/* 77754*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v4i16, 0/*#Ops*/,  // Results = #6
/* 77760*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77770*/                OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 77773*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v4i16, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v4i16] } (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$offset), hsub:{ *:[i32] })
/* 77782*/              0, /*End of Scope*/
/* 77783*/            /*SwitchType*/ 68, MVT::v8i16,// ->77853
/* 77785*/              OPC_Scope, 32, /*->77819*/ // 2 children in Scope
/* 77787*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 77790*/                OPC_EmitMergeInputChains1_0,
/* 77791*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v8i16, 0/*#Ops*/,  // Results = #6
/* 77797*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77807*/                OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 77810*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v8i16, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$offset), hsub:{ *:[i32] })
/* 77819*/              /*Scope*/ 32, /*->77852*/
/* 77820*/                OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 77823*/                OPC_EmitMergeInputChains1_0,
/* 77824*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v8i16, 0/*#Ops*/,  // Results = #6
/* 77830*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77840*/                OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 77843*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v8i16, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$offset), hsub:{ *:[i32] })
/* 77852*/              0, /*End of Scope*/
/* 77853*/            0, // EndSwitchType
/* 77854*/          0, /*End of Scope*/
/* 77855*/        /*Scope*/ 111|128,1/*239*/, /*->78096*/
/* 77857*/          OPC_CheckPredicate, 30, // Predicate_load
/* 77859*/          OPC_SwitchType /*2 cases */, 15|128,1/*143*/, MVT::i32,// ->78006
/* 77863*/            OPC_MoveParent,
/* 77864*/            OPC_SwitchType /*2 cases */, 68, MVT::v2i32,// ->77935
/* 77867*/              OPC_Scope, 32, /*->77901*/ // 2 children in Scope
/* 77869*/                OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 77872*/                OPC_EmitMergeInputChains1_0,
/* 77873*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v2i32, 0/*#Ops*/,  // Results = #6
/* 77879*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77889*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 77892*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v2i32, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v2i32] } (ld:{ *:[i32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v2i32] } (IMPLICIT_DEF:{ *:[v2i32] }), (LDRSroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$offset), ssub:{ *:[i32] })
/* 77901*/              /*Scope*/ 32, /*->77934*/
/* 77902*/                OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 77905*/                OPC_EmitMergeInputChains1_0,
/* 77906*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v2i32, 0/*#Ops*/,  // Results = #6
/* 77912*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77922*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 77925*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v2i32, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v2i32] } (ld:{ *:[i32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v2i32] } (IMPLICIT_DEF:{ *:[v2i32] }), (LDRSroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$offset), ssub:{ *:[i32] })
/* 77934*/              0, /*End of Scope*/
/* 77935*/            /*SwitchType*/ 68, MVT::v4i32,// ->78005
/* 77937*/              OPC_Scope, 32, /*->77971*/ // 2 children in Scope
/* 77939*/                OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 77942*/                OPC_EmitMergeInputChains1_0,
/* 77943*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 77949*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77959*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 77962*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v4i32, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (LDRSroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$offset), ssub:{ *:[i32] })
/* 77971*/              /*Scope*/ 32, /*->78004*/
/* 77972*/                OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 77975*/                OPC_EmitMergeInputChains1_0,
/* 77976*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 77982*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 77992*/                OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 77995*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v4i32, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (LDRSroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$offset), ssub:{ *:[i32] })
/* 78004*/              0, /*End of Scope*/
/* 78005*/            0, // EndSwitchType
/* 78006*/          /*SwitchType*/ 87, MVT::i64,// ->78095
/* 78008*/            OPC_MoveParent,
/* 78009*/            OPC_SwitchType /*2 cases */, 68, MVT::v2i64,// ->78080
/* 78012*/              OPC_Scope, 32, /*->78046*/ // 2 children in Scope
/* 78014*/                OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 78017*/                OPC_EmitMergeInputChains1_0,
/* 78018*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v2i64, 0/*#Ops*/,  // Results = #6
/* 78024*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::i64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78034*/                OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 78037*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v2i64, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (LDRDroW:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$offset), dsub:{ *:[i32] })
/* 78046*/              /*Scope*/ 32, /*->78079*/
/* 78047*/                OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 78050*/                OPC_EmitMergeInputChains1_0,
/* 78051*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v2i64, 0/*#Ops*/,  // Results = #6
/* 78057*/                OPC_EmitNode1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::i64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78067*/                OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 78070*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                              MVT::v2i64, 3/*#Ops*/, 6, 7, 8, 
                          // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                          // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (LDRDroX:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$offset), dsub:{ *:[i32] })
/* 78079*/              0, /*End of Scope*/
/* 78080*/            /*SwitchType*/ 12, MVT::v1i64,// ->78094
/* 78082*/              OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 78085*/              OPC_EmitMergeInputChains1_0,
/* 78086*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v1i64, 2/*#Ops*/, 2, 3, 
                        // Src: (scalar_to_vector:{ *:[v1i64] } (ld:{ *:[i64] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                        // Dst: (LDRDui:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset)
/* 78094*/            0, // EndSwitchType
/* 78095*/          0, // EndSwitchType
/* 78096*/        /*Scope*/ 18|128,1/*146*/, /*->78244*/
/* 78098*/          OPC_CheckPredicate, 33, // Predicate_extload
/* 78100*/          OPC_CheckType, MVT::i32,
/* 78102*/          OPC_Scope, 69, /*->78173*/ // 2 children in Scope
/* 78104*/            OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 78106*/            OPC_MoveParent,
/* 78107*/            OPC_SwitchType /*2 cases */, 30, MVT::v8i8,// ->78140
/* 78110*/              OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 78113*/              OPC_EmitMergeInputChains1_0,
/* 78114*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8i8, 0/*#Ops*/,  // Results = #4
/* 78120*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRBui), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::Untyped, 2/*#Ops*/, 2, 3,  // Results = #5
/* 78128*/              OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 78131*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                            MVT::v8i8, 3/*#Ops*/, 4, 5, 6, 
                        // Src: (scalar_to_vector:{ *:[v8i8] } (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 16
                        // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (LDRBui:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), bsub:{ *:[i32] })
/* 78140*/            /*SwitchType*/ 30, MVT::v16i8,// ->78172
/* 78142*/              OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrModeIndexed8:$ #2 #3
/* 78145*/              OPC_EmitMergeInputChains1_0,
/* 78146*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i8, 0/*#Ops*/,  // Results = #4
/* 78152*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRBui), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::Untyped, 2/*#Ops*/, 2, 3,  // Results = #5
/* 78160*/              OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 78163*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                            MVT::v16i8, 3/*#Ops*/, 4, 5, 6, 
                        // Src: (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i32] } (am_indexed8:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 16
                        // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (LDRBui:{ *:[Untyped] } GPR64sp:{ *:[i64] }:$Rn, uimm12s1:{ *:[i64] }:$offset), bsub:{ *:[i32] })
/* 78172*/            0, // EndSwitchType
/* 78173*/          /*Scope*/ 69, /*->78243*/
/* 78174*/            OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 78176*/            OPC_MoveParent,
/* 78177*/            OPC_SwitchType /*2 cases */, 30, MVT::v4i16,// ->78210
/* 78180*/              OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 78183*/              OPC_EmitMergeInputChains1_0,
/* 78184*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i16, 0/*#Ops*/,  // Results = #4
/* 78190*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRHui), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 78198*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 78201*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                            MVT::v4i16, 3/*#Ops*/, 4, 5, 6, 
                        // Src: (scalar_to_vector:{ *:[v4i16] } (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 16
                        // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (LDRHui:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), hsub:{ *:[i32] })
/* 78210*/            /*SwitchType*/ 30, MVT::v8i16,// ->78242
/* 78212*/              OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrModeIndexed16:$ #2 #3
/* 78215*/              OPC_EmitMergeInputChains1_0,
/* 78216*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8i16, 0/*#Ops*/,  // Results = #4
/* 78222*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRHui), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f16, 2/*#Ops*/, 2, 3,  // Results = #5
/* 78230*/              OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 78233*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                            MVT::v8i16, 3/*#Ops*/, 4, 5, 6, 
                        // Src: (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i32] } (am_indexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 16
                        // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (LDRHui:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, uimm12s2:{ *:[i64] }:$offset), hsub:{ *:[i32] })
/* 78242*/            0, // EndSwitchType
/* 78243*/          0, /*End of Scope*/
/* 78244*/        /*Scope*/ 108, /*->78353*/
/* 78245*/          OPC_CheckPredicate, 30, // Predicate_load
/* 78247*/          OPC_SwitchType /*2 cases */, 67, MVT::i32,// ->78317
/* 78250*/            OPC_MoveParent,
/* 78251*/            OPC_SwitchType /*2 cases */, 30, MVT::v2i32,// ->78284
/* 78254*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 78257*/              OPC_EmitMergeInputChains1_0,
/* 78258*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v2i32, 0/*#Ops*/,  // Results = #4
/* 78264*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRSui), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 78272*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78275*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                            MVT::v2i32, 3/*#Ops*/, 4, 5, 6, 
                        // Src: (scalar_to_vector:{ *:[v2i32] } (ld:{ *:[i32] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                        // Dst: (INSERT_SUBREG:{ *:[v2i32] } (IMPLICIT_DEF:{ *:[v2i32] }), (LDRSui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset), ssub:{ *:[i32] })
/* 78284*/            /*SwitchType*/ 30, MVT::v4i32,// ->78316
/* 78286*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrModeIndexed32:$ #2 #3
/* 78289*/              OPC_EmitMergeInputChains1_0,
/* 78290*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 78296*/              OPC_EmitNode1, TARGET_VAL(AArch64::LDRSui), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #5
/* 78304*/              OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78307*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                            MVT::v4i32, 3/*#Ops*/, 4, 5, 6, 
                        // Src: (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } (am_indexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                        // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (LDRSui:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, uimm12s4:{ *:[i64] }:$offset), ssub:{ *:[i32] })
/* 78316*/            0, // EndSwitchType
/* 78317*/          /*SwitchType*/ 33, MVT::i64,// ->78352
/* 78319*/            OPC_MoveParent,
/* 78320*/            OPC_CheckType, MVT::v2i64,
/* 78322*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectAddrModeIndexed64:$ #2 #3
/* 78325*/            OPC_EmitMergeInputChains1_0,
/* 78326*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #4
/* 78332*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRDui), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 2/*#Ops*/, 2, 3,  // Results = #5
/* 78340*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 78343*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v2i64, 3/*#Ops*/, 4, 5, 6, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } (am_indexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                      // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (LDRDui:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, uimm12s8:{ *:[i64] }:$offset), dsub:{ *:[i32] })
/* 78352*/          0, // EndSwitchType
/* 78353*/        0, /*End of Scope*/
/* 78354*/      /*SwitchOpcode*/ 30, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->78387
/* 78357*/        OPC_RecordChild0, // #0 = $src
/* 78358*/        OPC_CheckChild0Type, MVT::v2i64,
/* 78360*/        OPC_RecordChild1, // #1 = $idx
/* 78361*/        OPC_MoveChild1,
/* 78362*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 78365*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 78367*/        OPC_CheckType, MVT::i64,
/* 78369*/        OPC_MoveParent,
/* 78370*/        OPC_CheckType, MVT::i64,
/* 78372*/        OPC_MoveParent,
/* 78373*/        OPC_CheckType, MVT::v1i64,
/* 78375*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 78377*/        OPC_EmitConvertToTarget, 1,
/* 78379*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CPYi64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (scalar_to_vector:{ *:[v1i64] } (vector_extract:{ *:[i64] } V128:{ *:[v2i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)) - Complexity = 10
                  // Dst: (CPYi64:{ *:[v1i64] } V128:{ *:[v2i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx)
/* 78387*/      0, // EndSwitchOpcode
/* 78388*/    /*Scope*/ 71|128,1/*199*/, /*->78589*/
/* 78390*/      OPC_RecordChild0, // #0 = $Xn
/* 78391*/      OPC_Scope, 37, /*->78430*/ // 2 children in Scope
/* 78393*/        OPC_CheckChild0Type, MVT::i64,
/* 78395*/        OPC_SwitchType /*2 cases */, 11, MVT::v1i64,// ->78409
/* 78398*/          OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 78401*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i64, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v1i64] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v1i64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 78409*/        /*SwitchType*/ 18, MVT::v2i64,// ->78429
/* 78411*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 78417*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 78420*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } FPR64:{ *:[i64] }:$Rn) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), FPR64:{ *:[i64] }:$Rn, dsub:{ *:[i32] })
/* 78429*/        0, // EndSwitchType
/* 78430*/      /*Scope*/ 28|128,1/*156*/, /*->78588*/
/* 78432*/        OPC_CheckChild0Type, MVT::i32,
/* 78434*/        OPC_SwitchType /*6 cases */, 26, MVT::v16i8,// ->78463
/* 78437*/          OPC_EmitInteger, MVT::i32, 0, 
/* 78440*/          OPC_EmitInteger, MVT::i32, AArch64::FPR32RegClassID,
/* 78443*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 78451*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78454*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v16i8] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i32] }, (COPY_TO_REGCLASS:{ *:[f32] } GPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }), ssub:{ *:[i32] })
/* 78463*/        /*SwitchType*/ 26, MVT::v8i8,// ->78491
/* 78465*/          OPC_EmitInteger, MVT::i32, 0, 
/* 78468*/          OPC_EmitInteger, MVT::i32, AArch64::FPR32RegClassID,
/* 78471*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 78479*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78482*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8i8, 3/*#Ops*/, 1, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v8i8] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8i8] } 0:{ *:[i32] }, (COPY_TO_REGCLASS:{ *:[f32] } GPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }), ssub:{ *:[i32] })
/* 78491*/        /*SwitchType*/ 26, MVT::v8i16,// ->78519
/* 78493*/          OPC_EmitInteger, MVT::i32, 0, 
/* 78496*/          OPC_EmitInteger, MVT::i32, AArch64::FPR32RegClassID,
/* 78499*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 78507*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78510*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v8i16] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v8i16] } 0:{ *:[i32] }, (COPY_TO_REGCLASS:{ *:[f32] } GPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }), ssub:{ *:[i32] })
/* 78519*/        /*SwitchType*/ 26, MVT::v4i16,// ->78547
/* 78521*/          OPC_EmitInteger, MVT::i32, 0, 
/* 78524*/          OPC_EmitInteger, MVT::i32, AArch64::FPR32RegClassID,
/* 78527*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 78535*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78538*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4i16, 3/*#Ops*/, 1, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v4i16] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4i16] } 0:{ *:[i32] }, (COPY_TO_REGCLASS:{ *:[f32] } GPR32:{ *:[i32] }:$Rn, FPR32:{ *:[i32] }), ssub:{ *:[i32] })
/* 78547*/        /*SwitchType*/ 18, MVT::v2i32,// ->78567
/* 78549*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2i32, 0/*#Ops*/,  // Results = #1
/* 78555*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78558*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2i32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v2i32] } FPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v2i32] } (IMPLICIT_DEF:{ *:[v2i32] }), FPR32:{ *:[i32] }:$Rn, ssub:{ *:[i32] })
/* 78567*/        /*SwitchType*/ 18, MVT::v4i32,// ->78587
/* 78569*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 78575*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78578*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v4i32] } FPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32:{ *:[i32] }:$Rn, ssub:{ *:[i32] })
/* 78587*/        0, // EndSwitchType
/* 78588*/      0, /*End of Scope*/
/* 78589*/    /*Scope*/ 122|128,2/*378*/, /*->78969*/
/* 78591*/      OPC_MoveChild0,
/* 78592*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 78595*/      OPC_RecordMemRef,
/* 78596*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 78597*/      OPC_RecordChild1, // #1 = $ro_Windexed16:Rn:Rm:offset
/* 78598*/      OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 78600*/      OPC_CheckPredicate, 30, // Predicate_load
/* 78602*/      OPC_SwitchType /*3 cases */, 15|128,1/*143*/, MVT::i32,// ->78749
/* 78606*/        OPC_MoveParent,
/* 78607*/        OPC_SwitchType /*2 cases */, 68, MVT::v4f16,// ->78678
/* 78610*/          OPC_Scope, 32, /*->78644*/ // 2 children in Scope
/* 78612*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 78615*/            OPC_EmitMergeInputChains1_0,
/* 78616*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f16, 0/*#Ops*/,  // Results = #6
/* 78622*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78632*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 78635*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v4f16, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4f16] } (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$offset), hsub:{ *:[i32] })
/* 78644*/          /*Scope*/ 32, /*->78677*/
/* 78645*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 78648*/            OPC_EmitMergeInputChains1_0,
/* 78649*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f16, 0/*#Ops*/,  // Results = #6
/* 78655*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78665*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 78668*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v4f16, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4f16] } (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$offset), hsub:{ *:[i32] })
/* 78677*/          0, /*End of Scope*/
/* 78678*/        /*SwitchType*/ 68, MVT::v8f16,// ->78748
/* 78680*/          OPC_Scope, 32, /*->78714*/ // 2 children in Scope
/* 78682*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrModeWRO<16>:$ #2 #3 #4 #5
/* 78685*/            OPC_EmitMergeInputChains1_0,
/* 78686*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f16, 0/*#Ops*/,  // Results = #6
/* 78692*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78702*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 78705*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v8f16, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v8f16] } (ld:{ *:[i32] } (ro_Windexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), (LDRHroW:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend16:{ *:[i32] }:$offset), hsub:{ *:[i32] })
/* 78714*/          /*Scope*/ 32, /*->78747*/
/* 78715*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrModeXRO<16>:$ #2 #3 #4 #5
/* 78718*/            OPC_EmitMergeInputChains1_0,
/* 78719*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f16, 0/*#Ops*/,  // Results = #6
/* 78725*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRHroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f16, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78735*/            OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 78738*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v8f16, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v8f16] } (ld:{ *:[i32] } (ro_Xindexed16:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), (LDRHroX:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend16:{ *:[i32] }:$offset), hsub:{ *:[i32] })
/* 78747*/          0, /*End of Scope*/
/* 78748*/        0, // EndSwitchType
/* 78749*/      /*SwitchType*/ 15|128,1/*143*/, MVT::f32,// ->78895
/* 78752*/        OPC_MoveParent,
/* 78753*/        OPC_SwitchType /*2 cases */, 68, MVT::v2f32,// ->78824
/* 78756*/          OPC_Scope, 32, /*->78790*/ // 2 children in Scope
/* 78758*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 78761*/            OPC_EmitMergeInputChains1_0,
/* 78762*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #6
/* 78768*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78778*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78781*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v2f32, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v2f32] } (ld:{ *:[f32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), (LDRSroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$offset), ssub:{ *:[i32] })
/* 78790*/          /*Scope*/ 32, /*->78823*/
/* 78791*/            OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 78794*/            OPC_EmitMergeInputChains1_0,
/* 78795*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #6
/* 78801*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78811*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78814*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v2f32, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v2f32] } (ld:{ *:[f32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), (LDRSroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$offset), ssub:{ *:[i32] })
/* 78823*/          0, /*End of Scope*/
/* 78824*/        /*SwitchType*/ 68, MVT::v4f32,// ->78894
/* 78826*/          OPC_Scope, 32, /*->78860*/ // 2 children in Scope
/* 78828*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrModeWRO<32>:$ #2 #3 #4 #5
/* 78831*/            OPC_EmitMergeInputChains1_0,
/* 78832*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f32, 0/*#Ops*/,  // Results = #6
/* 78838*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroW), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78848*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78851*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v4f32, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } (ro_Windexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), (LDRSroW:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend32:{ *:[i32] }:$offset), ssub:{ *:[i32] })
/* 78860*/          /*Scope*/ 32, /*->78893*/
/* 78861*/            OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrModeXRO<32>:$ #2 #3 #4 #5
/* 78864*/            OPC_EmitMergeInputChains1_0,
/* 78865*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f32, 0/*#Ops*/,  // Results = #6
/* 78871*/            OPC_EmitNode1, TARGET_VAL(AArch64::LDRSroX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78881*/            OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 78884*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                          MVT::v4f32, 3/*#Ops*/, 6, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } (ro_Xindexed32:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                      // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), (LDRSroX:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend32:{ *:[i32] }:$offset), ssub:{ *:[i32] })
/* 78893*/          0, /*End of Scope*/
/* 78894*/        0, // EndSwitchType
/* 78895*/      /*SwitchType*/ 71, MVT::f64,// ->78968
/* 78897*/        OPC_MoveParent,
/* 78898*/        OPC_CheckType, MVT::v2f64,
/* 78900*/        OPC_Scope, 32, /*->78934*/ // 2 children in Scope
/* 78902*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrModeWRO<64>:$ #2 #3 #4 #5
/* 78905*/          OPC_EmitMergeInputChains1_0,
/* 78906*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #6
/* 78912*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRDroW), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78922*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 78925*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                        MVT::v2f64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } (ro_Windexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                    // Dst: (INSERT_SUBREG:{ *:[v2f64] } (IMPLICIT_DEF:{ *:[v2f64] }), (LDRDroW:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR32:{ *:[i32] }:$Rm, ro_Wextend64:{ *:[i32] }:$offset), dsub:{ *:[i32] })
/* 78934*/        /*Scope*/ 32, /*->78967*/
/* 78935*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddrModeXRO<64>:$ #2 #3 #4 #5
/* 78938*/          OPC_EmitMergeInputChains1_0,
/* 78939*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #6
/* 78945*/          OPC_EmitNode1, TARGET_VAL(AArch64::LDRDroX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #7
/* 78955*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 78958*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0|OPFL_Chain,
                        MVT::v2f64, 3/*#Ops*/, 6, 7, 8, 
                    // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } (ro_Xindexed64:{ *:[iPTR] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$offset))<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 32
                    // Dst: (INSERT_SUBREG:{ *:[v2f64] } (IMPLICIT_DEF:{ *:[v2f64] }), (LDRDroX:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn, GPR64:{ *:[i64] }:$Rm, ro_Xextend64:{ *:[i32] }:$offset), dsub:{ *:[i32] })
/* 78967*/        0, /*End of Scope*/
/* 78968*/      0, // EndSwitchType
/* 78969*/    /*Scope*/ 11|128,1/*139*/, /*->79110*/
/* 78971*/      OPC_RecordChild0, // #0 = $Xn
/* 78972*/      OPC_Scope, 29, /*->79003*/ // 4 children in Scope
/* 78974*/        OPC_CheckChild0Type, MVT::f64,
/* 78976*/        OPC_SwitchType /*2 cases */, 3, MVT::v1f64,// ->78982
/* 78979*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (scalar_to_vector:{ *:[v1f64] } FPR64:{ *:[f64] }:$Xn) - Complexity = 3
                     // Dst: FPR64:{ *:[v1f64] }:$Xn
/* 78982*/        /*SwitchType*/ 18, MVT::v2f64,// ->79002
/* 78984*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #1
/* 78990*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 78993*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v2f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v2f64] } (IMPLICIT_DEF:{ *:[v2f64] }), FPR64:{ *:[f64] }:$Rn, dsub:{ *:[i32] })
/* 79002*/        0, // EndSwitchType
/* 79003*/      /*Scope*/ 15, /*->79019*/
/* 79004*/        OPC_CheckChild0Type, MVT::i64,
/* 79006*/        OPC_CheckType, MVT::v1f64,
/* 79008*/        OPC_EmitInteger, MVT::i32, AArch64::FPR64RegClassID,
/* 79011*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1f64, 2/*#Ops*/, 0, 1, 
                  // Src: (scalar_to_vector:{ *:[v1f64] } GPR64:{ *:[i64] }:$Xn) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1f64] } GPR64:{ *:[i64] }:$Xn, FPR64:{ *:[i32] })
/* 79019*/      /*Scope*/ 44, /*->79064*/
/* 79020*/        OPC_CheckChild0Type, MVT::f16,
/* 79022*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f16,// ->79043
/* 79025*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f16, 0/*#Ops*/,  // Results = #1
/* 79031*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 79034*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f16, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v4f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), FPR16:{ *:[f16] }:$Rn, hsub:{ *:[i32] })
/* 79043*/        /*SwitchType*/ 18, MVT::v8f16,// ->79063
/* 79045*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f16, 0/*#Ops*/,  // Results = #1
/* 79051*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 79054*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f16, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v8f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), FPR16:{ *:[f16] }:$Rn, hsub:{ *:[i32] })
/* 79063*/        0, // EndSwitchType
/* 79064*/      /*Scope*/ 44, /*->79109*/
/* 79065*/        OPC_CheckChild0Type, MVT::f32,
/* 79067*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->79088
/* 79070*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 79076*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 79079*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), FPR32:{ *:[f32] }:$Rn, ssub:{ *:[i32] })
/* 79088*/        /*SwitchType*/ 18, MVT::v2f32,// ->79108
/* 79090*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/* 79096*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 79099*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v2f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), FPR32:{ *:[f32] }:$Rn, ssub:{ *:[i32] })
/* 79108*/        0, // EndSwitchType
/* 79109*/      0, /*End of Scope*/
/* 79110*/    0, /*End of Scope*/
/* 79111*/  /*SwitchOpcode*/ 125|128,6/*893*/, TARGET_VAL(AArch64ISD::VSHL),// ->80008
/* 79115*/    OPC_Scope, 99|128,5/*739*/, /*->79857*/ // 2 children in Scope
/* 79118*/      OPC_MoveChild0,
/* 79119*/      OPC_SwitchOpcode /*3 cases */, 0|128,1/*128*/, TARGET_VAL(ISD::ANY_EXTEND),// ->79252
/* 79124*/        OPC_Scope, 70, /*->79196*/ // 2 children in Scope
/* 79126*/          OPC_MoveChild0,
/* 79127*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 79130*/          OPC_RecordChild0, // #0 = $Rn
/* 79131*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->79153
/* 79134*/            OPC_CheckChild1Integer, 8, 
/* 79136*/            OPC_CheckChild1Type, MVT::i64,
/* 79138*/            OPC_MoveParent,
/* 79139*/            OPC_MoveParent,
/* 79140*/            OPC_CheckChild1Integer, 8, 
/* 79142*/            OPC_CheckChild1Type, MVT::i32,
/* 79144*/            OPC_CheckType, MVT::v8i16,
/* 79146*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv16i8), 0,
                          MVT::v8i16, 1/*#Ops*/, 0, 
                      // Src: (AArch64vshl:{ *:[v8i16] } (anyext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), 8:{ *:[i32] }) - Complexity = 19
                      // Dst: (SHLLv16i8:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn)
/* 79153*/          /*SwitchType*/ 19, MVT::v4i16,// ->79174
/* 79155*/            OPC_CheckChild1Integer, 4, 
/* 79157*/            OPC_CheckChild1Type, MVT::i64,
/* 79159*/            OPC_MoveParent,
/* 79160*/            OPC_MoveParent,
/* 79161*/            OPC_CheckChild1Integer, 16, 
/* 79163*/            OPC_CheckChild1Type, MVT::i32,
/* 79165*/            OPC_CheckType, MVT::v4i32,
/* 79167*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv8i16), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (AArch64vshl:{ *:[v4i32] } (anyext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), 16:{ *:[i32] }) - Complexity = 19
                      // Dst: (SHLLv8i16:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn)
/* 79174*/          /*SwitchType*/ 19, MVT::v2i32,// ->79195
/* 79176*/            OPC_CheckChild1Integer, 2, 
/* 79178*/            OPC_CheckChild1Type, MVT::i64,
/* 79180*/            OPC_MoveParent,
/* 79181*/            OPC_MoveParent,
/* 79182*/            OPC_CheckChild1Integer, 32, 
/* 79184*/            OPC_CheckChild1Type, MVT::i32,
/* 79186*/            OPC_CheckType, MVT::v2i64,
/* 79188*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv4i32), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (AArch64vshl:{ *:[v2i64] } (anyext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), 32:{ *:[i32] }) - Complexity = 19
                      // Dst: (SHLLv4i32:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn)
/* 79195*/          0, // EndSwitchType
/* 79196*/        /*Scope*/ 54, /*->79251*/
/* 79197*/          OPC_RecordChild0, // #0 = $Rn
/* 79198*/          OPC_Scope, 16, /*->79216*/ // 3 children in Scope
/* 79200*/            OPC_CheckChild0Type, MVT::v8i8,
/* 79202*/            OPC_MoveParent,
/* 79203*/            OPC_CheckChild1Integer, 8, 
/* 79205*/            OPC_CheckChild1Type, MVT::i32,
/* 79207*/            OPC_CheckType, MVT::v8i16,
/* 79209*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv8i8), 0,
                          MVT::v8i16, 1/*#Ops*/, 0, 
                      // Src: (AArch64vshl:{ *:[v8i16] } (anyext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                      // Dst: (SHLLv8i8:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn)
/* 79216*/          /*Scope*/ 16, /*->79233*/
/* 79217*/            OPC_CheckChild0Type, MVT::v4i16,
/* 79219*/            OPC_MoveParent,
/* 79220*/            OPC_CheckChild1Integer, 16, 
/* 79222*/            OPC_CheckChild1Type, MVT::i32,
/* 79224*/            OPC_CheckType, MVT::v4i32,
/* 79226*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv4i16), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (AArch64vshl:{ *:[v4i32] } (anyext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                      // Dst: (SHLLv4i16:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn)
/* 79233*/          /*Scope*/ 16, /*->79250*/
/* 79234*/            OPC_CheckChild0Type, MVT::v2i32,
/* 79236*/            OPC_MoveParent,
/* 79237*/            OPC_CheckChild1Integer, 32, 
/* 79239*/            OPC_CheckChild1Type, MVT::i32,
/* 79241*/            OPC_CheckType, MVT::v2i64,
/* 79243*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv2i32), 0,
                          MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (AArch64vshl:{ *:[v2i64] } (anyext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                      // Dst: (SHLLv2i32:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn)
/* 79250*/          0, /*End of Scope*/
/* 79251*/        0, /*End of Scope*/
/* 79252*/      /*SwitchOpcode*/ 42|128,2/*298*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->79554
/* 79256*/        OPC_Scope, 26|128,1/*154*/, /*->79413*/ // 2 children in Scope
/* 79259*/          OPC_MoveChild0,
/* 79260*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 79263*/          OPC_RecordChild0, // #0 = $Rn
/* 79264*/          OPC_SwitchType /*3 cases */, 47, MVT::v8i8,// ->79314
/* 79267*/            OPC_CheckChild1Integer, 8, 
/* 79269*/            OPC_CheckChild1Type, MVT::i64,
/* 79271*/            OPC_MoveParent,
/* 79272*/            OPC_MoveParent,
/* 79273*/            OPC_Scope, 13, /*->79288*/ // 2 children in Scope
/* 79275*/              OPC_CheckChild1Integer, 8, 
/* 79277*/              OPC_CheckChild1Type, MVT::i32,
/* 79279*/              OPC_CheckType, MVT::v8i16,
/* 79281*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv16i8), 0,
                            MVT::v8i16, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), 8:{ *:[i32] }) - Complexity = 19
                        // Dst: (SHLLv16i8:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn)
/* 79288*/            /*Scope*/ 24, /*->79313*/
/* 79289*/              OPC_RecordChild1, // #1 = $imm
/* 79290*/              OPC_MoveChild1,
/* 79291*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79294*/              OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 79296*/              OPC_CheckType, MVT::i32,
/* 79298*/              OPC_MoveParent,
/* 79299*/              OPC_CheckType, MVT::v8i16,
/* 79301*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79303*/              OPC_EmitConvertToTarget, 1,
/* 79305*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv16i8_shift), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v8i16] } (zext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 18
                        // Dst: (USHLLv16i8_shift:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79313*/            0, /*End of Scope*/
/* 79314*/          /*SwitchType*/ 47, MVT::v4i16,// ->79363
/* 79316*/            OPC_CheckChild1Integer, 4, 
/* 79318*/            OPC_CheckChild1Type, MVT::i64,
/* 79320*/            OPC_MoveParent,
/* 79321*/            OPC_MoveParent,
/* 79322*/            OPC_Scope, 13, /*->79337*/ // 2 children in Scope
/* 79324*/              OPC_CheckChild1Integer, 16, 
/* 79326*/              OPC_CheckChild1Type, MVT::i32,
/* 79328*/              OPC_CheckType, MVT::v4i32,
/* 79330*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv8i16), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v4i32] } (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), 16:{ *:[i32] }) - Complexity = 19
                        // Dst: (SHLLv8i16:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn)
/* 79337*/            /*Scope*/ 24, /*->79362*/
/* 79338*/              OPC_RecordChild1, // #1 = $imm
/* 79339*/              OPC_MoveChild1,
/* 79340*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79343*/              OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 79345*/              OPC_CheckType, MVT::i32,
/* 79347*/              OPC_MoveParent,
/* 79348*/              OPC_CheckType, MVT::v4i32,
/* 79350*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79352*/              OPC_EmitConvertToTarget, 1,
/* 79354*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv8i16_shift), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v4i32] } (zext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 18
                        // Dst: (USHLLv8i16_shift:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79362*/            0, /*End of Scope*/
/* 79363*/          /*SwitchType*/ 47, MVT::v2i32,// ->79412
/* 79365*/            OPC_CheckChild1Integer, 2, 
/* 79367*/            OPC_CheckChild1Type, MVT::i64,
/* 79369*/            OPC_MoveParent,
/* 79370*/            OPC_MoveParent,
/* 79371*/            OPC_Scope, 13, /*->79386*/ // 2 children in Scope
/* 79373*/              OPC_CheckChild1Integer, 32, 
/* 79375*/              OPC_CheckChild1Type, MVT::i32,
/* 79377*/              OPC_CheckType, MVT::v2i64,
/* 79379*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv4i32), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v2i64] } (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), 32:{ *:[i32] }) - Complexity = 19
                        // Dst: (SHLLv4i32:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn)
/* 79386*/            /*Scope*/ 24, /*->79411*/
/* 79387*/              OPC_RecordChild1, // #1 = $imm
/* 79388*/              OPC_MoveChild1,
/* 79389*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79392*/              OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 79394*/              OPC_CheckType, MVT::i32,
/* 79396*/              OPC_MoveParent,
/* 79397*/              OPC_CheckType, MVT::v2i64,
/* 79399*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79401*/              OPC_EmitConvertToTarget, 1,
/* 79403*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv4i32_shift), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v2i64] } (zext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 18
                        // Dst: (USHLLv4i32_shift:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79411*/            0, /*End of Scope*/
/* 79412*/          0, // EndSwitchType
/* 79413*/        /*Scope*/ 10|128,1/*138*/, /*->79553*/
/* 79415*/          OPC_RecordChild0, // #0 = $Rn
/* 79416*/          OPC_Scope, 44, /*->79462*/ // 3 children in Scope
/* 79418*/            OPC_CheckChild0Type, MVT::v8i8,
/* 79420*/            OPC_MoveParent,
/* 79421*/            OPC_Scope, 13, /*->79436*/ // 2 children in Scope
/* 79423*/              OPC_CheckChild1Integer, 8, 
/* 79425*/              OPC_CheckChild1Type, MVT::i32,
/* 79427*/              OPC_CheckType, MVT::v8i16,
/* 79429*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv8i8), 0,
                            MVT::v8i16, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                        // Dst: (SHLLv8i8:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn)
/* 79436*/            /*Scope*/ 24, /*->79461*/
/* 79437*/              OPC_RecordChild1, // #1 = $imm
/* 79438*/              OPC_MoveChild1,
/* 79439*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79442*/              OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 79444*/              OPC_CheckType, MVT::i32,
/* 79446*/              OPC_MoveParent,
/* 79447*/              OPC_CheckType, MVT::v8i16,
/* 79449*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79451*/              OPC_EmitConvertToTarget, 1,
/* 79453*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv8i8_shift), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v8i16] } (zext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 10
                        // Dst: (USHLLv8i8_shift:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79461*/            0, /*End of Scope*/
/* 79462*/          /*Scope*/ 44, /*->79507*/
/* 79463*/            OPC_CheckChild0Type, MVT::v4i16,
/* 79465*/            OPC_MoveParent,
/* 79466*/            OPC_Scope, 13, /*->79481*/ // 2 children in Scope
/* 79468*/              OPC_CheckChild1Integer, 16, 
/* 79470*/              OPC_CheckChild1Type, MVT::i32,
/* 79472*/              OPC_CheckType, MVT::v4i32,
/* 79474*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv4i16), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v4i32] } (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                        // Dst: (SHLLv4i16:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn)
/* 79481*/            /*Scope*/ 24, /*->79506*/
/* 79482*/              OPC_RecordChild1, // #1 = $imm
/* 79483*/              OPC_MoveChild1,
/* 79484*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79487*/              OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 79489*/              OPC_CheckType, MVT::i32,
/* 79491*/              OPC_MoveParent,
/* 79492*/              OPC_CheckType, MVT::v4i32,
/* 79494*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79496*/              OPC_EmitConvertToTarget, 1,
/* 79498*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv4i16_shift), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v4i32] } (zext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 10
                        // Dst: (USHLLv4i16_shift:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79506*/            0, /*End of Scope*/
/* 79507*/          /*Scope*/ 44, /*->79552*/
/* 79508*/            OPC_CheckChild0Type, MVT::v2i32,
/* 79510*/            OPC_MoveParent,
/* 79511*/            OPC_Scope, 13, /*->79526*/ // 2 children in Scope
/* 79513*/              OPC_CheckChild1Integer, 32, 
/* 79515*/              OPC_CheckChild1Type, MVT::i32,
/* 79517*/              OPC_CheckType, MVT::v2i64,
/* 79519*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv2i32), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v2i64] } (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                        // Dst: (SHLLv2i32:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn)
/* 79526*/            /*Scope*/ 24, /*->79551*/
/* 79527*/              OPC_RecordChild1, // #1 = $imm
/* 79528*/              OPC_MoveChild1,
/* 79529*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79532*/              OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 79534*/              OPC_CheckType, MVT::i32,
/* 79536*/              OPC_MoveParent,
/* 79537*/              OPC_CheckType, MVT::v2i64,
/* 79539*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79541*/              OPC_EmitConvertToTarget, 1,
/* 79543*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::USHLLv2i32_shift), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v2i64] } (zext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 10
                        // Dst: (USHLLv2i32_shift:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79551*/            0, /*End of Scope*/
/* 79552*/          0, /*End of Scope*/
/* 79553*/        0, /*End of Scope*/
/* 79554*/      /*SwitchOpcode*/ 42|128,2/*298*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->79856
/* 79558*/        OPC_Scope, 26|128,1/*154*/, /*->79715*/ // 2 children in Scope
/* 79561*/          OPC_MoveChild0,
/* 79562*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 79565*/          OPC_RecordChild0, // #0 = $Rn
/* 79566*/          OPC_SwitchType /*3 cases */, 47, MVT::v8i8,// ->79616
/* 79569*/            OPC_CheckChild1Integer, 8, 
/* 79571*/            OPC_CheckChild1Type, MVT::i64,
/* 79573*/            OPC_MoveParent,
/* 79574*/            OPC_MoveParent,
/* 79575*/            OPC_Scope, 13, /*->79590*/ // 2 children in Scope
/* 79577*/              OPC_CheckChild1Integer, 8, 
/* 79579*/              OPC_CheckChild1Type, MVT::i32,
/* 79581*/              OPC_CheckType, MVT::v8i16,
/* 79583*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv16i8), 0,
                            MVT::v8i16, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v8i16] } (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), 8:{ *:[i32] }) - Complexity = 19
                        // Dst: (SHLLv16i8:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn)
/* 79590*/            /*Scope*/ 24, /*->79615*/
/* 79591*/              OPC_RecordChild1, // #1 = $imm
/* 79592*/              OPC_MoveChild1,
/* 79593*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79596*/              OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 79598*/              OPC_CheckType, MVT::i32,
/* 79600*/              OPC_MoveParent,
/* 79601*/              OPC_CheckType, MVT::v8i16,
/* 79603*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79605*/              OPC_EmitConvertToTarget, 1,
/* 79607*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv16i8_shift), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v8i16] } (sext:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] })), (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 18
                        // Dst: (SSHLLv16i8_shift:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79615*/            0, /*End of Scope*/
/* 79616*/          /*SwitchType*/ 47, MVT::v4i16,// ->79665
/* 79618*/            OPC_CheckChild1Integer, 4, 
/* 79620*/            OPC_CheckChild1Type, MVT::i64,
/* 79622*/            OPC_MoveParent,
/* 79623*/            OPC_MoveParent,
/* 79624*/            OPC_Scope, 13, /*->79639*/ // 2 children in Scope
/* 79626*/              OPC_CheckChild1Integer, 16, 
/* 79628*/              OPC_CheckChild1Type, MVT::i32,
/* 79630*/              OPC_CheckType, MVT::v4i32,
/* 79632*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv8i16), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v4i32] } (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), 16:{ *:[i32] }) - Complexity = 19
                        // Dst: (SHLLv8i16:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn)
/* 79639*/            /*Scope*/ 24, /*->79664*/
/* 79640*/              OPC_RecordChild1, // #1 = $imm
/* 79641*/              OPC_MoveChild1,
/* 79642*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79645*/              OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 79647*/              OPC_CheckType, MVT::i32,
/* 79649*/              OPC_MoveParent,
/* 79650*/              OPC_CheckType, MVT::v4i32,
/* 79652*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79654*/              OPC_EmitConvertToTarget, 1,
/* 79656*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv8i16_shift), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v4i32] } (sext:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] })), (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 18
                        // Dst: (SSHLLv8i16_shift:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79664*/            0, /*End of Scope*/
/* 79665*/          /*SwitchType*/ 47, MVT::v2i32,// ->79714
/* 79667*/            OPC_CheckChild1Integer, 2, 
/* 79669*/            OPC_CheckChild1Type, MVT::i64,
/* 79671*/            OPC_MoveParent,
/* 79672*/            OPC_MoveParent,
/* 79673*/            OPC_Scope, 13, /*->79688*/ // 2 children in Scope
/* 79675*/              OPC_CheckChild1Integer, 32, 
/* 79677*/              OPC_CheckChild1Type, MVT::i32,
/* 79679*/              OPC_CheckType, MVT::v2i64,
/* 79681*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv4i32), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v2i64] } (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), 32:{ *:[i32] }) - Complexity = 19
                        // Dst: (SHLLv4i32:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn)
/* 79688*/            /*Scope*/ 24, /*->79713*/
/* 79689*/              OPC_RecordChild1, // #1 = $imm
/* 79690*/              OPC_MoveChild1,
/* 79691*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79694*/              OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 79696*/              OPC_CheckType, MVT::i32,
/* 79698*/              OPC_MoveParent,
/* 79699*/              OPC_CheckType, MVT::v2i64,
/* 79701*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79703*/              OPC_EmitConvertToTarget, 1,
/* 79705*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv4i32_shift), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v2i64] } (sext:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] })), (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 18
                        // Dst: (SSHLLv4i32_shift:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79713*/            0, /*End of Scope*/
/* 79714*/          0, // EndSwitchType
/* 79715*/        /*Scope*/ 10|128,1/*138*/, /*->79855*/
/* 79717*/          OPC_RecordChild0, // #0 = $Rn
/* 79718*/          OPC_Scope, 44, /*->79764*/ // 3 children in Scope
/* 79720*/            OPC_CheckChild0Type, MVT::v8i8,
/* 79722*/            OPC_MoveParent,
/* 79723*/            OPC_Scope, 13, /*->79738*/ // 2 children in Scope
/* 79725*/              OPC_CheckChild1Integer, 8, 
/* 79727*/              OPC_CheckChild1Type, MVT::i32,
/* 79729*/              OPC_CheckType, MVT::v8i16,
/* 79731*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv8i8), 0,
                            MVT::v8i16, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v8i16] } (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                        // Dst: (SHLLv8i8:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn)
/* 79738*/            /*Scope*/ 24, /*->79763*/
/* 79739*/              OPC_RecordChild1, // #1 = $imm
/* 79740*/              OPC_MoveChild1,
/* 79741*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79744*/              OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 79746*/              OPC_CheckType, MVT::i32,
/* 79748*/              OPC_MoveParent,
/* 79749*/              OPC_CheckType, MVT::v8i16,
/* 79751*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79753*/              OPC_EmitConvertToTarget, 1,
/* 79755*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv8i8_shift), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v8i16] } (sext:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn), (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 10
                        // Dst: (SSHLLv8i8_shift:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79763*/            0, /*End of Scope*/
/* 79764*/          /*Scope*/ 44, /*->79809*/
/* 79765*/            OPC_CheckChild0Type, MVT::v4i16,
/* 79767*/            OPC_MoveParent,
/* 79768*/            OPC_Scope, 13, /*->79783*/ // 2 children in Scope
/* 79770*/              OPC_CheckChild1Integer, 16, 
/* 79772*/              OPC_CheckChild1Type, MVT::i32,
/* 79774*/              OPC_CheckType, MVT::v4i32,
/* 79776*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv4i16), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v4i32] } (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                        // Dst: (SHLLv4i16:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn)
/* 79783*/            /*Scope*/ 24, /*->79808*/
/* 79784*/              OPC_RecordChild1, // #1 = $imm
/* 79785*/              OPC_MoveChild1,
/* 79786*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79789*/              OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 79791*/              OPC_CheckType, MVT::i32,
/* 79793*/              OPC_MoveParent,
/* 79794*/              OPC_CheckType, MVT::v4i32,
/* 79796*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79798*/              OPC_EmitConvertToTarget, 1,
/* 79800*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv4i16_shift), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v4i32] } (sext:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn), (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 10
                        // Dst: (SSHLLv4i16_shift:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79808*/            0, /*End of Scope*/
/* 79809*/          /*Scope*/ 44, /*->79854*/
/* 79810*/            OPC_CheckChild0Type, MVT::v2i32,
/* 79812*/            OPC_MoveParent,
/* 79813*/            OPC_Scope, 13, /*->79828*/ // 2 children in Scope
/* 79815*/              OPC_CheckChild1Integer, 32, 
/* 79817*/              OPC_CheckChild1Type, MVT::i32,
/* 79819*/              OPC_CheckType, MVT::v2i64,
/* 79821*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLLv2i32), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (AArch64vshl:{ *:[v2i64] } (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                        // Dst: (SHLLv2i32:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn)
/* 79828*/            /*Scope*/ 24, /*->79853*/
/* 79829*/              OPC_RecordChild1, // #1 = $imm
/* 79830*/              OPC_MoveChild1,
/* 79831*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79834*/              OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 79836*/              OPC_CheckType, MVT::i32,
/* 79838*/              OPC_MoveParent,
/* 79839*/              OPC_CheckType, MVT::v2i64,
/* 79841*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79843*/              OPC_EmitConvertToTarget, 1,
/* 79845*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SSHLLv2i32_shift), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 2, 
                        // Src: (AArch64vshl:{ *:[v2i64] } (sext:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn), (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 10
                        // Dst: (SSHLLv2i32_shift:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79853*/            0, /*End of Scope*/
/* 79854*/          0, /*End of Scope*/
/* 79855*/        0, /*End of Scope*/
/* 79856*/      0, // EndSwitchOpcode
/* 79857*/    /*Scope*/ 20|128,1/*148*/, /*->80007*/
/* 79859*/      OPC_RecordChild0, // #0 = $Rn
/* 79860*/      OPC_RecordChild1, // #1 = $imm
/* 79861*/      OPC_MoveChild1,
/* 79862*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 79865*/      OPC_CheckType, MVT::i32,
/* 79867*/      OPC_Scope, 17, /*->79886*/ // 5 children in Scope
/* 79869*/        OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 79871*/        OPC_MoveParent,
/* 79872*/        OPC_CheckType, MVT::v1i64,
/* 79874*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79876*/        OPC_EmitConvertToTarget, 1,
/* 79878*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLd), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vshl:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                  // Dst: (SHLd:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79886*/      /*Scope*/ 33, /*->79920*/
/* 79887*/        OPC_CheckPredicate, 18, // Predicate_vecshiftL8
/* 79889*/        OPC_MoveParent,
/* 79890*/        OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->79905
/* 79893*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79895*/          OPC_EmitConvertToTarget, 1,
/* 79897*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLv8i8_shift), 0,
                        MVT::v8i8, 2/*#Ops*/, 0, 2, 
                    // Src: (AArch64vshl:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 7
                    // Dst: (SHLv8i8_shift:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79905*/        /*SwitchType*/ 12, MVT::v16i8,// ->79919
/* 79907*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79909*/          OPC_EmitConvertToTarget, 1,
/* 79911*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLv16i8_shift), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2, 
                    // Src: (AArch64vshl:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL8>>:$imm) - Complexity = 7
                    // Dst: (SHLv16i8_shift:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79919*/        0, // EndSwitchType
/* 79920*/      /*Scope*/ 33, /*->79954*/
/* 79921*/        OPC_CheckPredicate, 19, // Predicate_vecshiftL16
/* 79923*/        OPC_MoveParent,
/* 79924*/        OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->79939
/* 79927*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79929*/          OPC_EmitConvertToTarget, 1,
/* 79931*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLv4i16_shift), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 2, 
                    // Src: (AArch64vshl:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 7
                    // Dst: (SHLv4i16_shift:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79939*/        /*SwitchType*/ 12, MVT::v8i16,// ->79953
/* 79941*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79943*/          OPC_EmitConvertToTarget, 1,
/* 79945*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLv8i16_shift), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 2, 
                    // Src: (AArch64vshl:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL16>>:$imm) - Complexity = 7
                    // Dst: (SHLv8i16_shift:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79953*/        0, // EndSwitchType
/* 79954*/      /*Scope*/ 33, /*->79988*/
/* 79955*/        OPC_CheckPredicate, 20, // Predicate_vecshiftL32
/* 79957*/        OPC_MoveParent,
/* 79958*/        OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->79973
/* 79961*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79963*/          OPC_EmitConvertToTarget, 1,
/* 79965*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLv2i32_shift), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 2, 
                    // Src: (AArch64vshl:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                    // Dst: (SHLv2i32_shift:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79973*/        /*SwitchType*/ 12, MVT::v4i32,// ->79987
/* 79975*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79977*/          OPC_EmitConvertToTarget, 1,
/* 79979*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLv4i32_shift), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2, 
                    // Src: (AArch64vshl:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL32>>:$imm) - Complexity = 7
                    // Dst: (SHLv4i32_shift:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 79987*/        0, // EndSwitchType
/* 79988*/      /*Scope*/ 17, /*->80006*/
/* 79989*/        OPC_CheckPredicate, 21, // Predicate_vecshiftL64
/* 79991*/        OPC_MoveParent,
/* 79992*/        OPC_CheckType, MVT::v2i64,
/* 79994*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 79996*/        OPC_EmitConvertToTarget, 1,
/* 79998*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHLv2i64_shift), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64vshl:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftL64>>:$imm) - Complexity = 7
                  // Dst: (SHLv2i64_shift:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 80006*/      0, /*End of Scope*/
/* 80007*/    0, /*End of Scope*/
/* 80008*/  /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(AArch64ISD::SMULL),// ->80146
/* 80012*/    OPC_Scope, 88, /*->80102*/ // 2 children in Scope
/* 80014*/      OPC_MoveChild0,
/* 80015*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 80018*/      OPC_RecordChild0, // #0 = $Rn
/* 80019*/      OPC_SwitchType /*3 cases */, 25, MVT::v8i8,// ->80047
/* 80022*/        OPC_CheckChild1Integer, 8, 
/* 80024*/        OPC_CheckChild1Type, MVT::i64,
/* 80026*/        OPC_MoveParent,
/* 80027*/        OPC_MoveChild1,
/* 80028*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 80031*/        OPC_RecordChild0, // #1 = $Rm
/* 80032*/        OPC_CheckChild1Integer, 8, 
/* 80034*/        OPC_CheckChild1Type, MVT::i64,
/* 80036*/        OPC_MoveParent,
/* 80037*/        OPC_CheckType, MVT::v8i16,
/* 80039*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv16i8_v8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64smull:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })) - Complexity = 19
                  // Dst: (SMULLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 80047*/      /*SwitchType*/ 25, MVT::v4i16,// ->80074
/* 80049*/        OPC_CheckChild1Integer, 4, 
/* 80051*/        OPC_CheckChild1Type, MVT::i64,
/* 80053*/        OPC_MoveParent,
/* 80054*/        OPC_MoveChild1,
/* 80055*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 80058*/        OPC_RecordChild0, // #1 = $Rm
/* 80059*/        OPC_CheckChild1Integer, 4, 
/* 80061*/        OPC_CheckChild1Type, MVT::i64,
/* 80063*/        OPC_MoveParent,
/* 80064*/        OPC_CheckType, MVT::v4i32,
/* 80066*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv8i16_v4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64smull:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })) - Complexity = 19
                  // Dst: (SMULLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 80074*/      /*SwitchType*/ 25, MVT::v2i32,// ->80101
/* 80076*/        OPC_CheckChild1Integer, 2, 
/* 80078*/        OPC_CheckChild1Type, MVT::i64,
/* 80080*/        OPC_MoveParent,
/* 80081*/        OPC_MoveChild1,
/* 80082*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 80085*/        OPC_RecordChild0, // #1 = $Rm
/* 80086*/        OPC_CheckChild1Integer, 2, 
/* 80088*/        OPC_CheckChild1Type, MVT::i64,
/* 80090*/        OPC_MoveParent,
/* 80091*/        OPC_CheckType, MVT::v2i64,
/* 80093*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv4i32_v2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64smull:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })) - Complexity = 19
                  // Dst: (SMULLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 80101*/      0, // EndSwitchType
/* 80102*/    /*Scope*/ 42, /*->80145*/
/* 80103*/      OPC_RecordChild0, // #0 = $Rn
/* 80104*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->80118
/* 80107*/        OPC_CheckChild0Type, MVT::v8i8,
/* 80109*/        OPC_RecordChild1, // #1 = $Rm
/* 80110*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv8i8_v8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64smull:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                  // Dst: (SMULLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 80118*/      /*SwitchType*/ 11, MVT::v4i32,// ->80131
/* 80120*/        OPC_CheckChild0Type, MVT::v4i16,
/* 80122*/        OPC_RecordChild1, // #1 = $Rm
/* 80123*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv4i16_v4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64smull:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                  // Dst: (SMULLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 80131*/      /*SwitchType*/ 11, MVT::v2i64,// ->80144
/* 80133*/        OPC_CheckChild0Type, MVT::v2i32,
/* 80135*/        OPC_RecordChild1, // #1 = $Rm
/* 80136*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMULLv2i32_v2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64smull:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                  // Dst: (SMULLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 80144*/      0, // EndSwitchType
/* 80145*/    0, /*End of Scope*/
/* 80146*/  /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(AArch64ISD::UMULL),// ->80284
/* 80150*/    OPC_Scope, 88, /*->80240*/ // 2 children in Scope
/* 80152*/      OPC_MoveChild0,
/* 80153*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 80156*/      OPC_RecordChild0, // #0 = $Rn
/* 80157*/      OPC_SwitchType /*3 cases */, 25, MVT::v8i8,// ->80185
/* 80160*/        OPC_CheckChild1Integer, 8, 
/* 80162*/        OPC_CheckChild1Type, MVT::i64,
/* 80164*/        OPC_MoveParent,
/* 80165*/        OPC_MoveChild1,
/* 80166*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 80169*/        OPC_RecordChild0, // #1 = $Rm
/* 80170*/        OPC_CheckChild1Integer, 8, 
/* 80172*/        OPC_CheckChild1Type, MVT::i64,
/* 80174*/        OPC_MoveParent,
/* 80175*/        OPC_CheckType, MVT::v8i16,
/* 80177*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv16i8_v8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64umull:{ *:[v8i16] } (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }), (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rm, 8:{ *:[i64] })) - Complexity = 19
                  // Dst: (UMULLv16i8_v8i16:{ *:[v8i16] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 80185*/      /*SwitchType*/ 25, MVT::v4i16,// ->80212
/* 80187*/        OPC_CheckChild1Integer, 4, 
/* 80189*/        OPC_CheckChild1Type, MVT::i64,
/* 80191*/        OPC_MoveParent,
/* 80192*/        OPC_MoveChild1,
/* 80193*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 80196*/        OPC_RecordChild0, // #1 = $Rm
/* 80197*/        OPC_CheckChild1Integer, 4, 
/* 80199*/        OPC_CheckChild1Type, MVT::i64,
/* 80201*/        OPC_MoveParent,
/* 80202*/        OPC_CheckType, MVT::v4i32,
/* 80204*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv8i16_v4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64umull:{ *:[v4i32] } (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }), (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rm, 4:{ *:[i64] })) - Complexity = 19
                  // Dst: (UMULLv8i16_v4i32:{ *:[v4i32] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 80212*/      /*SwitchType*/ 25, MVT::v2i32,// ->80239
/* 80214*/        OPC_CheckChild1Integer, 2, 
/* 80216*/        OPC_CheckChild1Type, MVT::i64,
/* 80218*/        OPC_MoveParent,
/* 80219*/        OPC_MoveChild1,
/* 80220*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 80223*/        OPC_RecordChild0, // #1 = $Rm
/* 80224*/        OPC_CheckChild1Integer, 2, 
/* 80226*/        OPC_CheckChild1Type, MVT::i64,
/* 80228*/        OPC_MoveParent,
/* 80229*/        OPC_CheckType, MVT::v2i64,
/* 80231*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv4i32_v2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64umull:{ *:[v2i64] } (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }), (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rm, 2:{ *:[i64] })) - Complexity = 19
                  // Dst: (UMULLv4i32_v2i64:{ *:[v2i64] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 80239*/      0, // EndSwitchType
/* 80240*/    /*Scope*/ 42, /*->80283*/
/* 80241*/      OPC_RecordChild0, // #0 = $Rn
/* 80242*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->80256
/* 80245*/        OPC_CheckChild0Type, MVT::v8i8,
/* 80247*/        OPC_RecordChild1, // #1 = $Rm
/* 80248*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv8i8_v8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64umull:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                  // Dst: (UMULLv8i8_v8i16:{ *:[v8i16] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 80256*/      /*SwitchType*/ 11, MVT::v4i32,// ->80269
/* 80258*/        OPC_CheckChild0Type, MVT::v4i16,
/* 80260*/        OPC_RecordChild1, // #1 = $Rm
/* 80261*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv4i16_v4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64umull:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                  // Dst: (UMULLv4i16_v4i32:{ *:[v4i32] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 80269*/      /*SwitchType*/ 11, MVT::v2i64,// ->80282
/* 80271*/        OPC_CheckChild0Type, MVT::v2i32,
/* 80273*/        OPC_RecordChild1, // #1 = $Rm
/* 80274*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMULLv2i32_v2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64umull:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                  // Dst: (UMULLv2i32_v2i64:{ *:[v2i64] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 80282*/      0, // EndSwitchType
/* 80283*/    0, /*End of Scope*/
/* 80284*/  /*SwitchOpcode*/ 126|128,23/*3070*/, TARGET_VAL(ISD::CONCAT_VECTORS),// ->83358
/* 80288*/    OPC_RecordChild0, // #0 = $Rd
/* 80289*/    OPC_Scope, 120|128,19/*2552*/, /*->82844*/ // 4 children in Scope
/* 80292*/      OPC_MoveChild1,
/* 80293*/      OPC_SwitchOpcode /*3 cases */, 97|128,4/*609*/, TARGET_VAL(ISD::TRUNCATE),// ->80907
/* 80298*/        OPC_Scope, 115|128,3/*499*/, /*->80800*/ // 2 children in Scope
/* 80301*/          OPC_MoveChild0,
/* 80302*/          OPC_SwitchOpcode /*2 cases */, 99|128,2/*355*/, TARGET_VAL(AArch64ISD::VLSHR),// ->80662
/* 80307*/            OPC_Scope, 95|128,1/*223*/, /*->80533*/ // 2 children in Scope
/* 80310*/              OPC_MoveChild0,
/* 80311*/              OPC_SwitchOpcode /*2 cases */, 107, TARGET_VAL(ISD::ADD),// ->80422
/* 80315*/                OPC_RecordChild0, // #1 = $Rn
/* 80316*/                OPC_RecordChild1, // #2 = $Rm
/* 80317*/                OPC_MoveParent,
/* 80318*/                OPC_SwitchType /*3 cases */, 32, MVT::v8i16,// ->80353
/* 80321*/                  OPC_CheckChild1Integer, 8, 
/* 80323*/                  OPC_CheckChild1Type, MVT::i32,
/* 80325*/                  OPC_MoveParent,
/* 80326*/                  OPC_MoveParent,
/* 80327*/                  OPC_CheckType, MVT::v16i8,
/* 80329*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 80332*/                  OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80335*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80344*/                  OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv8i16_v16i8), 0,
                                MVT::v16i8, 3/*#Ops*/, 5, 1, 2, 
                            // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (trunc:{ *:[v8i8] } (AArch64vlshr:{ *:[v8i16] } (add:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm), 8:{ *:[i32] }))) - Complexity = 17
                            // Dst: (ADDHNv8i16_v16i8:{ *:[v16i8] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 80353*/                /*SwitchType*/ 32, MVT::v4i32,// ->80387
/* 80355*/                  OPC_CheckChild1Integer, 16, 
/* 80357*/                  OPC_CheckChild1Type, MVT::i32,
/* 80359*/                  OPC_MoveParent,
/* 80360*/                  OPC_MoveParent,
/* 80361*/                  OPC_CheckType, MVT::v8i16,
/* 80363*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 80366*/                  OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80369*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80378*/                  OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv4i32_v8i16), 0,
                                MVT::v8i16, 3/*#Ops*/, 5, 1, 2, 
                            // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (trunc:{ *:[v4i16] } (AArch64vlshr:{ *:[v4i32] } (add:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm), 16:{ *:[i32] }))) - Complexity = 17
                            // Dst: (ADDHNv4i32_v8i16:{ *:[v8i16] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 80387*/                /*SwitchType*/ 32, MVT::v2i64,// ->80421
/* 80389*/                  OPC_CheckChild1Integer, 32, 
/* 80391*/                  OPC_CheckChild1Type, MVT::i32,
/* 80393*/                  OPC_MoveParent,
/* 80394*/                  OPC_MoveParent,
/* 80395*/                  OPC_CheckType, MVT::v4i32,
/* 80397*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 80400*/                  OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80403*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80412*/                  OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv2i64_v4i32), 0,
                                MVT::v4i32, 3/*#Ops*/, 5, 1, 2, 
                            // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (trunc:{ *:[v2i32] } (AArch64vlshr:{ *:[v2i64] } (add:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm), 32:{ *:[i32] }))) - Complexity = 17
                            // Dst: (ADDHNv2i64_v4i32:{ *:[v4i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 80421*/                0, // EndSwitchType
/* 80422*/              /*SwitchOpcode*/ 107, TARGET_VAL(ISD::SUB),// ->80532
/* 80425*/                OPC_RecordChild0, // #1 = $Rn
/* 80426*/                OPC_RecordChild1, // #2 = $Rm
/* 80427*/                OPC_MoveParent,
/* 80428*/                OPC_SwitchType /*3 cases */, 32, MVT::v8i16,// ->80463
/* 80431*/                  OPC_CheckChild1Integer, 8, 
/* 80433*/                  OPC_CheckChild1Type, MVT::i32,
/* 80435*/                  OPC_MoveParent,
/* 80436*/                  OPC_MoveParent,
/* 80437*/                  OPC_CheckType, MVT::v16i8,
/* 80439*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 80442*/                  OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80445*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80454*/                  OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv8i16_v16i8), 0,
                                MVT::v16i8, 3/*#Ops*/, 5, 1, 2, 
                            // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (trunc:{ *:[v8i8] } (AArch64vlshr:{ *:[v8i16] } (sub:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm), 8:{ *:[i32] }))) - Complexity = 17
                            // Dst: (SUBHNv8i16_v16i8:{ *:[v16i8] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 80463*/                /*SwitchType*/ 32, MVT::v4i32,// ->80497
/* 80465*/                  OPC_CheckChild1Integer, 16, 
/* 80467*/                  OPC_CheckChild1Type, MVT::i32,
/* 80469*/                  OPC_MoveParent,
/* 80470*/                  OPC_MoveParent,
/* 80471*/                  OPC_CheckType, MVT::v8i16,
/* 80473*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 80476*/                  OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80479*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80488*/                  OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv4i32_v8i16), 0,
                                MVT::v8i16, 3/*#Ops*/, 5, 1, 2, 
                            // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (trunc:{ *:[v4i16] } (AArch64vlshr:{ *:[v4i32] } (sub:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm), 16:{ *:[i32] }))) - Complexity = 17
                            // Dst: (SUBHNv4i32_v8i16:{ *:[v8i16] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 80497*/                /*SwitchType*/ 32, MVT::v2i64,// ->80531
/* 80499*/                  OPC_CheckChild1Integer, 32, 
/* 80501*/                  OPC_CheckChild1Type, MVT::i32,
/* 80503*/                  OPC_MoveParent,
/* 80504*/                  OPC_MoveParent,
/* 80505*/                  OPC_CheckType, MVT::v4i32,
/* 80507*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 80510*/                  OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80513*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80522*/                  OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv2i64_v4i32), 0,
                                MVT::v4i32, 3/*#Ops*/, 5, 1, 2, 
                            // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (trunc:{ *:[v2i32] } (AArch64vlshr:{ *:[v2i64] } (sub:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm), 32:{ *:[i32] }))) - Complexity = 17
                            // Dst: (SUBHNv2i64_v4i32:{ *:[v4i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 80531*/                0, // EndSwitchType
/* 80532*/              0, // EndSwitchOpcode
/* 80533*/            /*Scope*/ 127, /*->80661*/
/* 80534*/              OPC_RecordChild0, // #1 = $Rn
/* 80535*/              OPC_RecordChild1, // #2 = $imm
/* 80536*/              OPC_MoveChild1,
/* 80537*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80540*/              OPC_CheckType, MVT::i32,
/* 80542*/              OPC_Scope, 38, /*->80582*/ // 3 children in Scope
/* 80544*/                OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 80546*/                OPC_MoveParent,
/* 80547*/                OPC_CheckType, MVT::v8i16,
/* 80549*/                OPC_MoveParent,
/* 80550*/                OPC_MoveParent,
/* 80551*/                OPC_CheckType, MVT::v16i8,
/* 80553*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::f128, 0/*#Ops*/,  // Results = #3
/* 80559*/                OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80562*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80571*/                OPC_EmitConvertToTarget, 2,
/* 80573*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv16i8_shift), 0,
                              MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                          // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (trunc:{ *:[v8i8] } (AArch64vlshr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm))) - Complexity = 13
                          // Dst: (SHRNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 80582*/              /*Scope*/ 38, /*->80621*/
/* 80583*/                OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 80585*/                OPC_MoveParent,
/* 80586*/                OPC_CheckType, MVT::v4i32,
/* 80588*/                OPC_MoveParent,
/* 80589*/                OPC_MoveParent,
/* 80590*/                OPC_CheckType, MVT::v8i16,
/* 80592*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::f128, 0/*#Ops*/,  // Results = #3
/* 80598*/                OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80601*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80610*/                OPC_EmitConvertToTarget, 2,
/* 80612*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv8i16_shift), 0,
                              MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                          // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (trunc:{ *:[v4i16] } (AArch64vlshr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm))) - Complexity = 13
                          // Dst: (SHRNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 80621*/              /*Scope*/ 38, /*->80660*/
/* 80622*/                OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 80624*/                OPC_MoveParent,
/* 80625*/                OPC_CheckType, MVT::v2i64,
/* 80627*/                OPC_MoveParent,
/* 80628*/                OPC_MoveParent,
/* 80629*/                OPC_CheckType, MVT::v4i32,
/* 80631*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::f128, 0/*#Ops*/,  // Results = #3
/* 80637*/                OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80640*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80649*/                OPC_EmitConvertToTarget, 2,
/* 80651*/                OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv4i32_shift), 0,
                              MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                          // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (trunc:{ *:[v2i32] } (AArch64vlshr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm))) - Complexity = 13
                          // Dst: (SHRNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 80660*/              0, /*End of Scope*/
/* 80661*/            0, /*End of Scope*/
/* 80662*/          /*SwitchOpcode*/ 5|128,1/*133*/, TARGET_VAL(AArch64ISD::VASHR),// ->80799
/* 80666*/            OPC_RecordChild0, // #1 = $Rn
/* 80667*/            OPC_RecordChild1, // #2 = $imm
/* 80668*/            OPC_MoveChild1,
/* 80669*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80672*/            OPC_CheckType, MVT::i32,
/* 80674*/            OPC_Scope, 40, /*->80716*/ // 3 children in Scope
/* 80676*/              OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 80678*/              OPC_MoveParent,
/* 80679*/              OPC_CheckType, MVT::v8i16,
/* 80681*/              OPC_MoveParent,
/* 80682*/              OPC_MoveParent,
/* 80683*/              OPC_CheckType, MVT::v16i8,
/* 80685*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 80687*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::f128, 0/*#Ops*/,  // Results = #3
/* 80693*/              OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80696*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80705*/              OPC_EmitConvertToTarget, 2,
/* 80707*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv16i8_shift), 0,
                            MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                        // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (trunc:{ *:[v8i8] } (AArch64vashr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm))) - Complexity = 13
                        // Dst: (SHRNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 80716*/            /*Scope*/ 40, /*->80757*/
/* 80717*/              OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 80719*/              OPC_MoveParent,
/* 80720*/              OPC_CheckType, MVT::v4i32,
/* 80722*/              OPC_MoveParent,
/* 80723*/              OPC_MoveParent,
/* 80724*/              OPC_CheckType, MVT::v8i16,
/* 80726*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 80728*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::f128, 0/*#Ops*/,  // Results = #3
/* 80734*/              OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80737*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80746*/              OPC_EmitConvertToTarget, 2,
/* 80748*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv8i16_shift), 0,
                            MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                        // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (trunc:{ *:[v4i16] } (AArch64vashr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm))) - Complexity = 13
                        // Dst: (SHRNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 80757*/            /*Scope*/ 40, /*->80798*/
/* 80758*/              OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 80760*/              OPC_MoveParent,
/* 80761*/              OPC_CheckType, MVT::v2i64,
/* 80763*/              OPC_MoveParent,
/* 80764*/              OPC_MoveParent,
/* 80765*/              OPC_CheckType, MVT::v4i32,
/* 80767*/              OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 80769*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::f128, 0/*#Ops*/,  // Results = #3
/* 80775*/              OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80778*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80787*/              OPC_EmitConvertToTarget, 2,
/* 80789*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::SHRNv4i32_shift), 0,
                            MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                        // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (trunc:{ *:[v2i32] } (AArch64vashr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm))) - Complexity = 13
                        // Dst: (SHRNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 80798*/            0, /*End of Scope*/
/* 80799*/          0, // EndSwitchOpcode
/* 80800*/        /*Scope*/ 105, /*->80906*/
/* 80801*/          OPC_RecordChild0, // #1 = $Rn
/* 80802*/          OPC_Scope, 33, /*->80837*/ // 3 children in Scope
/* 80804*/            OPC_CheckChild0Type, MVT::v8i16,
/* 80806*/            OPC_MoveParent,
/* 80807*/            OPC_CheckType, MVT::v16i8,
/* 80809*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 80811*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 80817*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80820*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 80829*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::XTNv16i8), 0,
                          MVT::v16i8, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (trunc:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn)) - Complexity = 6
                      // Dst: (XTNv16i8:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn)
/* 80837*/          /*Scope*/ 33, /*->80871*/
/* 80838*/            OPC_CheckChild0Type, MVT::v4i32,
/* 80840*/            OPC_MoveParent,
/* 80841*/            OPC_CheckType, MVT::v8i16,
/* 80843*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 80845*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 80851*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80854*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 80863*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::XTNv8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (trunc:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn)) - Complexity = 6
                      // Dst: (XTNv8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn)
/* 80871*/          /*Scope*/ 33, /*->80905*/
/* 80872*/            OPC_CheckChild0Type, MVT::v2i64,
/* 80874*/            OPC_MoveParent,
/* 80875*/            OPC_CheckType, MVT::v4i32,
/* 80877*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 80879*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 80885*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80888*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 80897*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::XTNv4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (trunc:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn)) - Complexity = 6
                      // Dst: (XTNv4i32:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn)
/* 80905*/          0, /*End of Scope*/
/* 80906*/        0, /*End of Scope*/
/* 80907*/      /*SwitchOpcode*/ 54|128,14/*1846*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->82757
/* 80911*/        OPC_Scope, 13|128,1/*141*/, /*->81055*/ // 15 children in Scope
/* 80914*/          OPC_CheckChild0Integer, 12|128,2/*268*/, 
/* 80917*/          OPC_RecordChild1, // #1 = $Rn
/* 80918*/          OPC_Scope, 44, /*->80964*/ // 3 children in Scope
/* 80920*/            OPC_CheckChild1Type, MVT::v8i16,
/* 80922*/            OPC_RecordChild2, // #2 = $imm
/* 80923*/            OPC_MoveChild2,
/* 80924*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80927*/            OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 80929*/            OPC_MoveParent,
/* 80930*/            OPC_MoveParent,
/* 80931*/            OPC_CheckType, MVT::v16i8,
/* 80933*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 80935*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 80941*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80944*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80953*/            OPC_EmitConvertToTarget, 2,
/* 80955*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSHRNv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 268:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 15
                      // Dst: (RSHRNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 80964*/          /*Scope*/ 44, /*->81009*/
/* 80965*/            OPC_CheckChild1Type, MVT::v4i32,
/* 80967*/            OPC_RecordChild2, // #2 = $imm
/* 80968*/            OPC_MoveChild2,
/* 80969*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 80972*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 80974*/            OPC_MoveParent,
/* 80975*/            OPC_MoveParent,
/* 80976*/            OPC_CheckType, MVT::v8i16,
/* 80978*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 80980*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 80986*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 80989*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 80998*/            OPC_EmitConvertToTarget, 2,
/* 81000*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSHRNv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 268:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 15
                      // Dst: (RSHRNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 81009*/          /*Scope*/ 44, /*->81054*/
/* 81010*/            OPC_CheckChild1Type, MVT::v2i64,
/* 81012*/            OPC_RecordChild2, // #2 = $imm
/* 81013*/            OPC_MoveChild2,
/* 81014*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81017*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 81019*/            OPC_MoveParent,
/* 81020*/            OPC_MoveParent,
/* 81021*/            OPC_CheckType, MVT::v4i32,
/* 81023*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81025*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81031*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81034*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81043*/            OPC_EmitConvertToTarget, 2,
/* 81045*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSHRNv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 268:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 15
                      // Dst: (RSHRNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 81054*/          0, /*End of Scope*/
/* 81055*/        /*Scope*/ 13|128,1/*141*/, /*->81198*/
/* 81057*/          OPC_CheckChild0Integer, 40|128,2/*296*/, 
/* 81060*/          OPC_RecordChild1, // #1 = $Rn
/* 81061*/          OPC_Scope, 44, /*->81107*/ // 3 children in Scope
/* 81063*/            OPC_CheckChild1Type, MVT::v8i16,
/* 81065*/            OPC_RecordChild2, // #2 = $imm
/* 81066*/            OPC_MoveChild2,
/* 81067*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81070*/            OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 81072*/            OPC_MoveParent,
/* 81073*/            OPC_MoveParent,
/* 81074*/            OPC_CheckType, MVT::v16i8,
/* 81076*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81078*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81084*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81087*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81096*/            OPC_EmitConvertToTarget, 2,
/* 81098*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRNv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 296:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQRSHRNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 81107*/          /*Scope*/ 44, /*->81152*/
/* 81108*/            OPC_CheckChild1Type, MVT::v4i32,
/* 81110*/            OPC_RecordChild2, // #2 = $imm
/* 81111*/            OPC_MoveChild2,
/* 81112*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81115*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 81117*/            OPC_MoveParent,
/* 81118*/            OPC_MoveParent,
/* 81119*/            OPC_CheckType, MVT::v8i16,
/* 81121*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81123*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81129*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81132*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81141*/            OPC_EmitConvertToTarget, 2,
/* 81143*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRNv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 296:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQRSHRNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 81152*/          /*Scope*/ 44, /*->81197*/
/* 81153*/            OPC_CheckChild1Type, MVT::v2i64,
/* 81155*/            OPC_RecordChild2, // #2 = $imm
/* 81156*/            OPC_MoveChild2,
/* 81157*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81160*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 81162*/            OPC_MoveParent,
/* 81163*/            OPC_MoveParent,
/* 81164*/            OPC_CheckType, MVT::v4i32,
/* 81166*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81168*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81174*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81177*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81186*/            OPC_EmitConvertToTarget, 2,
/* 81188*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRNv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 296:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQRSHRNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 81197*/          0, /*End of Scope*/
/* 81198*/        /*Scope*/ 13|128,1/*141*/, /*->81341*/
/* 81200*/          OPC_CheckChild0Integer, 41|128,2/*297*/, 
/* 81203*/          OPC_RecordChild1, // #1 = $Rn
/* 81204*/          OPC_Scope, 44, /*->81250*/ // 3 children in Scope
/* 81206*/            OPC_CheckChild1Type, MVT::v8i16,
/* 81208*/            OPC_RecordChild2, // #2 = $imm
/* 81209*/            OPC_MoveChild2,
/* 81210*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81213*/            OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 81215*/            OPC_MoveParent,
/* 81216*/            OPC_MoveParent,
/* 81217*/            OPC_CheckType, MVT::v16i8,
/* 81219*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81221*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81227*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81230*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81239*/            OPC_EmitConvertToTarget, 2,
/* 81241*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRUNv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 297:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQRSHRUNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 81250*/          /*Scope*/ 44, /*->81295*/
/* 81251*/            OPC_CheckChild1Type, MVT::v4i32,
/* 81253*/            OPC_RecordChild2, // #2 = $imm
/* 81254*/            OPC_MoveChild2,
/* 81255*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81258*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 81260*/            OPC_MoveParent,
/* 81261*/            OPC_MoveParent,
/* 81262*/            OPC_CheckType, MVT::v8i16,
/* 81264*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81266*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81272*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81275*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81284*/            OPC_EmitConvertToTarget, 2,
/* 81286*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRUNv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 297:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQRSHRUNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 81295*/          /*Scope*/ 44, /*->81340*/
/* 81296*/            OPC_CheckChild1Type, MVT::v2i64,
/* 81298*/            OPC_RecordChild2, // #2 = $imm
/* 81299*/            OPC_MoveChild2,
/* 81300*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81303*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 81305*/            OPC_MoveParent,
/* 81306*/            OPC_MoveParent,
/* 81307*/            OPC_CheckType, MVT::v4i32,
/* 81309*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81311*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81317*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81320*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81329*/            OPC_EmitConvertToTarget, 2,
/* 81331*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQRSHRUNv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 297:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQRSHRUNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 81340*/          0, /*End of Scope*/
/* 81341*/        /*Scope*/ 13|128,1/*141*/, /*->81484*/
/* 81343*/          OPC_CheckChild0Integer, 44|128,2/*300*/, 
/* 81346*/          OPC_RecordChild1, // #1 = $Rn
/* 81347*/          OPC_Scope, 44, /*->81393*/ // 3 children in Scope
/* 81349*/            OPC_CheckChild1Type, MVT::v8i16,
/* 81351*/            OPC_RecordChild2, // #2 = $imm
/* 81352*/            OPC_MoveChild2,
/* 81353*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81356*/            OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 81358*/            OPC_MoveParent,
/* 81359*/            OPC_MoveParent,
/* 81360*/            OPC_CheckType, MVT::v16i8,
/* 81362*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81364*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81370*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81373*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81382*/            OPC_EmitConvertToTarget, 2,
/* 81384*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRNv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 300:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQSHRNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 81393*/          /*Scope*/ 44, /*->81438*/
/* 81394*/            OPC_CheckChild1Type, MVT::v4i32,
/* 81396*/            OPC_RecordChild2, // #2 = $imm
/* 81397*/            OPC_MoveChild2,
/* 81398*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81401*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 81403*/            OPC_MoveParent,
/* 81404*/            OPC_MoveParent,
/* 81405*/            OPC_CheckType, MVT::v8i16,
/* 81407*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81409*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81415*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81418*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81427*/            OPC_EmitConvertToTarget, 2,
/* 81429*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRNv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 300:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQSHRNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 81438*/          /*Scope*/ 44, /*->81483*/
/* 81439*/            OPC_CheckChild1Type, MVT::v2i64,
/* 81441*/            OPC_RecordChild2, // #2 = $imm
/* 81442*/            OPC_MoveChild2,
/* 81443*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81446*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 81448*/            OPC_MoveParent,
/* 81449*/            OPC_MoveParent,
/* 81450*/            OPC_CheckType, MVT::v4i32,
/* 81452*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81454*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81460*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81463*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81472*/            OPC_EmitConvertToTarget, 2,
/* 81474*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRNv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 300:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQSHRNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 81483*/          0, /*End of Scope*/
/* 81484*/        /*Scope*/ 13|128,1/*141*/, /*->81627*/
/* 81486*/          OPC_CheckChild0Integer, 45|128,2/*301*/, 
/* 81489*/          OPC_RecordChild1, // #1 = $Rn
/* 81490*/          OPC_Scope, 44, /*->81536*/ // 3 children in Scope
/* 81492*/            OPC_CheckChild1Type, MVT::v8i16,
/* 81494*/            OPC_RecordChild2, // #2 = $imm
/* 81495*/            OPC_MoveChild2,
/* 81496*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81499*/            OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 81501*/            OPC_MoveParent,
/* 81502*/            OPC_MoveParent,
/* 81503*/            OPC_CheckType, MVT::v16i8,
/* 81505*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81507*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81513*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81516*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81525*/            OPC_EmitConvertToTarget, 2,
/* 81527*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRUNv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 301:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQSHRUNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 81536*/          /*Scope*/ 44, /*->81581*/
/* 81537*/            OPC_CheckChild1Type, MVT::v4i32,
/* 81539*/            OPC_RecordChild2, // #2 = $imm
/* 81540*/            OPC_MoveChild2,
/* 81541*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81544*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 81546*/            OPC_MoveParent,
/* 81547*/            OPC_MoveParent,
/* 81548*/            OPC_CheckType, MVT::v8i16,
/* 81550*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81552*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81558*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81561*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81570*/            OPC_EmitConvertToTarget, 2,
/* 81572*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRUNv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 301:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQSHRUNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 81581*/          /*Scope*/ 44, /*->81626*/
/* 81582*/            OPC_CheckChild1Type, MVT::v2i64,
/* 81584*/            OPC_RecordChild2, // #2 = $imm
/* 81585*/            OPC_MoveChild2,
/* 81586*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81589*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 81591*/            OPC_MoveParent,
/* 81592*/            OPC_MoveParent,
/* 81593*/            OPC_CheckType, MVT::v4i32,
/* 81595*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81597*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81603*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81606*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81615*/            OPC_EmitConvertToTarget, 2,
/* 81617*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQSHRUNv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 301:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 15
                      // Dst: (SQSHRUNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 81626*/          0, /*End of Scope*/
/* 81627*/        /*Scope*/ 13|128,1/*141*/, /*->81770*/
/* 81629*/          OPC_CheckChild0Integer, 88|128,2/*344*/, 
/* 81632*/          OPC_RecordChild1, // #1 = $Rn
/* 81633*/          OPC_Scope, 44, /*->81679*/ // 3 children in Scope
/* 81635*/            OPC_CheckChild1Type, MVT::v8i16,
/* 81637*/            OPC_RecordChild2, // #2 = $imm
/* 81638*/            OPC_MoveChild2,
/* 81639*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81642*/            OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 81644*/            OPC_MoveParent,
/* 81645*/            OPC_MoveParent,
/* 81646*/            OPC_CheckType, MVT::v16i8,
/* 81648*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81650*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81656*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81659*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81668*/            OPC_EmitConvertToTarget, 2,
/* 81670*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHRNv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 344:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 15
                      // Dst: (UQRSHRNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 81679*/          /*Scope*/ 44, /*->81724*/
/* 81680*/            OPC_CheckChild1Type, MVT::v4i32,
/* 81682*/            OPC_RecordChild2, // #2 = $imm
/* 81683*/            OPC_MoveChild2,
/* 81684*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81687*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 81689*/            OPC_MoveParent,
/* 81690*/            OPC_MoveParent,
/* 81691*/            OPC_CheckType, MVT::v8i16,
/* 81693*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81695*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81701*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81704*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81713*/            OPC_EmitConvertToTarget, 2,
/* 81715*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHRNv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 344:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 15
                      // Dst: (UQRSHRNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 81724*/          /*Scope*/ 44, /*->81769*/
/* 81725*/            OPC_CheckChild1Type, MVT::v2i64,
/* 81727*/            OPC_RecordChild2, // #2 = $imm
/* 81728*/            OPC_MoveChild2,
/* 81729*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81732*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 81734*/            OPC_MoveParent,
/* 81735*/            OPC_MoveParent,
/* 81736*/            OPC_CheckType, MVT::v4i32,
/* 81738*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81740*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81746*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81749*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81758*/            OPC_EmitConvertToTarget, 2,
/* 81760*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQRSHRNv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 344:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 15
                      // Dst: (UQRSHRNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 81769*/          0, /*End of Scope*/
/* 81770*/        /*Scope*/ 13|128,1/*141*/, /*->81913*/
/* 81772*/          OPC_CheckChild0Integer, 90|128,2/*346*/, 
/* 81775*/          OPC_RecordChild1, // #1 = $Rn
/* 81776*/          OPC_Scope, 44, /*->81822*/ // 3 children in Scope
/* 81778*/            OPC_CheckChild1Type, MVT::v8i16,
/* 81780*/            OPC_RecordChild2, // #2 = $imm
/* 81781*/            OPC_MoveChild2,
/* 81782*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81785*/            OPC_CheckPredicate, 16, // Predicate_vecshiftR16Narrow
/* 81787*/            OPC_MoveParent,
/* 81788*/            OPC_MoveParent,
/* 81789*/            OPC_CheckType, MVT::v16i8,
/* 81791*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81793*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81799*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81802*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81811*/            OPC_EmitConvertToTarget, 2,
/* 81813*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHRNv16i8_shift), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 346:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)) - Complexity = 15
                      // Dst: (UQSHRNv16i8_shift:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR16Narrow>>:$imm)
/* 81822*/          /*Scope*/ 44, /*->81867*/
/* 81823*/            OPC_CheckChild1Type, MVT::v4i32,
/* 81825*/            OPC_RecordChild2, // #2 = $imm
/* 81826*/            OPC_MoveChild2,
/* 81827*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81830*/            OPC_CheckPredicate, 17, // Predicate_vecshiftR32Narrow
/* 81832*/            OPC_MoveParent,
/* 81833*/            OPC_MoveParent,
/* 81834*/            OPC_CheckType, MVT::v8i16,
/* 81836*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81838*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81844*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81847*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81856*/            OPC_EmitConvertToTarget, 2,
/* 81858*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHRNv8i16_shift), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 346:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)) - Complexity = 15
                      // Dst: (UQSHRNv8i16_shift:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR32Narrow>>:$imm)
/* 81867*/          /*Scope*/ 44, /*->81912*/
/* 81868*/            OPC_CheckChild1Type, MVT::v2i64,
/* 81870*/            OPC_RecordChild2, // #2 = $imm
/* 81871*/            OPC_MoveChild2,
/* 81872*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81875*/            OPC_CheckPredicate, 14, // Predicate_vecshiftR64Narrow
/* 81877*/            OPC_MoveParent,
/* 81878*/            OPC_MoveParent,
/* 81879*/            OPC_CheckType, MVT::v4i32,
/* 81881*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81883*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 81889*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81892*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 81901*/            OPC_EmitConvertToTarget, 2,
/* 81903*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQSHRNv4i32_shift), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 6, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 346:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)) - Complexity = 15
                      // Dst: (UQSHRNv4i32_shift:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_vecshiftR64Narrow>>:$imm)
/* 81912*/          0, /*End of Scope*/
/* 81913*/        /*Scope*/ 31, /*->81945*/
/* 81914*/          OPC_CheckChild0Integer, 103|128,2/*359*/, 
/* 81917*/          OPC_RecordChild1, // #1 = $Rn
/* 81918*/          OPC_MoveParent,
/* 81919*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f128, 0/*#Ops*/,  // Results = #2
/* 81925*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81928*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 81937*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNv8i16), 0,
                        MVT::v8i16, 2/*#Ops*/, 4, 1, 
                    // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 359:{ *:[iPTR] }, V128:{ *:[v4f32] }:$Rn)) - Complexity = 11
                    // Dst: (FCVTNv8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4f32] }:$Rn)
/* 81945*/        /*Scope*/ 108, /*->82054*/
/* 81946*/          OPC_CheckChild0Integer, 47|128,2/*303*/, 
/* 81949*/          OPC_RecordChild1, // #1 = $Rn
/* 81950*/          OPC_Scope, 33, /*->81985*/ // 3 children in Scope
/* 81952*/            OPC_CheckChild1Type, MVT::v8i16,
/* 81954*/            OPC_MoveParent,
/* 81955*/            OPC_CheckType, MVT::v16i8,
/* 81957*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81959*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 81965*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 81968*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 81977*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTNv16i8), 0,
                          MVT::v16i8, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 303:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn)) - Complexity = 11
                      // Dst: (SQXTNv16i8:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn)
/* 81985*/          /*Scope*/ 33, /*->82019*/
/* 81986*/            OPC_CheckChild1Type, MVT::v4i32,
/* 81988*/            OPC_MoveParent,
/* 81989*/            OPC_CheckType, MVT::v8i16,
/* 81991*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 81993*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 81999*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82002*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82011*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTNv8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 303:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn)) - Complexity = 11
                      // Dst: (SQXTNv8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn)
/* 82019*/          /*Scope*/ 33, /*->82053*/
/* 82020*/            OPC_CheckChild1Type, MVT::v2i64,
/* 82022*/            OPC_MoveParent,
/* 82023*/            OPC_CheckType, MVT::v4i32,
/* 82025*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82027*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82033*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82036*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82045*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTNv4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 303:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn)) - Complexity = 11
                      // Dst: (SQXTNv4i32:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn)
/* 82053*/          0, /*End of Scope*/
/* 82054*/        /*Scope*/ 108, /*->82163*/
/* 82055*/          OPC_CheckChild0Integer, 48|128,2/*304*/, 
/* 82058*/          OPC_RecordChild1, // #1 = $Rn
/* 82059*/          OPC_Scope, 33, /*->82094*/ // 3 children in Scope
/* 82061*/            OPC_CheckChild1Type, MVT::v8i16,
/* 82063*/            OPC_MoveParent,
/* 82064*/            OPC_CheckType, MVT::v16i8,
/* 82066*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82068*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82074*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82077*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82086*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTUNv16i8), 0,
                          MVT::v16i8, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 304:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn)) - Complexity = 11
                      // Dst: (SQXTUNv16i8:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn)
/* 82094*/          /*Scope*/ 33, /*->82128*/
/* 82095*/            OPC_CheckChild1Type, MVT::v4i32,
/* 82097*/            OPC_MoveParent,
/* 82098*/            OPC_CheckType, MVT::v8i16,
/* 82100*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82102*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82108*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82111*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82120*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTUNv8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 304:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn)) - Complexity = 11
                      // Dst: (SQXTUNv8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn)
/* 82128*/          /*Scope*/ 33, /*->82162*/
/* 82129*/            OPC_CheckChild1Type, MVT::v2i64,
/* 82131*/            OPC_MoveParent,
/* 82132*/            OPC_CheckType, MVT::v4i32,
/* 82134*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82136*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82142*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82145*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82154*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SQXTUNv4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 304:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn)) - Complexity = 11
                      // Dst: (SQXTUNv4i32:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn)
/* 82162*/          0, /*End of Scope*/
/* 82163*/        /*Scope*/ 108, /*->82272*/
/* 82164*/          OPC_CheckChild0Integer, 92|128,2/*348*/, 
/* 82167*/          OPC_RecordChild1, // #1 = $Rn
/* 82168*/          OPC_Scope, 33, /*->82203*/ // 3 children in Scope
/* 82170*/            OPC_CheckChild1Type, MVT::v8i16,
/* 82172*/            OPC_MoveParent,
/* 82173*/            OPC_CheckType, MVT::v16i8,
/* 82175*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82177*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82183*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82186*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82195*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQXTNv16i8), 0,
                          MVT::v16i8, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 348:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn)) - Complexity = 11
                      // Dst: (UQXTNv16i8:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn)
/* 82203*/          /*Scope*/ 33, /*->82237*/
/* 82204*/            OPC_CheckChild1Type, MVT::v4i32,
/* 82206*/            OPC_MoveParent,
/* 82207*/            OPC_CheckType, MVT::v8i16,
/* 82209*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82211*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82217*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82220*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82229*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQXTNv8i16), 0,
                          MVT::v8i16, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 348:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn)) - Complexity = 11
                      // Dst: (UQXTNv8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn)
/* 82237*/          /*Scope*/ 33, /*->82271*/
/* 82238*/            OPC_CheckChild1Type, MVT::v2i64,
/* 82240*/            OPC_MoveParent,
/* 82241*/            OPC_CheckType, MVT::v4i32,
/* 82243*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82245*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82251*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82254*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82263*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::UQXTNv4i32), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 1, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 348:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn)) - Complexity = 11
                      // Dst: (UQXTNv4i32:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn)
/* 82271*/          0, /*End of Scope*/
/* 82272*/        /*Scope*/ 120, /*->82393*/
/* 82273*/          OPC_CheckChild0Integer, 86|128,1/*214*/, 
/* 82276*/          OPC_RecordChild1, // #1 = $Rn
/* 82277*/          OPC_Scope, 37, /*->82316*/ // 3 children in Scope
/* 82279*/            OPC_CheckChild1Type, MVT::v8i16,
/* 82281*/            OPC_RecordChild2, // #2 = $Rm
/* 82282*/            OPC_CheckChild2Type, MVT::v8i16,
/* 82284*/            OPC_MoveParent,
/* 82285*/            OPC_CheckType, MVT::v16i8,
/* 82287*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82289*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82295*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82298*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82307*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv8i16_v16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 214:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 11
                      // Dst: (ADDHNv8i16_v16i8:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 82316*/          /*Scope*/ 37, /*->82354*/
/* 82317*/            OPC_CheckChild1Type, MVT::v4i32,
/* 82319*/            OPC_RecordChild2, // #2 = $Rm
/* 82320*/            OPC_CheckChild2Type, MVT::v4i32,
/* 82322*/            OPC_MoveParent,
/* 82323*/            OPC_CheckType, MVT::v8i16,
/* 82325*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82327*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82333*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82336*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82345*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv4i32_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 214:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 11
                      // Dst: (ADDHNv4i32_v8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 82354*/          /*Scope*/ 37, /*->82392*/
/* 82355*/            OPC_CheckChild1Type, MVT::v2i64,
/* 82357*/            OPC_RecordChild2, // #2 = $Rm
/* 82358*/            OPC_CheckChild2Type, MVT::v2i64,
/* 82360*/            OPC_MoveParent,
/* 82361*/            OPC_CheckType, MVT::v4i32,
/* 82363*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82365*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82371*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82374*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82383*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDHNv2i64_v4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 214:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)) - Complexity = 11
                      // Dst: (ADDHNv2i64_v4i32:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 82392*/          0, /*End of Scope*/
/* 82393*/        /*Scope*/ 120, /*->82514*/
/* 82394*/          OPC_CheckChild0Integer, 62|128,2/*318*/, 
/* 82397*/          OPC_RecordChild1, // #1 = $Rn
/* 82398*/          OPC_Scope, 37, /*->82437*/ // 3 children in Scope
/* 82400*/            OPC_CheckChild1Type, MVT::v8i16,
/* 82402*/            OPC_RecordChild2, // #2 = $Rm
/* 82403*/            OPC_CheckChild2Type, MVT::v8i16,
/* 82405*/            OPC_MoveParent,
/* 82406*/            OPC_CheckType, MVT::v16i8,
/* 82408*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82410*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82416*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82419*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82428*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv8i16_v16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 318:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 11
                      // Dst: (SUBHNv8i16_v16i8:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 82437*/          /*Scope*/ 37, /*->82475*/
/* 82438*/            OPC_CheckChild1Type, MVT::v4i32,
/* 82440*/            OPC_RecordChild2, // #2 = $Rm
/* 82441*/            OPC_CheckChild2Type, MVT::v4i32,
/* 82443*/            OPC_MoveParent,
/* 82444*/            OPC_CheckType, MVT::v8i16,
/* 82446*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82448*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82454*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82457*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82466*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv4i32_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 318:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 11
                      // Dst: (SUBHNv4i32_v8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 82475*/          /*Scope*/ 37, /*->82513*/
/* 82476*/            OPC_CheckChild1Type, MVT::v2i64,
/* 82478*/            OPC_RecordChild2, // #2 = $Rm
/* 82479*/            OPC_CheckChild2Type, MVT::v2i64,
/* 82481*/            OPC_MoveParent,
/* 82482*/            OPC_CheckType, MVT::v4i32,
/* 82484*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82486*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82492*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82495*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82504*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::SUBHNv2i64_v4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 318:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)) - Complexity = 11
                      // Dst: (SUBHNv2i64_v4i32:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 82513*/          0, /*End of Scope*/
/* 82514*/        /*Scope*/ 120, /*->82635*/
/* 82515*/          OPC_CheckChild0Integer, 10|128,2/*266*/, 
/* 82518*/          OPC_RecordChild1, // #1 = $Rn
/* 82519*/          OPC_Scope, 37, /*->82558*/ // 3 children in Scope
/* 82521*/            OPC_CheckChild1Type, MVT::v8i16,
/* 82523*/            OPC_RecordChild2, // #2 = $Rm
/* 82524*/            OPC_CheckChild2Type, MVT::v8i16,
/* 82526*/            OPC_MoveParent,
/* 82527*/            OPC_CheckType, MVT::v16i8,
/* 82529*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82531*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82537*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82540*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82549*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RADDHNv8i16_v16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 266:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 11
                      // Dst: (RADDHNv8i16_v16i8:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 82558*/          /*Scope*/ 37, /*->82596*/
/* 82559*/            OPC_CheckChild1Type, MVT::v4i32,
/* 82561*/            OPC_RecordChild2, // #2 = $Rm
/* 82562*/            OPC_CheckChild2Type, MVT::v4i32,
/* 82564*/            OPC_MoveParent,
/* 82565*/            OPC_CheckType, MVT::v8i16,
/* 82567*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82569*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82575*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82578*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82587*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RADDHNv4i32_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 266:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 11
                      // Dst: (RADDHNv4i32_v8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 82596*/          /*Scope*/ 37, /*->82634*/
/* 82597*/            OPC_CheckChild1Type, MVT::v2i64,
/* 82599*/            OPC_RecordChild2, // #2 = $Rm
/* 82600*/            OPC_CheckChild2Type, MVT::v2i64,
/* 82602*/            OPC_MoveParent,
/* 82603*/            OPC_CheckType, MVT::v4i32,
/* 82605*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82607*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82613*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82616*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82625*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RADDHNv2i64_v4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 266:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)) - Complexity = 11
                      // Dst: (RADDHNv2i64_v4i32:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 82634*/          0, /*End of Scope*/
/* 82635*/        /*Scope*/ 120, /*->82756*/
/* 82636*/          OPC_CheckChild0Integer, 13|128,2/*269*/, 
/* 82639*/          OPC_RecordChild1, // #1 = $Rn
/* 82640*/          OPC_Scope, 37, /*->82679*/ // 3 children in Scope
/* 82642*/            OPC_CheckChild1Type, MVT::v8i16,
/* 82644*/            OPC_RecordChild2, // #2 = $Rm
/* 82645*/            OPC_CheckChild2Type, MVT::v8i16,
/* 82647*/            OPC_MoveParent,
/* 82648*/            OPC_CheckType, MVT::v16i8,
/* 82650*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82652*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82658*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82661*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82670*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSUBHNv8i16_v16i8), 0,
                          MVT::v16i8, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, (intrinsic_wo_chain:{ *:[v8i8] } 269:{ *:[iPTR] }, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)) - Complexity = 11
                      // Dst: (RSUBHNv8i16_v16i8:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 82679*/          /*Scope*/ 37, /*->82717*/
/* 82680*/            OPC_CheckChild1Type, MVT::v4i32,
/* 82682*/            OPC_RecordChild2, // #2 = $Rm
/* 82683*/            OPC_CheckChild2Type, MVT::v4i32,
/* 82685*/            OPC_MoveParent,
/* 82686*/            OPC_CheckType, MVT::v8i16,
/* 82688*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82690*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82696*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82699*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82708*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSUBHNv4i32_v8i16), 0,
                          MVT::v8i16, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, (intrinsic_wo_chain:{ *:[v4i16] } 269:{ *:[iPTR] }, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)) - Complexity = 11
                      // Dst: (RSUBHNv4i32_v8i16:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 82717*/          /*Scope*/ 37, /*->82755*/
/* 82718*/            OPC_CheckChild1Type, MVT::v2i64,
/* 82720*/            OPC_RecordChild2, // #2 = $Rm
/* 82721*/            OPC_CheckChild2Type, MVT::v2i64,
/* 82723*/            OPC_MoveParent,
/* 82724*/            OPC_CheckType, MVT::v4i32,
/* 82726*/            OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 82728*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f128, 0/*#Ops*/,  // Results = #3
/* 82734*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82737*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::f128, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 82746*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::RSUBHNv2i64_v4i32), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 1, 2, 
                      // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, (intrinsic_wo_chain:{ *:[v2i32] } 269:{ *:[iPTR] }, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)) - Complexity = 11
                      // Dst: (RSUBHNv2i64_v4i32:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 82755*/          0, /*End of Scope*/
/* 82756*/        0, /*End of Scope*/
/* 82757*/      /*SwitchOpcode*/ 83, TARGET_VAL(ISD::UNDEF),// ->82843
/* 82760*/        OPC_MoveParent,
/* 82761*/        OPC_SwitchType /*4 cases */, 18, MVT::v2i64,// ->82782
/* 82764*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 82770*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82773*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (concat_vectors:{ *:[v2i64] } V64:{ *:[v1i64] }:$Rn, (undef:{ *:[v1i64] })) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), V64:{ *:[v1i64] }:$Rn, dsub:{ *:[i32] })
/* 82782*/        /*SwitchType*/ 18, MVT::v4i32,// ->82802
/* 82784*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 82790*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82793*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rn, (undef:{ *:[v2i32] })) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), V64:{ *:[v2i32] }:$Rn, dsub:{ *:[i32] })
/* 82802*/        /*SwitchType*/ 18, MVT::v8i16,// ->82822
/* 82804*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 82810*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82813*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rn, (undef:{ *:[v4i16] })) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), V64:{ *:[v4i16] }:$Rn, dsub:{ *:[i32] })
/* 82822*/        /*SwitchType*/ 18, MVT::v16i8,// ->82842
/* 82824*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 82830*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82833*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rn, (undef:{ *:[v8i8] })) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), V64:{ *:[v8i8] }:$Rn, dsub:{ *:[i32] })
/* 82842*/        0, // EndSwitchType
/* 82843*/      0, // EndSwitchOpcode
/* 82844*/    /*Scope*/ 91|128,1/*219*/, /*->83065*/
/* 82846*/      OPC_RecordChild1, // #1 = $Rn
/* 82847*/      OPC_SwitchType /*4 cases */, 52, MVT::v2i64,// ->82902
/* 82850*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82856*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82859*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82868*/        OPC_EmitInteger, MVT::i64, 1, 
/* 82871*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #6
/* 82877*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82880*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 82889*/        OPC_EmitInteger, MVT::i64, 0, 
/* 82892*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v2i64, 4/*#Ops*/, 4, 5, 8, 9, 
                  // Src: (concat_vectors:{ *:[v2i64] } V64:{ *:[v1i64] }:$Rd, V64:{ *:[v1i64] }:$Rn) - Complexity = 3
                  // Dst: (INSvi64lane:{ *:[v2i64] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v1i64] }:$Rd, dsub:{ *:[i32] }), 1:{ *:[i64] }, (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v1i64] }:$Rn, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 82902*/      /*SwitchType*/ 52, MVT::v4i32,// ->82956
/* 82904*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82910*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82913*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82922*/        OPC_EmitInteger, MVT::i64, 1, 
/* 82925*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #6
/* 82931*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82934*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 82943*/        OPC_EmitInteger, MVT::i64, 0, 
/* 82946*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v4i32, 4/*#Ops*/, 4, 5, 8, 9, 
                  // Src: (concat_vectors:{ *:[v4i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (INSvi64lane:{ *:[v4i32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), 1:{ *:[i64] }, (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2i32] }:$Rn, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 82956*/      /*SwitchType*/ 52, MVT::v8i16,// ->83010
/* 82958*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 82964*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82967*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 82976*/        OPC_EmitInteger, MVT::i64, 1, 
/* 82979*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #6
/* 82985*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 82988*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 82997*/        OPC_EmitInteger, MVT::i64, 0, 
/* 83000*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v8i16, 4/*#Ops*/, 4, 5, 8, 9, 
                  // Src: (concat_vectors:{ *:[v8i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (INSvi64lane:{ *:[v8i16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), 1:{ *:[i64] }, (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4i16] }:$Rn, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 83010*/      /*SwitchType*/ 52, MVT::v16i8,// ->83064
/* 83012*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 83018*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83021*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 83030*/        OPC_EmitInteger, MVT::i64, 1, 
/* 83033*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #6
/* 83039*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83042*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 83051*/        OPC_EmitInteger, MVT::i64, 0, 
/* 83054*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v16i8, 4/*#Ops*/, 4, 5, 8, 9, 
                  // Src: (concat_vectors:{ *:[v16i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                  // Dst: (INSvi64lane:{ *:[v16i8] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), 1:{ *:[i64] }, (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v8i8] }:$Rn, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 83064*/      0, // EndSwitchType
/* 83065*/    /*Scope*/ 124, /*->83190*/
/* 83066*/      OPC_MoveChild1,
/* 83067*/      OPC_SwitchOpcode /*3 cases */, 37, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->83108
/* 83071*/        OPC_CheckChild0Integer, 101|128,1/*229*/, 
/* 83074*/        OPC_RecordChild1, // #1 = $Rn
/* 83075*/        OPC_CheckChild1Type, MVT::v2f64,
/* 83077*/        OPC_MoveParent,
/* 83078*/        OPC_CheckType, MVT::v4f32,
/* 83080*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83082*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 83088*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83091*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 83100*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTXNv4f32), 0,
                      MVT::v4f32, 2/*#Ops*/, 4, 1, 
                  // Src: (concat_vectors:{ *:[v4f32] } V64:{ *:[v2f32] }:$Rd, (intrinsic_wo_chain:{ *:[v2f32] } 229:{ *:[iPTR] }, V128:{ *:[v2f64] }:$Rn)) - Complexity = 11
                  // Dst: (FCVTXNv4f32:{ *:[v4f32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2f32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2f64] }:$Rn)
/* 83108*/      /*SwitchOpcode*/ 43, TARGET_VAL(ISD::UNDEF),// ->83154
/* 83111*/        OPC_MoveParent,
/* 83112*/        OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->83133
/* 83115*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #1
/* 83121*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83124*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (concat_vectors:{ *:[v2f64] } V64:{ *:[v1f64] }:$Rn, (undef:{ *:[v1f64] })) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v2f64] } (IMPLICIT_DEF:{ *:[v2f64] }), V64:{ *:[v1f64] }:$Rn, dsub:{ *:[i32] })
/* 83133*/        /*SwitchType*/ 18, MVT::v4f32,// ->83153
/* 83135*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 83141*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83144*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (concat_vectors:{ *:[v4f32] } V64:{ *:[v2f32] }:$Rn, (undef:{ *:[v2f32] })) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), V64:{ *:[v2f32] }:$Rn, dsub:{ *:[i32] })
/* 83153*/        0, // EndSwitchType
/* 83154*/      /*SwitchOpcode*/ 32, TARGET_VAL(ISD::FP_ROUND),// ->83189
/* 83157*/        OPC_RecordChild0, // #1 = $Rn
/* 83158*/        OPC_CheckChild0Type, MVT::v2f64,
/* 83160*/        OPC_MoveParent,
/* 83161*/        OPC_CheckType, MVT::v4f32,
/* 83163*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 83169*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83172*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 83181*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCVTNv4i32), 0,
                      MVT::v4f32, 2/*#Ops*/, 4, 1, 
                  // Src: (concat_vectors:{ *:[v4f32] } V64:{ *:[v2f32] }:$Rd, (fpround:{ *:[v2f32] } V128:{ *:[v2f64] }:$Rn)) - Complexity = 6
                  // Dst: (FCVTNv4i32:{ *:[v4f32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2f32] }:$Rd, dsub:{ *:[i32] }), V128:{ *:[v2f64] }:$Rn)
/* 83189*/      0, // EndSwitchOpcode
/* 83190*/    /*Scope*/ 37|128,1/*165*/, /*->83357*/
/* 83192*/      OPC_RecordChild1, // #1 = $Rn
/* 83193*/      OPC_SwitchType /*3 cases */, 52, MVT::v2f64,// ->83248
/* 83196*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 83202*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83205*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 83214*/        OPC_EmitInteger, MVT::i64, 1, 
/* 83217*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #6
/* 83223*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83226*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 83235*/        OPC_EmitInteger, MVT::i64, 0, 
/* 83238*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v2f64, 4/*#Ops*/, 4, 5, 8, 9, 
                  // Src: (concat_vectors:{ *:[v2f64] } V64:{ *:[v1f64] }:$Rd, V64:{ *:[v1f64] }:$Rn) - Complexity = 3
                  // Dst: (INSvi64lane:{ *:[v2f64] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v1f64] }:$Rd, dsub:{ *:[i32] }), 1:{ *:[i64] }, (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v1f64] }:$Rn, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 83248*/      /*SwitchType*/ 52, MVT::v4f32,// ->83302
/* 83250*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 83256*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83259*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 83268*/        OPC_EmitInteger, MVT::i64, 1, 
/* 83271*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #6
/* 83277*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83280*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 83289*/        OPC_EmitInteger, MVT::i64, 0, 
/* 83292*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v4f32, 4/*#Ops*/, 4, 5, 8, 9, 
                  // Src: (concat_vectors:{ *:[v4f32] } V64:{ *:[v2f32] }:$Rd, V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                  // Dst: (INSvi64lane:{ *:[v4f32] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2f32] }:$Rd, dsub:{ *:[i32] }), 1:{ *:[i64] }, (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v2f32] }:$Rn, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 83302*/      /*SwitchType*/ 52, MVT::v8f16,// ->83356
/* 83304*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #2
/* 83310*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83313*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 83322*/        OPC_EmitInteger, MVT::i64, 1, 
/* 83325*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f128, 0/*#Ops*/,  // Results = #6
/* 83331*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83334*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::f128, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 83343*/        OPC_EmitInteger, MVT::i64, 0, 
/* 83346*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v8f16, 4/*#Ops*/, 4, 5, 8, 9, 
                  // Src: (concat_vectors:{ *:[v8f16] } V64:{ *:[v4f16] }:$Rd, V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                  // Dst: (INSvi64lane:{ *:[v8f16] } (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4f16] }:$Rd, dsub:{ *:[i32] }), 1:{ *:[i64] }, (INSERT_SUBREG:{ *:[f128] } (IMPLICIT_DEF:{ *:[f128] }), V64:{ *:[v4f16] }:$Rn, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 83356*/      0, // EndSwitchType
/* 83357*/    0, /*End of Scope*/
/* 83358*/  /*SwitchOpcode*/ 100|128,12/*1636*/, TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->84998
/* 83362*/    OPC_RecordChild0, // #0 = $Rd
/* 83363*/    OPC_Scope, 109|128,3/*493*/, /*->83859*/ // 4 children in Scope
/* 83366*/      OPC_MoveChild1,
/* 83367*/      OPC_SwitchOpcode /*2 cases */, 51|128,1/*179*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->83551
/* 83372*/        OPC_RecordChild0, // #1 = $Rn
/* 83373*/        OPC_Scope, 43, /*->83418*/ // 4 children in Scope
/* 83375*/          OPC_CheckChild0Type, MVT::v16i8,
/* 83377*/          OPC_RecordChild1, // #2 = $idx2
/* 83378*/          OPC_MoveChild1,
/* 83379*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83382*/          OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 83384*/          OPC_CheckType, MVT::i64,
/* 83386*/          OPC_MoveParent,
/* 83387*/          OPC_CheckType, MVT::i32,
/* 83389*/          OPC_MoveParent,
/* 83390*/          OPC_RecordChild2, // #3 = $idx
/* 83391*/          OPC_MoveChild2,
/* 83392*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83395*/          OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 83397*/          OPC_CheckType, MVT::i64,
/* 83399*/          OPC_MoveParent,
/* 83400*/          OPC_CheckType, MVT::v16i8,
/* 83402*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83404*/          OPC_EmitConvertToTarget, 3,
/* 83406*/          OPC_EmitConvertToTarget, 2,
/* 83408*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi8lane), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 4, 1, 5, 
                    // Src: (vector_insert:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (vector_extract:{ *:[i32] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx2), (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx) - Complexity = 14
                    // Dst: (INSvi8lane:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (imm:{ *:[i64] }):$idx, V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] }):$idx2)
/* 83418*/        /*Scope*/ 43, /*->83462*/
/* 83419*/          OPC_CheckChild0Type, MVT::v8i16,
/* 83421*/          OPC_RecordChild1, // #2 = $idx2
/* 83422*/          OPC_MoveChild1,
/* 83423*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83426*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 83428*/          OPC_CheckType, MVT::i64,
/* 83430*/          OPC_MoveParent,
/* 83431*/          OPC_CheckType, MVT::i32,
/* 83433*/          OPC_MoveParent,
/* 83434*/          OPC_RecordChild2, // #3 = $idx
/* 83435*/          OPC_MoveChild2,
/* 83436*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83439*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 83441*/          OPC_CheckType, MVT::i64,
/* 83443*/          OPC_MoveParent,
/* 83444*/          OPC_CheckType, MVT::v8i16,
/* 83446*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83448*/          OPC_EmitConvertToTarget, 3,
/* 83450*/          OPC_EmitConvertToTarget, 2,
/* 83452*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi16lane), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 4, 1, 5, 
                    // Src: (vector_insert:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (vector_extract:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx2), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 14
                    // Dst: (INSvi16lane:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (imm:{ *:[i64] }):$idx, V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] }):$idx2)
/* 83462*/        /*Scope*/ 43, /*->83506*/
/* 83463*/          OPC_CheckChild0Type, MVT::v4i32,
/* 83465*/          OPC_RecordChild1, // #2 = $idx2
/* 83466*/          OPC_MoveChild1,
/* 83467*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83470*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 83472*/          OPC_CheckType, MVT::i64,
/* 83474*/          OPC_MoveParent,
/* 83475*/          OPC_CheckType, MVT::i32,
/* 83477*/          OPC_MoveParent,
/* 83478*/          OPC_RecordChild2, // #3 = $idx
/* 83479*/          OPC_MoveChild2,
/* 83480*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83483*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 83485*/          OPC_CheckType, MVT::i64,
/* 83487*/          OPC_MoveParent,
/* 83488*/          OPC_CheckType, MVT::v4i32,
/* 83490*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83492*/          OPC_EmitConvertToTarget, 3,
/* 83494*/          OPC_EmitConvertToTarget, 2,
/* 83496*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi32lane), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 4, 1, 5, 
                    // Src: (vector_insert:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx2), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 14
                    // Dst: (INSvi32lane:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (imm:{ *:[i64] }):$idx, V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] }):$idx2)
/* 83506*/        /*Scope*/ 43, /*->83550*/
/* 83507*/          OPC_CheckChild0Type, MVT::v2i64,
/* 83509*/          OPC_RecordChild1, // #2 = $idx2
/* 83510*/          OPC_MoveChild1,
/* 83511*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83514*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 83516*/          OPC_CheckType, MVT::i64,
/* 83518*/          OPC_MoveParent,
/* 83519*/          OPC_CheckType, MVT::i64,
/* 83521*/          OPC_MoveParent,
/* 83522*/          OPC_RecordChild2, // #3 = $idx
/* 83523*/          OPC_MoveChild2,
/* 83524*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83527*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 83529*/          OPC_CheckType, MVT::i64,
/* 83531*/          OPC_MoveParent,
/* 83532*/          OPC_CheckType, MVT::v2i64,
/* 83534*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83536*/          OPC_EmitConvertToTarget, 3,
/* 83538*/          OPC_EmitConvertToTarget, 2,
/* 83540*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 4, 1, 5, 
                    // Src: (vector_insert:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (vector_extract:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx2), (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx) - Complexity = 14
                    // Dst: (INSvi64lane:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (imm:{ *:[i64] }):$idx, V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i64] }):$idx2)
/* 83550*/        0, /*End of Scope*/
/* 83551*/      /*SwitchOpcode*/ 47|128,2/*303*/, TARGET_VAL(ISD::LOAD),// ->83858
/* 83555*/        OPC_RecordMemRef,
/* 83556*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 83557*/        OPC_CheckFoldableChainNode,
/* 83558*/        OPC_RecordChild1, // #2 = $Rn
/* 83559*/        OPC_CheckChild1Type, MVT::i64,
/* 83561*/        OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 83563*/        OPC_Scope, 62, /*->83627*/ // 4 children in Scope
/* 83565*/          OPC_CheckPredicate, 33, // Predicate_extload
/* 83567*/          OPC_CheckType, MVT::i32,
/* 83569*/          OPC_Scope, 27, /*->83598*/ // 2 children in Scope
/* 83571*/            OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 83573*/            OPC_MoveParent,
/* 83574*/            OPC_RecordChild2, // #3 = $idx
/* 83575*/            OPC_MoveChild2,
/* 83576*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83579*/            OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 83581*/            OPC_CheckType, MVT::i64,
/* 83583*/            OPC_MoveParent,
/* 83584*/            OPC_CheckType, MVT::v16i8,
/* 83586*/            OPC_EmitMergeInputChains1_1,
/* 83587*/            OPC_EmitConvertToTarget, 3,
/* 83589*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1i8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 3/*#Ops*/, 0, 4, 2, 
                      // Src: (vector_insert:{ *:[v16i8] } VecListOne128:{ *:[v16i8] }:$Rd, (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx) - Complexity = 11
                      // Dst: (LD1i8:{ *:[v16i8] } VecListOne128:{ *:[v16i8] }:$Rd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/* 83598*/          /*Scope*/ 27, /*->83626*/
/* 83599*/            OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 83601*/            OPC_MoveParent,
/* 83602*/            OPC_RecordChild2, // #3 = $idx
/* 83603*/            OPC_MoveChild2,
/* 83604*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83607*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 83609*/            OPC_CheckType, MVT::i64,
/* 83611*/            OPC_MoveParent,
/* 83612*/            OPC_CheckType, MVT::v8i16,
/* 83614*/            OPC_EmitMergeInputChains1_1,
/* 83615*/            OPC_EmitConvertToTarget, 3,
/* 83617*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1i16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 3/*#Ops*/, 0, 4, 2, 
                      // Src: (vector_insert:{ *:[v8i16] } VecListOne128:{ *:[v8i16] }:$Rd, (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 11
                      // Dst: (LD1i16:{ *:[v8i16] } VecListOne128:{ *:[v8i16] }:$Rd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/* 83626*/          0, /*End of Scope*/
/* 83627*/        /*Scope*/ 58, /*->83686*/
/* 83628*/          OPC_CheckPredicate, 30, // Predicate_load
/* 83630*/          OPC_SwitchType /*2 cases */, 25, MVT::i32,// ->83658
/* 83633*/            OPC_MoveParent,
/* 83634*/            OPC_RecordChild2, // #3 = $idx
/* 83635*/            OPC_MoveChild2,
/* 83636*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83639*/            OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 83641*/            OPC_CheckType, MVT::i64,
/* 83643*/            OPC_MoveParent,
/* 83644*/            OPC_CheckType, MVT::v4i32,
/* 83646*/            OPC_EmitMergeInputChains1_1,
/* 83647*/            OPC_EmitConvertToTarget, 3,
/* 83649*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1i32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 3/*#Ops*/, 0, 4, 2, 
                      // Src: (vector_insert:{ *:[v4i32] } VecListOne128:{ *:[v4i32] }:$Rd, (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 11
                      // Dst: (LD1i32:{ *:[v4i32] } VecListOne128:{ *:[v4i32] }:$Rd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/* 83658*/          /*SwitchType*/ 25, MVT::i64,// ->83685
/* 83660*/            OPC_MoveParent,
/* 83661*/            OPC_RecordChild2, // #3 = $idx
/* 83662*/            OPC_MoveChild2,
/* 83663*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83666*/            OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 83668*/            OPC_CheckType, MVT::i64,
/* 83670*/            OPC_MoveParent,
/* 83671*/            OPC_CheckType, MVT::v2i64,
/* 83673*/            OPC_EmitMergeInputChains1_1,
/* 83674*/            OPC_EmitConvertToTarget, 3,
/* 83676*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1i64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 3/*#Ops*/, 0, 4, 2, 
                      // Src: (vector_insert:{ *:[v2i64] } VecListOne128:{ *:[v2i64] }:$Rd, (ld:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx) - Complexity = 11
                      // Dst: (LD1i64:{ *:[v2i64] } VecListOne128:{ *:[v2i64] }:$Rd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/* 83685*/          0, // EndSwitchType
/* 83686*/        /*Scope*/ 114, /*->83801*/
/* 83687*/          OPC_CheckPredicate, 33, // Predicate_extload
/* 83689*/          OPC_CheckType, MVT::i32,
/* 83691*/          OPC_Scope, 53, /*->83746*/ // 2 children in Scope
/* 83693*/            OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 83695*/            OPC_MoveParent,
/* 83696*/            OPC_RecordChild2, // #3 = $idx
/* 83697*/            OPC_MoveChild2,
/* 83698*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83701*/            OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 83703*/            OPC_CheckType, MVT::i64,
/* 83705*/            OPC_MoveParent,
/* 83706*/            OPC_CheckType, MVT::v8i8,
/* 83708*/            OPC_EmitMergeInputChains1_1,
/* 83709*/            OPC_EmitInteger, MVT::i32, 0, 
/* 83712*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83715*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 83724*/            OPC_EmitConvertToTarget, 3,
/* 83726*/            OPC_EmitNode1, TARGET_VAL(AArch64::LD1i8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f128, 3/*#Ops*/, 6, 7, 2,  // Results = #8
/* 83735*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83738*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                          MVT::v8i8, 2/*#Ops*/, 8, 9, 
                      // Src: (vector_insert:{ *:[v8i8] } VecListOne64:{ *:[v8i8] }:$Rd, (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[v8i8] } (LD1i8:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v8i8] }:$Rd, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx, GPR64sp:{ *:[i64] }:$Rn), dsub:{ *:[i32] })
/* 83746*/          /*Scope*/ 53, /*->83800*/
/* 83747*/            OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 83749*/            OPC_MoveParent,
/* 83750*/            OPC_RecordChild2, // #3 = $idx
/* 83751*/            OPC_MoveChild2,
/* 83752*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83755*/            OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 83757*/            OPC_CheckType, MVT::i64,
/* 83759*/            OPC_MoveParent,
/* 83760*/            OPC_CheckType, MVT::v4i16,
/* 83762*/            OPC_EmitMergeInputChains1_1,
/* 83763*/            OPC_EmitInteger, MVT::i32, 0, 
/* 83766*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83769*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 83778*/            OPC_EmitConvertToTarget, 3,
/* 83780*/            OPC_EmitNode1, TARGET_VAL(AArch64::LD1i16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f128, 3/*#Ops*/, 6, 7, 2,  // Results = #8
/* 83789*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83792*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                          MVT::v4i16, 2/*#Ops*/, 8, 9, 
                      // Src: (vector_insert:{ *:[v4i16] } VecListOne64:{ *:[v4i16] }:$Rd, (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (LD1i16:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v4i16] }:$Rd, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn), dsub:{ *:[i32] })
/* 83800*/          0, /*End of Scope*/
/* 83801*/        /*Scope*/ 55, /*->83857*/
/* 83802*/          OPC_CheckPredicate, 30, // Predicate_load
/* 83804*/          OPC_CheckType, MVT::i32,
/* 83806*/          OPC_MoveParent,
/* 83807*/          OPC_RecordChild2, // #3 = $idx
/* 83808*/          OPC_MoveChild2,
/* 83809*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83812*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 83814*/          OPC_CheckType, MVT::i64,
/* 83816*/          OPC_MoveParent,
/* 83817*/          OPC_CheckType, MVT::v2i32,
/* 83819*/          OPC_EmitMergeInputChains1_1,
/* 83820*/          OPC_EmitInteger, MVT::i32, 0, 
/* 83823*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83826*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 83835*/          OPC_EmitConvertToTarget, 3,
/* 83837*/          OPC_EmitNode1, TARGET_VAL(AArch64::LD1i32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 3/*#Ops*/, 6, 7, 2,  // Results = #8
/* 83846*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 83849*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                        MVT::v2i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_insert:{ *:[v2i32] } VecListOne64:{ *:[v2i32] }:$Rd, (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 11
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (LD1i32:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v2i32] }:$Rd, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn), dsub:{ *:[i32] })
/* 83857*/        0, /*End of Scope*/
/* 83858*/      0, // EndSwitchOpcode
/* 83859*/    /*Scope*/ 100, /*->83960*/
/* 83860*/      OPC_RecordChild1, // #1 = $Rn
/* 83861*/      OPC_Scope, 68, /*->83931*/ // 2 children in Scope
/* 83863*/        OPC_CheckChild1Type, MVT::i32,
/* 83865*/        OPC_RecordChild2, // #2 = $idx
/* 83866*/        OPC_MoveChild2,
/* 83867*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83870*/        OPC_CheckType, MVT::i64,
/* 83872*/        OPC_Scope, 18, /*->83892*/ // 3 children in Scope
/* 83874*/          OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 83876*/          OPC_MoveParent,
/* 83877*/          OPC_CheckType, MVT::v16i8,
/* 83879*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83881*/          OPC_EmitConvertToTarget, 2,
/* 83883*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi8gpr), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 3, 1, 
                    // Src: (vector_insert:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx) - Complexity = 7
                    // Dst: (INSvi8gpr:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, (imm:{ *:[i64] }):$idx, GPR32:{ *:[i32] }:$Rn)
/* 83892*/        /*Scope*/ 18, /*->83911*/
/* 83893*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 83895*/          OPC_MoveParent,
/* 83896*/          OPC_CheckType, MVT::v8i16,
/* 83898*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83900*/          OPC_EmitConvertToTarget, 2,
/* 83902*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi16gpr), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 3, 1, 
                    // Src: (vector_insert:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 7
                    // Dst: (INSvi16gpr:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (imm:{ *:[i64] }):$idx, GPR32:{ *:[i32] }:$Rn)
/* 83911*/        /*Scope*/ 18, /*->83930*/
/* 83912*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 83914*/          OPC_MoveParent,
/* 83915*/          OPC_CheckType, MVT::v4i32,
/* 83917*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83919*/          OPC_EmitConvertToTarget, 2,
/* 83921*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi32gpr), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 3, 1, 
                    // Src: (vector_insert:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, GPR32:{ *:[i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 7
                    // Dst: (INSvi32gpr:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (imm:{ *:[i64] }):$idx, GPR32:{ *:[i32] }:$Rn)
/* 83930*/        0, /*End of Scope*/
/* 83931*/      /*Scope*/ 27, /*->83959*/
/* 83932*/        OPC_CheckChild1Type, MVT::i64,
/* 83934*/        OPC_RecordChild2, // #2 = $idx
/* 83935*/        OPC_MoveChild2,
/* 83936*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83939*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 83941*/        OPC_CheckType, MVT::i64,
/* 83943*/        OPC_MoveParent,
/* 83944*/        OPC_CheckType, MVT::v2i64,
/* 83946*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 83948*/        OPC_EmitConvertToTarget, 2,
/* 83950*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64gpr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 3, 1, 
                  // Src: (vector_insert:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, GPR64:{ *:[i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx) - Complexity = 7
                  // Dst: (INSvi64gpr:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, (imm:{ *:[i64] }):$idx, GPR64:{ *:[i64] }:$Rn)
/* 83959*/      0, /*End of Scope*/
/* 83960*/    /*Scope*/ 109|128,5/*749*/, /*->84711*/
/* 83962*/      OPC_MoveChild1,
/* 83963*/      OPC_SwitchOpcode /*2 cases */, 49|128,4/*561*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->84529
/* 83968*/        OPC_RecordChild0, // #1 = $Rn
/* 83969*/        OPC_Scope, 77, /*->84048*/ // 6 children in Scope
/* 83971*/          OPC_CheckChild0Type, MVT::v8f16,
/* 83973*/          OPC_RecordChild1, // #2 = $Immn
/* 83974*/          OPC_MoveChild1,
/* 83975*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83978*/          OPC_MoveParent,
/* 83979*/          OPC_CheckType, MVT::f16,
/* 83981*/          OPC_MoveParent,
/* 83982*/          OPC_RecordChild2, // #3 = $Immd
/* 83983*/          OPC_MoveChild2,
/* 83984*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83987*/          OPC_MoveParent,
/* 83988*/          OPC_SwitchType /*2 cases */, 14, MVT::v8f16,// ->84005
/* 83991*/            OPC_EmitConvertToTarget, 3,
/* 83993*/            OPC_EmitConvertToTarget, 2,
/* 83995*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi16lane), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 4, 1, 5, 
                      // Src: (vector_insert:{ *:[v8f16] } V128:{ *:[v8f16] }:$src, (vector_extract:{ *:[f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (INSvi16lane:{ *:[v8f16] } V128:{ *:[v8f16] }:$src, (imm:{ *:[i64] }):$Immd, V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] }):$Immn)
/* 84005*/          /*SwitchType*/ 40, MVT::v4f16,// ->84047
/* 84007*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84010*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84013*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 84022*/            OPC_EmitConvertToTarget, 3,
/* 84024*/            OPC_EmitConvertToTarget, 2,
/* 84026*/            OPC_EmitNode1, TARGET_VAL(AArch64::INSvi16lane), 0,
                          MVT::f128, 4/*#Ops*/, 6, 7, 1, 8,  // Results = #9
/* 84036*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84039*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f16, 2/*#Ops*/, 9, 10, 
                      // Src: (vector_insert:{ *:[v4f16] } V64:{ *:[v4f16] }:$src, (vector_extract:{ *:[f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f16] } (INSvi16lane:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v4f16] }:$src, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immd, V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] }):$Immn), dsub:{ *:[i32] })
/* 84047*/          0, // EndSwitchType
/* 84048*/        /*Scope*/ 77, /*->84126*/
/* 84049*/          OPC_CheckChild0Type, MVT::v4f32,
/* 84051*/          OPC_RecordChild1, // #2 = $Immn
/* 84052*/          OPC_MoveChild1,
/* 84053*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84056*/          OPC_MoveParent,
/* 84057*/          OPC_CheckType, MVT::f32,
/* 84059*/          OPC_MoveParent,
/* 84060*/          OPC_RecordChild2, // #3 = $Immd
/* 84061*/          OPC_MoveChild2,
/* 84062*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84065*/          OPC_MoveParent,
/* 84066*/          OPC_SwitchType /*2 cases */, 14, MVT::v4f32,// ->84083
/* 84069*/            OPC_EmitConvertToTarget, 3,
/* 84071*/            OPC_EmitConvertToTarget, 2,
/* 84073*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi32lane), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 4, 1, 5, 
                      // Src: (vector_insert:{ *:[v4f32] } V128:{ *:[v4f32] }:$src, (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (INSvi32lane:{ *:[v4f32] } V128:{ *:[v4f32] }:$src, (imm:{ *:[i64] }):$Immd, V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] }):$Immn)
/* 84083*/          /*SwitchType*/ 40, MVT::v2f32,// ->84125
/* 84085*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84088*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84091*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 84100*/            OPC_EmitConvertToTarget, 3,
/* 84102*/            OPC_EmitConvertToTarget, 2,
/* 84104*/            OPC_EmitNode1, TARGET_VAL(AArch64::INSvi32lane), 0,
                          MVT::f128, 4/*#Ops*/, 6, 7, 1, 8,  // Results = #9
/* 84114*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84117*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f32, 2/*#Ops*/, 9, 10, 
                      // Src: (vector_insert:{ *:[v2f32] } V64:{ *:[v2f32] }:$src, (vector_extract:{ *:[f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (EXTRACT_SUBREG:{ *:[v2f32] } (INSvi32lane:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v2f32] }:$src, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immd, V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] }):$Immn), dsub:{ *:[i32] })
/* 84125*/          0, // EndSwitchType
/* 84126*/        /*Scope*/ 77, /*->84204*/
/* 84127*/          OPC_CheckChild0Type, MVT::v2f64,
/* 84129*/          OPC_RecordChild1, // #2 = $Immn
/* 84130*/          OPC_MoveChild1,
/* 84131*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84134*/          OPC_MoveParent,
/* 84135*/          OPC_CheckType, MVT::f64,
/* 84137*/          OPC_MoveParent,
/* 84138*/          OPC_RecordChild2, // #3 = $Immd
/* 84139*/          OPC_MoveChild2,
/* 84140*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84143*/          OPC_MoveParent,
/* 84144*/          OPC_SwitchType /*2 cases */, 14, MVT::v2f64,// ->84161
/* 84147*/            OPC_EmitConvertToTarget, 3,
/* 84149*/            OPC_EmitConvertToTarget, 2,
/* 84151*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 4, 1, 5, 
                      // Src: (vector_insert:{ *:[v2f64] } V128:{ *:[v2f64] }:$src, (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (INSvi64lane:{ *:[v2f64] } V128:{ *:[v2f64] }:$src, (imm:{ *:[i64] }):$Immd, V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i64] }):$Immn)
/* 84161*/          /*SwitchType*/ 40, MVT::v1f64,// ->84203
/* 84163*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84166*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84169*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 84178*/            OPC_EmitConvertToTarget, 3,
/* 84180*/            OPC_EmitConvertToTarget, 2,
/* 84182*/            OPC_EmitNode1, TARGET_VAL(AArch64::INSvi64lane), 0,
                          MVT::f128, 4/*#Ops*/, 6, 7, 1, 8,  // Results = #9
/* 84192*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84195*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v1f64, 2/*#Ops*/, 9, 10, 
                      // Src: (vector_insert:{ *:[v1f64] } V64:{ *:[v1f64] }:$src, (vector_extract:{ *:[f64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (EXTRACT_SUBREG:{ *:[v1f64] } (INSvi64lane:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1f64] }:$src, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immd, V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i64] }):$Immn), dsub:{ *:[i32] })
/* 84203*/          0, // EndSwitchType
/* 84204*/        /*Scope*/ 107, /*->84312*/
/* 84205*/          OPC_CheckChild0Type, MVT::v4f16,
/* 84207*/          OPC_RecordChild1, // #2 = $Immn
/* 84208*/          OPC_MoveChild1,
/* 84209*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84212*/          OPC_MoveParent,
/* 84213*/          OPC_CheckType, MVT::f16,
/* 84215*/          OPC_MoveParent,
/* 84216*/          OPC_RecordChild2, // #3 = $Immd
/* 84217*/          OPC_MoveChild2,
/* 84218*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84221*/          OPC_MoveParent,
/* 84222*/          OPC_SwitchType /*2 cases */, 29, MVT::v8f16,// ->84254
/* 84225*/            OPC_EmitConvertToTarget, 3,
/* 84227*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84230*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84233*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 84242*/            OPC_EmitConvertToTarget, 2,
/* 84244*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi16lane), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 4, 7, 8, 
                      // Src: (vector_insert:{ *:[v8f16] } V128:{ *:[v8f16] }:$src, (vector_extract:{ *:[f16] } V64:{ *:[v4f16] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (INSvi16lane:{ *:[v8f16] } V128:{ *:[v8f16] }:$src, (imm:{ *:[i64] }):$Immd, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v4f16] }:$Rn, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immn)
/* 84254*/          /*SwitchType*/ 55, MVT::v4f16,// ->84311
/* 84256*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84259*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84262*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 84271*/            OPC_EmitConvertToTarget, 3,
/* 84273*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84276*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84279*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 84288*/            OPC_EmitConvertToTarget, 2,
/* 84290*/            OPC_EmitNode1, TARGET_VAL(AArch64::INSvi16lane), 0,
                          MVT::f128, 4/*#Ops*/, 6, 7, 10, 11,  // Results = #12
/* 84300*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84303*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4f16, 2/*#Ops*/, 12, 13, 
                      // Src: (vector_insert:{ *:[v4f16] } V64:{ *:[v4f16] }:$src, (vector_extract:{ *:[f16] } V64:{ *:[v4f16] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f16] } (INSvi16lane:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v4f16] }:$src, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immd, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v4f16] }:$Rn, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immn), dsub:{ *:[i32] })
/* 84311*/          0, // EndSwitchType
/* 84312*/        /*Scope*/ 107, /*->84420*/
/* 84313*/          OPC_CheckChild0Type, MVT::v2f32,
/* 84315*/          OPC_RecordChild1, // #2 = $Immn
/* 84316*/          OPC_MoveChild1,
/* 84317*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84320*/          OPC_MoveParent,
/* 84321*/          OPC_CheckType, MVT::f32,
/* 84323*/          OPC_MoveParent,
/* 84324*/          OPC_RecordChild2, // #3 = $Immd
/* 84325*/          OPC_MoveChild2,
/* 84326*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84329*/          OPC_MoveParent,
/* 84330*/          OPC_SwitchType /*2 cases */, 29, MVT::v4f32,// ->84362
/* 84333*/            OPC_EmitConvertToTarget, 3,
/* 84335*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84338*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84341*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 84350*/            OPC_EmitConvertToTarget, 2,
/* 84352*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi32lane), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 4, 7, 8, 
                      // Src: (vector_insert:{ *:[v4f32] } V128:{ *:[v4f32] }:$src, (vector_extract:{ *:[f32] } V64:{ *:[v2f32] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (INSvi32lane:{ *:[v4f32] } V128:{ *:[v4f32] }:$src, (imm:{ *:[i64] }):$Immd, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v2f32] }:$Rn, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immn)
/* 84362*/          /*SwitchType*/ 55, MVT::v2f32,// ->84419
/* 84364*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84367*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84370*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 84379*/            OPC_EmitConvertToTarget, 3,
/* 84381*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84384*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84387*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 84396*/            OPC_EmitConvertToTarget, 2,
/* 84398*/            OPC_EmitNode1, TARGET_VAL(AArch64::INSvi32lane), 0,
                          MVT::f128, 4/*#Ops*/, 6, 7, 10, 11,  // Results = #12
/* 84408*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84411*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f32, 2/*#Ops*/, 12, 13, 
                      // Src: (vector_insert:{ *:[v2f32] } V64:{ *:[v2f32] }:$src, (vector_extract:{ *:[f32] } V64:{ *:[v2f32] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (EXTRACT_SUBREG:{ *:[v2f32] } (INSvi32lane:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v2f32] }:$src, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immd, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v2f32] }:$Rn, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immn), dsub:{ *:[i32] })
/* 84419*/          0, // EndSwitchType
/* 84420*/        /*Scope*/ 107, /*->84528*/
/* 84421*/          OPC_CheckChild0Type, MVT::v1f64,
/* 84423*/          OPC_RecordChild1, // #2 = $Immn
/* 84424*/          OPC_MoveChild1,
/* 84425*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84428*/          OPC_MoveParent,
/* 84429*/          OPC_CheckType, MVT::f64,
/* 84431*/          OPC_MoveParent,
/* 84432*/          OPC_RecordChild2, // #3 = $Immd
/* 84433*/          OPC_MoveChild2,
/* 84434*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84437*/          OPC_MoveParent,
/* 84438*/          OPC_SwitchType /*2 cases */, 29, MVT::v2f64,// ->84470
/* 84441*/            OPC_EmitConvertToTarget, 3,
/* 84443*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84446*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84449*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 84458*/            OPC_EmitConvertToTarget, 2,
/* 84460*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 4, 7, 8, 
                      // Src: (vector_insert:{ *:[v2f64] } V128:{ *:[v2f64] }:$src, (vector_extract:{ *:[f64] } V64:{ *:[v1f64] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (INSvi64lane:{ *:[v2f64] } V128:{ *:[v2f64] }:$src, (imm:{ *:[i64] }):$Immd, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1f64] }:$Rn, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immn)
/* 84470*/          /*SwitchType*/ 55, MVT::v1f64,// ->84527
/* 84472*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84475*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84478*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 84487*/            OPC_EmitConvertToTarget, 3,
/* 84489*/            OPC_EmitInteger, MVT::i64, 0, 
/* 84492*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84495*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/* 84504*/            OPC_EmitConvertToTarget, 2,
/* 84506*/            OPC_EmitNode1, TARGET_VAL(AArch64::INSvi64lane), 0,
                          MVT::f128, 4/*#Ops*/, 6, 7, 10, 11,  // Results = #12
/* 84516*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84519*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v1f64, 2/*#Ops*/, 12, 13, 
                      // Src: (vector_insert:{ *:[v1f64] } V64:{ *:[v1f64] }:$src, (vector_extract:{ *:[f64] } V64:{ *:[v1f64] }:$Rn, (imm:{ *:[iPTR] }):$Immn), (imm:{ *:[iPTR] }):$Immd) - Complexity = 12
                      // Dst: (EXTRACT_SUBREG:{ *:[v1f64] } (INSvi64lane:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1f64] }:$src, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immd, (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1f64] }:$Rn, dsub:{ *:[i32] }), (imm:{ *:[i64] }):$Immn), dsub:{ *:[i32] })
/* 84527*/          0, // EndSwitchType
/* 84528*/        0, /*End of Scope*/
/* 84529*/      /*SwitchOpcode*/ 49|128,1/*177*/, TARGET_VAL(ISD::LOAD),// ->84710
/* 84533*/        OPC_RecordMemRef,
/* 84534*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 84535*/        OPC_CheckFoldableChainNode,
/* 84536*/        OPC_RecordChild1, // #2 = $Rn
/* 84537*/        OPC_CheckChild1Type, MVT::i64,
/* 84539*/        OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 84541*/        OPC_CheckPredicate, 30, // Predicate_load
/* 84543*/        OPC_SwitchType /*3 cases */, 67, MVT::f32,// ->84613
/* 84546*/          OPC_MoveParent,
/* 84547*/          OPC_RecordChild2, // #3 = $idx
/* 84548*/          OPC_MoveChild2,
/* 84549*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84552*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 84554*/          OPC_CheckType, MVT::i64,
/* 84556*/          OPC_MoveParent,
/* 84557*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->84572
/* 84560*/            OPC_EmitMergeInputChains1_1,
/* 84561*/            OPC_EmitConvertToTarget, 3,
/* 84563*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1i32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 3/*#Ops*/, 0, 4, 2, 
                      // Src: (vector_insert:{ *:[v4f32] } VecListOne128:{ *:[v4f32] }:$Rd, (ld:{ *:[f32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 11
                      // Dst: (LD1i32:{ *:[v4f32] } VecListOne128:{ *:[v4f32] }:$Rd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/* 84572*/          /*SwitchType*/ 38, MVT::v2f32,// ->84612
/* 84574*/            OPC_EmitMergeInputChains1_1,
/* 84575*/            OPC_EmitInteger, MVT::i32, 0, 
/* 84578*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84581*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 84590*/            OPC_EmitConvertToTarget, 3,
/* 84592*/            OPC_EmitNode1, TARGET_VAL(AArch64::LD1i32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f128, 3/*#Ops*/, 6, 7, 2,  // Results = #8
/* 84601*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84604*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                          MVT::v2f32, 2/*#Ops*/, 8, 9, 
                      // Src: (vector_insert:{ *:[v2f32] } VecListOne64:{ *:[v2f32] }:$Rd, (ld:{ *:[f32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[v2f32] } (LD1i32:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v2f32] }:$Rd, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx, GPR64sp:{ *:[i64] }:$Rn), dsub:{ *:[i32] })
/* 84612*/          0, // EndSwitchType
/* 84613*/        /*SwitchType*/ 25, MVT::f64,// ->84640
/* 84615*/          OPC_MoveParent,
/* 84616*/          OPC_RecordChild2, // #3 = $idx
/* 84617*/          OPC_MoveChild2,
/* 84618*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84621*/          OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 84623*/          OPC_CheckType, MVT::i64,
/* 84625*/          OPC_MoveParent,
/* 84626*/          OPC_CheckType, MVT::v2f64,
/* 84628*/          OPC_EmitMergeInputChains1_1,
/* 84629*/          OPC_EmitConvertToTarget, 3,
/* 84631*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1i64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 3/*#Ops*/, 0, 4, 2, 
                    // Src: (vector_insert:{ *:[v2f64] } VecListOne128:{ *:[v2f64] }:$Rd, (ld:{ *:[f64] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx) - Complexity = 11
                    // Dst: (LD1i64:{ *:[v2f64] } VecListOne128:{ *:[v2f64] }:$Rd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/* 84640*/        /*SwitchType*/ 67, MVT::f16,// ->84709
/* 84642*/          OPC_MoveParent,
/* 84643*/          OPC_RecordChild2, // #3 = $idx
/* 84644*/          OPC_MoveChild2,
/* 84645*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84648*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 84650*/          OPC_CheckType, MVT::i64,
/* 84652*/          OPC_MoveParent,
/* 84653*/          OPC_SwitchType /*2 cases */, 12, MVT::v8f16,// ->84668
/* 84656*/            OPC_EmitMergeInputChains1_1,
/* 84657*/            OPC_EmitConvertToTarget, 3,
/* 84659*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1i16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f16, 3/*#Ops*/, 0, 4, 2, 
                      // Src: (vector_insert:{ *:[v8f16] } VecListOne128:{ *:[v8f16] }:$Rd, (ld:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 11
                      // Dst: (LD1i16:{ *:[v8f16] } VecListOne128:{ *:[v8f16] }:$Rd, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn)
/* 84668*/          /*SwitchType*/ 38, MVT::v4f16,// ->84708
/* 84670*/            OPC_EmitMergeInputChains1_1,
/* 84671*/            OPC_EmitInteger, MVT::i32, 0, 
/* 84674*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84677*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 84686*/            OPC_EmitConvertToTarget, 3,
/* 84688*/            OPC_EmitNode1, TARGET_VAL(AArch64::LD1i16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f128, 3/*#Ops*/, 6, 7, 2,  // Results = #8
/* 84697*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84700*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                          MVT::v4f16, 2/*#Ops*/, 8, 9, 
                      // Src: (vector_insert:{ *:[v4f16] } VecListOne64:{ *:[v4f16] }:$Rd, (ld:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[v4f16] } (LD1i16:{ *:[f128] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i32] }, VecListOne64:{ *:[v4f16] }:$Rd, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx, GPR64sp:{ *:[i64] }:$Rn), dsub:{ *:[i32] })
/* 84708*/          0, // EndSwitchType
/* 84709*/        0, // EndSwitchType
/* 84710*/      0, // EndSwitchOpcode
/* 84711*/    /*Scope*/ 28|128,2/*284*/, /*->84997*/
/* 84713*/      OPC_RecordChild1, // #1 = $Rm
/* 84714*/      OPC_Scope, 118, /*->84834*/ // 3 children in Scope
/* 84716*/        OPC_CheckChild1Type, MVT::f16,
/* 84718*/        OPC_RecordChild2, // #2 = $imm
/* 84719*/        OPC_MoveChild2,
/* 84720*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84723*/        OPC_CheckType, MVT::i64,
/* 84725*/        OPC_Scope, 38, /*->84765*/ // 2 children in Scope
/* 84727*/          OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 84729*/          OPC_MoveParent,
/* 84730*/          OPC_CheckType, MVT::v8f16,
/* 84732*/          OPC_EmitConvertToTarget, 2,
/* 84734*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f16, 0/*#Ops*/,  // Results = #4
/* 84740*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 84743*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 84752*/          OPC_EmitInteger, MVT::i64, 0, 
/* 84755*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi16lane), 0,
                        MVT::v8f16, 4/*#Ops*/, 0, 3, 6, 7, 
                    // Src: (vector_insert:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$imm) - Complexity = 7
                    // Dst: (INSvi16lane:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$imm, (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), FPR16:{ *:[f16] }:$Rm, hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 84765*/        /*Scope*/ 67, /*->84833*/
/* 84766*/          OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 84768*/          OPC_MoveParent,
/* 84769*/          OPC_CheckType, MVT::v4f16,
/* 84771*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f16, 0/*#Ops*/,  // Results = #3
/* 84777*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84780*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f16, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 84789*/          OPC_EmitConvertToTarget, 2,
/* 84791*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f16, 0/*#Ops*/,  // Results = #7
/* 84797*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 84800*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f16, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 84809*/          OPC_EmitInteger, MVT::i64, 0, 
/* 84812*/          OPC_EmitNode1, TARGET_VAL(AArch64::INSvi16lane), 0,
                        MVT::f128, 4/*#Ops*/, 5, 6, 9, 10,  // Results = #11
/* 84822*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84825*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f16, 2/*#Ops*/, 11, 12, 
                    // Src: (vector_insert:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, FPR16:{ *:[f16] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[v4f16] } (INSvi16lane:{ *:[f128] } (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), V64:{ *:[v4f16] }:$Rn, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm, (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), FPR16:{ *:[f16] }:$Rm, hsub:{ *:[i32] }), 0:{ *:[i64] }), dsub:{ *:[i32] })
/* 84833*/        0, /*End of Scope*/
/* 84834*/      /*Scope*/ 113, /*->84948*/
/* 84835*/        OPC_CheckChild1Type, MVT::f32,
/* 84837*/        OPC_RecordChild2, // #2 = $imm
/* 84838*/        OPC_MoveChild2,
/* 84839*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84842*/        OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 84844*/        OPC_CheckType, MVT::i64,
/* 84846*/        OPC_MoveParent,
/* 84847*/        OPC_SwitchType /*2 cases */, 33, MVT::v4f32,// ->84883
/* 84850*/          OPC_EmitConvertToTarget, 2,
/* 84852*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #4
/* 84858*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 84861*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 84870*/          OPC_EmitInteger, MVT::i64, 0, 
/* 84873*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi32lane), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 3, 6, 7, 
                    // Src: (vector_insert:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm) - Complexity = 7
                    // Dst: (INSvi32lane:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm, (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), FPR32:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 84883*/        /*SwitchType*/ 62, MVT::v2f32,// ->84947
/* 84885*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #3
/* 84891*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84894*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/* 84903*/          OPC_EmitConvertToTarget, 2,
/* 84905*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 84911*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 84914*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f32, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 84923*/          OPC_EmitInteger, MVT::i64, 0, 
/* 84926*/          OPC_EmitNode1, TARGET_VAL(AArch64::INSvi32lane), 0,
                        MVT::f128, 4/*#Ops*/, 5, 6, 9, 10,  // Results = #11
/* 84936*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84939*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f32, 2/*#Ops*/, 11, 12, 
                    // Src: (vector_insert:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, FPR32:{ *:[f32] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[v2f32] } (INSvi32lane:{ *:[f128] } (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), V64:{ *:[v2f32] }:$Rn, dsub:{ *:[i32] }), (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm, (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), FPR32:{ *:[f32] }:$Rm, ssub:{ *:[i32] }), 0:{ *:[i64] }), dsub:{ *:[i32] })
/* 84947*/        0, // EndSwitchType
/* 84948*/      /*Scope*/ 47, /*->84996*/
/* 84949*/        OPC_CheckChild1Type, MVT::f64,
/* 84951*/        OPC_RecordChild2, // #2 = $imm
/* 84952*/        OPC_MoveChild2,
/* 84953*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84956*/        OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 84958*/        OPC_CheckType, MVT::i64,
/* 84960*/        OPC_MoveParent,
/* 84961*/        OPC_CheckType, MVT::v2f64,
/* 84963*/        OPC_EmitConvertToTarget, 2,
/* 84965*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f64, 0/*#Ops*/,  // Results = #4
/* 84971*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 84974*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/* 84983*/        OPC_EmitInteger, MVT::i64, 0, 
/* 84986*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::INSvi64lane), 0,
                      MVT::v2f64, 4/*#Ops*/, 0, 3, 6, 7, 
                  // Src: (vector_insert:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, FPR64:{ *:[f64] }:$Rm, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$imm) - Complexity = 7
                  // Dst: (INSvi64lane:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$imm, (INSERT_SUBREG:{ *:[v2f64] } (IMPLICIT_DEF:{ *:[v2f64] }), FPR64:{ *:[f64] }:$Rm, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 84996*/      0, /*End of Scope*/
/* 84997*/    0, /*End of Scope*/
/* 84998*/  /*SwitchOpcode*/ 104|128,8/*1128*/, TARGET_VAL(AArch64ISD::DUP),// ->86130
/* 85002*/    OPC_Scope, 3|128,6/*771*/, /*->85776*/ // 4 children in Scope
/* 85005*/      OPC_MoveChild0,
/* 85006*/      OPC_SwitchOpcode /*3 cases */, 48|128,2/*304*/, TARGET_VAL(ISD::TRUNCATE),// ->85315
/* 85011*/        OPC_MoveChild0,
/* 85012*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 85015*/        OPC_RecordChild0, // #0 = $Rn
/* 85016*/        OPC_Scope, 102, /*->85120*/ // 2 children in Scope
/* 85018*/          OPC_CheckChild0Type, MVT::v2i64,
/* 85020*/          OPC_RecordChild1, // #1 = $idx
/* 85021*/          OPC_MoveChild1,
/* 85022*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 85025*/          OPC_MoveParent,
/* 85026*/          OPC_MoveParent,
/* 85027*/          OPC_MoveParent,
/* 85028*/          OPC_SwitchType /*6 cases */, 13, MVT::v8i8,// ->85044
/* 85031*/            OPC_EmitConvertToTarget, 1,
/* 85033*/            OPC_EmitNodeXForm, 19, 2, // VecIndex_x8
/* 85036*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i8lane), 0,
                          MVT::v8i8, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v8i8] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv8i8lane:{ *:[v8i8] } V128:{ *:[v2i64] }:$Rn, (VecIndex_x8:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85044*/          /*SwitchType*/ 13, MVT::v4i16,// ->85059
/* 85046*/            OPC_EmitConvertToTarget, 1,
/* 85048*/            OPC_EmitNodeXForm, 20, 2, // VecIndex_x4
/* 85051*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i16lane), 0,
                          MVT::v4i16, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v4i16] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv4i16lane:{ *:[v4i16] } V128:{ *:[v2i64] }:$Rn, (VecIndex_x4:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85059*/          /*SwitchType*/ 13, MVT::v2i32,// ->85074
/* 85061*/            OPC_EmitConvertToTarget, 1,
/* 85063*/            OPC_EmitNodeXForm, 21, 2, // VecIndex_x2
/* 85066*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i32lane), 0,
                          MVT::v2i32, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v2i32] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv2i32lane:{ *:[v2i32] } V128:{ *:[v2i64] }:$Rn, (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85074*/          /*SwitchType*/ 13, MVT::v16i8,// ->85089
/* 85076*/            OPC_EmitConvertToTarget, 1,
/* 85078*/            OPC_EmitNodeXForm, 19, 2, // VecIndex_x8
/* 85081*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv16i8lane), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v16i8] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv16i8lane:{ *:[v16i8] } V128:{ *:[v2i64] }:$Rn, (VecIndex_x8:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85089*/          /*SwitchType*/ 13, MVT::v8i16,// ->85104
/* 85091*/            OPC_EmitConvertToTarget, 1,
/* 85093*/            OPC_EmitNodeXForm, 20, 2, // VecIndex_x4
/* 85096*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i16lane), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v8i16] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv8i16lane:{ *:[v8i16] } V128:{ *:[v2i64] }:$Rn, (VecIndex_x4:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85104*/          /*SwitchType*/ 13, MVT::v4i32,// ->85119
/* 85106*/            OPC_EmitConvertToTarget, 1,
/* 85108*/            OPC_EmitNodeXForm, 21, 2, // VecIndex_x2
/* 85111*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i32lane), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v4i32] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv4i32lane:{ *:[v4i32] } V128:{ *:[v2i64] }:$Rn, (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85119*/          0, // EndSwitchType
/* 85120*/        /*Scope*/ 64|128,1/*192*/, /*->85314*/
/* 85122*/          OPC_CheckChild0Type, MVT::v1i64,
/* 85124*/          OPC_RecordChild1, // #1 = $idx
/* 85125*/          OPC_MoveChild1,
/* 85126*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 85129*/          OPC_MoveParent,
/* 85130*/          OPC_MoveParent,
/* 85131*/          OPC_MoveParent,
/* 85132*/          OPC_SwitchType /*6 cases */, 28, MVT::v8i8,// ->85163
/* 85135*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85138*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85141*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85150*/            OPC_EmitConvertToTarget, 1,
/* 85152*/            OPC_EmitNodeXForm, 19, 5, // VecIndex_x8
/* 85155*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i8lane), 0,
                          MVT::v8i8, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v8i8] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V64:{ *:[v1i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv8i8lane:{ *:[v8i8] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1i64] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x8:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85163*/          /*SwitchType*/ 28, MVT::v4i16,// ->85193
/* 85165*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85168*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85171*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85180*/            OPC_EmitConvertToTarget, 1,
/* 85182*/            OPC_EmitNodeXForm, 20, 5, // VecIndex_x4
/* 85185*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i16lane), 0,
                          MVT::v4i16, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v4i16] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V64:{ *:[v1i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv4i16lane:{ *:[v4i16] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1i64] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x4:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85193*/          /*SwitchType*/ 28, MVT::v2i32,// ->85223
/* 85195*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85198*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85201*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85210*/            OPC_EmitConvertToTarget, 1,
/* 85212*/            OPC_EmitNodeXForm, 21, 5, // VecIndex_x2
/* 85215*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i32lane), 0,
                          MVT::v2i32, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v2i32] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V64:{ *:[v1i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv2i32lane:{ *:[v2i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1i64] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85223*/          /*SwitchType*/ 28, MVT::v16i8,// ->85253
/* 85225*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85228*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85231*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85240*/            OPC_EmitConvertToTarget, 1,
/* 85242*/            OPC_EmitNodeXForm, 19, 5, // VecIndex_x8
/* 85245*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv16i8lane), 0,
                          MVT::v16i8, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v16i8] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V64:{ *:[v1i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv16i8lane:{ *:[v16i8] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1i64] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x8:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85253*/          /*SwitchType*/ 28, MVT::v8i16,// ->85283
/* 85255*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85258*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85261*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85270*/            OPC_EmitConvertToTarget, 1,
/* 85272*/            OPC_EmitNodeXForm, 20, 5, // VecIndex_x4
/* 85275*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i16lane), 0,
                          MVT::v8i16, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v8i16] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V64:{ *:[v1i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv8i16lane:{ *:[v8i16] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1i64] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x4:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85283*/          /*SwitchType*/ 28, MVT::v4i32,// ->85313
/* 85285*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85288*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85291*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85300*/            OPC_EmitConvertToTarget, 1,
/* 85302*/            OPC_EmitNodeXForm, 21, 5, // VecIndex_x2
/* 85305*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i32lane), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v4i32] } (trunc:{ *:[i32] } (extractelt:{ *:[i64] } V64:{ *:[v1i64] }:$Rn, (imm:{ *:[iPTR] }):$idx))) - Complexity = 12
                      // Dst: (DUPv4i32lane:{ *:[v4i32] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v1i64] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85313*/          0, // EndSwitchType
/* 85314*/        0, /*End of Scope*/
/* 85315*/      /*SwitchOpcode*/ 74|128,2/*330*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->85649
/* 85319*/        OPC_RecordChild0, // #0 = $Rn
/* 85320*/        OPC_Scope, 43, /*->85365*/ // 4 children in Scope
/* 85322*/          OPC_CheckChild0Type, MVT::v8i16,
/* 85324*/          OPC_RecordChild1, // #1 = $idx
/* 85325*/          OPC_MoveChild1,
/* 85326*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 85329*/          OPC_MoveParent,
/* 85330*/          OPC_CheckType, MVT::i32,
/* 85332*/          OPC_MoveParent,
/* 85333*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i8,// ->85349
/* 85336*/            OPC_EmitConvertToTarget, 1,
/* 85338*/            OPC_EmitNodeXForm, 21, 2, // VecIndex_x2
/* 85341*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i8lane), 0,
                          MVT::v8i8, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v8i8] } (vector_extract:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv8i8lane:{ *:[v8i8] } V128:{ *:[v8i16] }:$Rn, (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85349*/          /*SwitchType*/ 13, MVT::v16i8,// ->85364
/* 85351*/            OPC_EmitConvertToTarget, 1,
/* 85353*/            OPC_EmitNodeXForm, 21, 2, // VecIndex_x2
/* 85356*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv16i8lane), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v16i8] } (vector_extract:{ *:[i32] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv16i8lane:{ *:[v16i8] } V128:{ *:[v8i16] }:$Rn, (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85364*/          0, // EndSwitchType
/* 85365*/        /*Scope*/ 73, /*->85439*/
/* 85366*/          OPC_CheckChild0Type, MVT::v4i32,
/* 85368*/          OPC_RecordChild1, // #1 = $idx
/* 85369*/          OPC_MoveChild1,
/* 85370*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 85373*/          OPC_MoveParent,
/* 85374*/          OPC_CheckType, MVT::i32,
/* 85376*/          OPC_MoveParent,
/* 85377*/          OPC_SwitchType /*4 cases */, 13, MVT::v8i8,// ->85393
/* 85380*/            OPC_EmitConvertToTarget, 1,
/* 85382*/            OPC_EmitNodeXForm, 20, 2, // VecIndex_x4
/* 85385*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i8lane), 0,
                          MVT::v8i8, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v8i8] } (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv8i8lane:{ *:[v8i8] } V128:{ *:[v4i32] }:$Rn, (VecIndex_x4:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85393*/          /*SwitchType*/ 13, MVT::v4i16,// ->85408
/* 85395*/            OPC_EmitConvertToTarget, 1,
/* 85397*/            OPC_EmitNodeXForm, 21, 2, // VecIndex_x2
/* 85400*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i16lane), 0,
                          MVT::v4i16, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v4i16] } (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv4i16lane:{ *:[v4i16] } V128:{ *:[v4i32] }:$Rn, (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85408*/          /*SwitchType*/ 13, MVT::v16i8,// ->85423
/* 85410*/            OPC_EmitConvertToTarget, 1,
/* 85412*/            OPC_EmitNodeXForm, 20, 2, // VecIndex_x4
/* 85415*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv16i8lane), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v16i8] } (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv16i8lane:{ *:[v16i8] } V128:{ *:[v4i32] }:$Rn, (VecIndex_x4:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85423*/          /*SwitchType*/ 13, MVT::v8i16,// ->85438
/* 85425*/            OPC_EmitConvertToTarget, 1,
/* 85427*/            OPC_EmitNodeXForm, 21, 2, // VecIndex_x2
/* 85430*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i16lane), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 3, 
                      // Src: (AArch64dup:{ *:[v8i16] } (vector_extract:{ *:[i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv8i16lane:{ *:[v8i16] } V128:{ *:[v4i32] }:$Rn, (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85438*/          0, // EndSwitchType
/* 85439*/        /*Scope*/ 73, /*->85513*/
/* 85440*/          OPC_CheckChild0Type, MVT::v4i16,
/* 85442*/          OPC_RecordChild1, // #1 = $idx
/* 85443*/          OPC_MoveChild1,
/* 85444*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 85447*/          OPC_MoveParent,
/* 85448*/          OPC_CheckType, MVT::i32,
/* 85450*/          OPC_MoveParent,
/* 85451*/          OPC_SwitchType /*2 cases */, 28, MVT::v8i8,// ->85482
/* 85454*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85457*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85460*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85469*/            OPC_EmitConvertToTarget, 1,
/* 85471*/            OPC_EmitNodeXForm, 21, 5, // VecIndex_x2
/* 85474*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i8lane), 0,
                          MVT::v8i8, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v8i8] } (vector_extract:{ *:[i32] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv8i8lane:{ *:[v8i8] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v4i16] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85482*/          /*SwitchType*/ 28, MVT::v16i8,// ->85512
/* 85484*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85487*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85490*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85499*/            OPC_EmitConvertToTarget, 1,
/* 85501*/            OPC_EmitNodeXForm, 21, 5, // VecIndex_x2
/* 85504*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv16i8lane), 0,
                          MVT::v16i8, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v16i8] } (vector_extract:{ *:[i32] } V64:{ *:[v4i16] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv16i8lane:{ *:[v16i8] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v4i16] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85512*/          0, // EndSwitchType
/* 85513*/        /*Scope*/ 5|128,1/*133*/, /*->85648*/
/* 85515*/          OPC_CheckChild0Type, MVT::v2i32,
/* 85517*/          OPC_RecordChild1, // #1 = $idx
/* 85518*/          OPC_MoveChild1,
/* 85519*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 85522*/          OPC_MoveParent,
/* 85523*/          OPC_CheckType, MVT::i32,
/* 85525*/          OPC_MoveParent,
/* 85526*/          OPC_SwitchType /*4 cases */, 28, MVT::v8i8,// ->85557
/* 85529*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85532*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85535*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85544*/            OPC_EmitConvertToTarget, 1,
/* 85546*/            OPC_EmitNodeXForm, 20, 5, // VecIndex_x4
/* 85549*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i8lane), 0,
                          MVT::v8i8, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v8i8] } (vector_extract:{ *:[i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv8i8lane:{ *:[v8i8] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v2i32] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x4:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85557*/          /*SwitchType*/ 28, MVT::v4i16,// ->85587
/* 85559*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85562*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85565*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85574*/            OPC_EmitConvertToTarget, 1,
/* 85576*/            OPC_EmitNodeXForm, 21, 5, // VecIndex_x2
/* 85579*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i16lane), 0,
                          MVT::v4i16, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v4i16] } (vector_extract:{ *:[i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv4i16lane:{ *:[v4i16] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v2i32] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85587*/          /*SwitchType*/ 28, MVT::v16i8,// ->85617
/* 85589*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85592*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85595*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85604*/            OPC_EmitConvertToTarget, 1,
/* 85606*/            OPC_EmitNodeXForm, 20, 5, // VecIndex_x4
/* 85609*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv16i8lane), 0,
                          MVT::v16i8, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v16i8] } (vector_extract:{ *:[i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv16i8lane:{ *:[v16i8] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v2i32] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x4:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85617*/          /*SwitchType*/ 28, MVT::v8i16,// ->85647
/* 85619*/            OPC_EmitInteger, MVT::i64, 0, 
/* 85622*/            OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 85625*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 85634*/            OPC_EmitConvertToTarget, 1,
/* 85636*/            OPC_EmitNodeXForm, 21, 5, // VecIndex_x2
/* 85639*/            OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i16lane), 0,
                          MVT::v8i16, 2/*#Ops*/, 4, 6, 
                      // Src: (AArch64dup:{ *:[v8i16] } (vector_extract:{ *:[i32] } V64:{ *:[v2i32] }:$Rn, (imm:{ *:[iPTR] }):$idx)) - Complexity = 9
                      // Dst: (DUPv8i16lane:{ *:[v8i16] } (SUBREG_TO_REG:{ *:[f128] } 0:{ *:[i64] }, V64:{ *:[v2i32] }:$Rn, dsub:{ *:[i32] }), (VecIndex_x2:{ *:[i64] } (imm:{ *:[iPTR] }):$idx))
/* 85647*/          0, // EndSwitchType
/* 85648*/        0, /*End of Scope*/
/* 85649*/      /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->85775
/* 85652*/        OPC_RecordMemRef,
/* 85653*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 85654*/        OPC_RecordChild1, // #1 = $Rn
/* 85655*/        OPC_CheckChild1Type, MVT::i64,
/* 85657*/        OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 85659*/        OPC_Scope, 58, /*->85719*/ // 2 children in Scope
/* 85661*/          OPC_CheckPredicate, 33, // Predicate_extload
/* 85663*/          OPC_CheckType, MVT::i32,
/* 85665*/          OPC_Scope, 25, /*->85692*/ // 2 children in Scope
/* 85667*/            OPC_CheckPredicate, 28, // Predicate_extloadi8
/* 85669*/            OPC_MoveParent,
/* 85670*/            OPC_SwitchType /*2 cases */, 8, MVT::v8i8,// ->85681
/* 85673*/              OPC_EmitMergeInputChains1_0,
/* 85674*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv8b), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i8, 1/*#Ops*/, 1, 
                        // Src: (AArch64dup:{ *:[v8i8] } (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 7
                        // Dst: (LD1Rv8b:{ *:[v8i8] } GPR64sp:{ *:[i64] }:$Rn)
/* 85681*/            /*SwitchType*/ 8, MVT::v16i8,// ->85691
/* 85683*/              OPC_EmitMergeInputChains1_0,
/* 85684*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv16b), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 1/*#Ops*/, 1, 
                        // Src: (AArch64dup:{ *:[v16i8] } (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 7
                        // Dst: (LD1Rv16b:{ *:[v16i8] } GPR64sp:{ *:[i64] }:$Rn)
/* 85691*/            0, // EndSwitchType
/* 85692*/          /*Scope*/ 25, /*->85718*/
/* 85693*/            OPC_CheckPredicate, 29, // Predicate_extloadi16
/* 85695*/            OPC_MoveParent,
/* 85696*/            OPC_SwitchType /*2 cases */, 8, MVT::v4i16,// ->85707
/* 85699*/              OPC_EmitMergeInputChains1_0,
/* 85700*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv4h), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i16, 1/*#Ops*/, 1, 
                        // Src: (AArch64dup:{ *:[v4i16] } (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 7
                        // Dst: (LD1Rv4h:{ *:[v4i16] } GPR64sp:{ *:[i64] }:$Rn)
/* 85707*/            /*SwitchType*/ 8, MVT::v8i16,// ->85717
/* 85709*/              OPC_EmitMergeInputChains1_0,
/* 85710*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv8h), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 1/*#Ops*/, 1, 
                        // Src: (AArch64dup:{ *:[v8i16] } (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 7
                        // Dst: (LD1Rv8h:{ *:[v8i16] } GPR64sp:{ *:[i64] }:$Rn)
/* 85717*/            0, // EndSwitchType
/* 85718*/          0, /*End of Scope*/
/* 85719*/        /*Scope*/ 54, /*->85774*/
/* 85720*/          OPC_CheckPredicate, 30, // Predicate_load
/* 85722*/          OPC_SwitchType /*2 cases */, 23, MVT::i32,// ->85748
/* 85725*/            OPC_MoveParent,
/* 85726*/            OPC_SwitchType /*2 cases */, 8, MVT::v2i32,// ->85737
/* 85729*/              OPC_EmitMergeInputChains1_0,
/* 85730*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv2s), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i32, 1/*#Ops*/, 1, 
                        // Src: (AArch64dup:{ *:[v2i32] } (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                        // Dst: (LD1Rv2s:{ *:[v2i32] } GPR64sp:{ *:[i64] }:$Rn)
/* 85737*/            /*SwitchType*/ 8, MVT::v4i32,// ->85747
/* 85739*/              OPC_EmitMergeInputChains1_0,
/* 85740*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv4s), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 1/*#Ops*/, 1, 
                        // Src: (AArch64dup:{ *:[v4i32] } (ld:{ *:[i32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                        // Dst: (LD1Rv4s:{ *:[v4i32] } GPR64sp:{ *:[i64] }:$Rn)
/* 85747*/            0, // EndSwitchType
/* 85748*/          /*SwitchType*/ 23, MVT::i64,// ->85773
/* 85750*/            OPC_MoveParent,
/* 85751*/            OPC_SwitchType /*2 cases */, 8, MVT::v2i64,// ->85762
/* 85754*/              OPC_EmitMergeInputChains1_0,
/* 85755*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv2d), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 1/*#Ops*/, 1, 
                        // Src: (AArch64dup:{ *:[v2i64] } (ld:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                        // Dst: (LD1Rv2d:{ *:[v2i64] } GPR64sp:{ *:[i64] }:$Rn)
/* 85762*/            /*SwitchType*/ 8, MVT::v1i64,// ->85772
/* 85764*/              OPC_EmitMergeInputChains1_0,
/* 85765*/              OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv1d), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v1i64, 1/*#Ops*/, 1, 
                        // Src: (AArch64dup:{ *:[v1i64] } (ld:{ *:[i64] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                        // Dst: (LD1Rv1d:{ *:[v1i64] } GPR64sp:{ *:[i64] }:$Rn)
/* 85772*/            0, // EndSwitchType
/* 85773*/          0, // EndSwitchType
/* 85774*/        0, /*End of Scope*/
/* 85775*/      0, // EndSwitchOpcode
/* 85776*/    /*Scope*/ 88, /*->85865*/
/* 85777*/      OPC_RecordChild0, // #0 = $Rn
/* 85778*/      OPC_Scope, 70, /*->85850*/ // 2 children in Scope
/* 85780*/        OPC_CheckChild0Type, MVT::i32,
/* 85782*/        OPC_SwitchType /*6 cases */, 9, MVT::v8i8,// ->85794
/* 85785*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 85787*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i8gpr), 0,
                        MVT::v8i8, 1/*#Ops*/, 0, 
                    // Src: (AArch64dup:{ *:[v8i8] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (DUPv8i8gpr:{ *:[v8i8] } GPR32:{ *:[i32] }:$Rn)
/* 85794*/        /*SwitchType*/ 9, MVT::v16i8,// ->85805
/* 85796*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 85798*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv16i8gpr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (AArch64dup:{ *:[v16i8] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (DUPv16i8gpr:{ *:[v16i8] } GPR32:{ *:[i32] }:$Rn)
/* 85805*/        /*SwitchType*/ 9, MVT::v4i16,// ->85816
/* 85807*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 85809*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i16gpr), 0,
                        MVT::v4i16, 1/*#Ops*/, 0, 
                    // Src: (AArch64dup:{ *:[v4i16] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (DUPv4i16gpr:{ *:[v4i16] } GPR32:{ *:[i32] }:$Rn)
/* 85816*/        /*SwitchType*/ 9, MVT::v8i16,// ->85827
/* 85818*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 85820*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i16gpr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (AArch64dup:{ *:[v8i16] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (DUPv8i16gpr:{ *:[v8i16] } GPR32:{ *:[i32] }:$Rn)
/* 85827*/        /*SwitchType*/ 9, MVT::v2i32,// ->85838
/* 85829*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 85831*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i32gpr), 0,
                        MVT::v2i32, 1/*#Ops*/, 0, 
                    // Src: (AArch64dup:{ *:[v2i32] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (DUPv2i32gpr:{ *:[v2i32] } GPR32:{ *:[i32] }:$Rn)
/* 85838*/        /*SwitchType*/ 9, MVT::v4i32,// ->85849
/* 85840*/          OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 85842*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i32gpr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (AArch64dup:{ *:[v4i32] } GPR32:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (DUPv4i32gpr:{ *:[v4i32] } GPR32:{ *:[i32] }:$Rn)
/* 85849*/        0, // EndSwitchType
/* 85850*/      /*Scope*/ 13, /*->85864*/
/* 85851*/        OPC_CheckChild0Type, MVT::i64,
/* 85853*/        OPC_CheckType, MVT::v2i64,
/* 85855*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 85857*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i64gpr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (AArch64dup:{ *:[v2i64] } GPR64:{ *:[i64] }:$Rn) - Complexity = 3
                  // Dst: (DUPv2i64gpr:{ *:[v2i64] } GPR64:{ *:[i64] }:$Rn)
/* 85864*/      0, /*End of Scope*/
/* 85865*/    /*Scope*/ 90, /*->85956*/
/* 85866*/      OPC_MoveChild0,
/* 85867*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85870*/      OPC_RecordMemRef,
/* 85871*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 85872*/      OPC_RecordChild1, // #1 = $Rn
/* 85873*/      OPC_CheckChild1Type, MVT::i64,
/* 85875*/      OPC_CheckPredicate, 26, // Predicate_unindexedload
/* 85877*/      OPC_CheckPredicate, 30, // Predicate_load
/* 85879*/      OPC_SwitchType /*3 cases */, 23, MVT::f32,// ->85905
/* 85882*/        OPC_MoveParent,
/* 85883*/        OPC_SwitchType /*2 cases */, 8, MVT::v2f32,// ->85894
/* 85886*/          OPC_EmitMergeInputChains1_0,
/* 85887*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv2s), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f32, 1/*#Ops*/, 1, 
                    // Src: (AArch64dup:{ *:[v2f32] } (ld:{ *:[f32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                    // Dst: (LD1Rv2s:{ *:[v2f32] } GPR64sp:{ *:[i64] }:$Rn)
/* 85894*/        /*SwitchType*/ 8, MVT::v4f32,// ->85904
/* 85896*/          OPC_EmitMergeInputChains1_0,
/* 85897*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv4s), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 1/*#Ops*/, 1, 
                    // Src: (AArch64dup:{ *:[v4f32] } (ld:{ *:[f32] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                    // Dst: (LD1Rv4s:{ *:[v4f32] } GPR64sp:{ *:[i64] }:$Rn)
/* 85904*/        0, // EndSwitchType
/* 85905*/      /*SwitchType*/ 23, MVT::f64,// ->85930
/* 85907*/        OPC_MoveParent,
/* 85908*/        OPC_SwitchType /*2 cases */, 8, MVT::v2f64,// ->85919
/* 85911*/          OPC_EmitMergeInputChains1_0,
/* 85912*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv2d), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 1/*#Ops*/, 1, 
                    // Src: (AArch64dup:{ *:[v2f64] } (ld:{ *:[f64] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                    // Dst: (LD1Rv2d:{ *:[v2f64] } GPR64sp:{ *:[i64] }:$Rn)
/* 85919*/        /*SwitchType*/ 8, MVT::v1f64,// ->85929
/* 85921*/          OPC_EmitMergeInputChains1_0,
/* 85922*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv1d), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1f64, 1/*#Ops*/, 1, 
                    // Src: (AArch64dup:{ *:[v1f64] } (ld:{ *:[f64] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                    // Dst: (LD1Rv1d:{ *:[v1f64] } GPR64sp:{ *:[i64] }:$Rn)
/* 85929*/        0, // EndSwitchType
/* 85930*/      /*SwitchType*/ 23, MVT::f16,// ->85955
/* 85932*/        OPC_MoveParent,
/* 85933*/        OPC_SwitchType /*2 cases */, 8, MVT::v4f16,// ->85944
/* 85936*/          OPC_EmitMergeInputChains1_0,
/* 85937*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv4h), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f16, 1/*#Ops*/, 1, 
                    // Src: (AArch64dup:{ *:[v4f16] } (ld:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                    // Dst: (LD1Rv4h:{ *:[v4f16] } GPR64sp:{ *:[i64] }:$Rn)
/* 85944*/        /*SwitchType*/ 8, MVT::v8f16,// ->85954
/* 85946*/          OPC_EmitMergeInputChains1_0,
/* 85947*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::LD1Rv8h), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f16, 1/*#Ops*/, 1, 
                    // Src: (AArch64dup:{ *:[v8f16] } (ld:{ *:[f16] } GPR64sp:{ *:[i64] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 7
                    // Dst: (LD1Rv8h:{ *:[v8f16] } GPR64sp:{ *:[i64] }:$Rn)
/* 85954*/        0, // EndSwitchType
/* 85955*/      0, // EndSwitchType
/* 85956*/    /*Scope*/ 43|128,1/*171*/, /*->86129*/
/* 85958*/      OPC_RecordChild0, // #0 = $Rn
/* 85959*/      OPC_Scope, 66, /*->86027*/ // 3 children in Scope
/* 85961*/        OPC_CheckChild0Type, MVT::f32,
/* 85963*/        OPC_SwitchType /*2 cases */, 29, MVT::v2f32,// ->85995
/* 85966*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 85972*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 85975*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 85984*/          OPC_EmitInteger, MVT::i64, 0, 
/* 85987*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i32lane), 0,
                        MVT::v2f32, 2/*#Ops*/, 3, 4, 
                    // Src: (AArch64dup:{ *:[v2f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (DUPv2i32lane:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32:{ *:[f32] }:$Rn, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 85995*/        /*SwitchType*/ 29, MVT::v4f32,// ->86026
/* 85997*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 86003*/          OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 86006*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 86015*/          OPC_EmitInteger, MVT::i64, 0, 
/* 86018*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i32lane), 0,
                        MVT::v4f32, 2/*#Ops*/, 3, 4, 
                    // Src: (AArch64dup:{ *:[v4f32] } FPR32:{ *:[f32] }:$Rn) - Complexity = 3
                    // Dst: (DUPv4i32lane:{ *:[v4f32] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR32:{ *:[f32] }:$Rn, ssub:{ *:[i32] }), 0:{ *:[i64] })
/* 86026*/        0, // EndSwitchType
/* 86027*/      /*Scope*/ 33, /*->86061*/
/* 86028*/        OPC_CheckChild0Type, MVT::f64,
/* 86030*/        OPC_CheckType, MVT::v2f64,
/* 86032*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 86038*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86041*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 86050*/        OPC_EmitInteger, MVT::i64, 0, 
/* 86053*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i64lane), 0,
                      MVT::v2f64, 2/*#Ops*/, 3, 4, 
                  // Src: (AArch64dup:{ *:[v2f64] } FPR64:{ *:[f64] }:$Rn) - Complexity = 3
                  // Dst: (DUPv2i64lane:{ *:[v2f64] } (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR64:{ *:[f64] }:$Rn, dsub:{ *:[i32] }), 0:{ *:[i64] })
/* 86061*/      /*Scope*/ 66, /*->86128*/
/* 86062*/        OPC_CheckChild0Type, MVT::f16,
/* 86064*/        OPC_SwitchType /*2 cases */, 29, MVT::v4f16,// ->86096
/* 86067*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 86073*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 86076*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 86085*/          OPC_EmitInteger, MVT::i64, 0, 
/* 86088*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i16lane), 0,
                        MVT::v4f16, 2/*#Ops*/, 3, 4, 
                    // Src: (AArch64dup:{ *:[v4f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (DUPv4i16lane:{ *:[v4f16] } (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), FPR16:{ *:[f16] }:$Rn, hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 86096*/        /*SwitchType*/ 29, MVT::v8f16,// ->86127
/* 86098*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 86104*/          OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 86107*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 86116*/          OPC_EmitInteger, MVT::i64, 0, 
/* 86119*/          OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i16lane), 0,
                        MVT::v8f16, 2/*#Ops*/, 3, 4, 
                    // Src: (AArch64dup:{ *:[v8f16] } FPR16:{ *:[f16] }:$Rn) - Complexity = 3
                    // Dst: (DUPv8i16lane:{ *:[v8f16] } (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), FPR16:{ *:[f16] }:$Rn, hsub:{ *:[i32] }), 0:{ *:[i64] })
/* 86127*/        0, // EndSwitchType
/* 86128*/      0, /*End of Scope*/
/* 86129*/    0, /*End of Scope*/
/* 86130*/  /*SwitchOpcode*/ 46|128,2/*302*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->86436
/* 86134*/    OPC_MoveChild0,
/* 86135*/    OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 86138*/    OPC_MoveParent,
/* 86139*/    OPC_RecordChild1, // #0 = $src
/* 86140*/    OPC_CheckChild2Integer, 0, 
/* 86142*/    OPC_Scope, 16|128,1/*144*/, /*->86289*/ // 2 children in Scope
/* 86145*/      OPC_CheckChild2Type, MVT::i32,
/* 86147*/      OPC_SwitchType /*7 cases */, 18, MVT::v2i64,// ->86168
/* 86150*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 86156*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86159*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v2i64] } (undef:{ *:[v2i64] }), FPR64:{ *:[v1i64] }:$src, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), FPR64:{ *:[v1i64] }:$src, dsub:{ *:[i32] })
/* 86168*/      /*SwitchType*/ 18, MVT::v4i32,// ->86188
/* 86170*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 86176*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86179*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v4i32] } (undef:{ *:[v4i32] }), FPR64:{ *:[v2i32] }:$src, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR64:{ *:[v2i32] }:$src, dsub:{ *:[i32] })
/* 86188*/      /*SwitchType*/ 18, MVT::v8i16,// ->86208
/* 86190*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 86196*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86199*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i16, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), FPR64:{ *:[v4i16] }:$src, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), FPR64:{ *:[v4i16] }:$src, dsub:{ *:[i32] })
/* 86208*/      /*SwitchType*/ 18, MVT::v16i8,// ->86228
/* 86210*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 86216*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86219*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), FPR64:{ *:[v8i8] }:$src, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), FPR64:{ *:[v8i8] }:$src, dsub:{ *:[i32] })
/* 86228*/      /*SwitchType*/ 18, MVT::v2f64,// ->86248
/* 86230*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f64, 0/*#Ops*/,  // Results = #1
/* 86236*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86239*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v2f64] } (undef:{ *:[v2f64] }), FPR64:{ *:[v1f64] }:$src, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v2f64] } (IMPLICIT_DEF:{ *:[v2f64] }), FPR64:{ *:[v1f64] }:$src, dsub:{ *:[i32] })
/* 86248*/      /*SwitchType*/ 18, MVT::v4f32,// ->86268
/* 86250*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 86256*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86259*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), FPR64:{ *:[v2f32] }:$src, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), FPR64:{ *:[v2f32] }:$src, dsub:{ *:[i32] })
/* 86268*/      /*SwitchType*/ 18, MVT::v8f16,// ->86288
/* 86270*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f16, 0/*#Ops*/,  // Results = #1
/* 86276*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86279*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f16, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v8f16] } (undef:{ *:[v8f16] }), FPR64:{ *:[v4f16] }:$src, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), FPR64:{ *:[v4f16] }:$src, dsub:{ *:[i32] })
/* 86288*/      0, // EndSwitchType
/* 86289*/    /*Scope*/ 16|128,1/*144*/, /*->86435*/
/* 86291*/      OPC_CheckChild2Type, MVT::i64,
/* 86293*/      OPC_SwitchType /*7 cases */, 18, MVT::v2i64,// ->86314
/* 86296*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 86302*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86305*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2i64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v2i64] } (undef:{ *:[v2i64] }), FPR64:{ *:[v1i64] }:$src, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), FPR64:{ *:[v1i64] }:$src, dsub:{ *:[i32] })
/* 86314*/      /*SwitchType*/ 18, MVT::v4i32,// ->86334
/* 86316*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 86322*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86325*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v4i32] } (undef:{ *:[v4i32] }), FPR64:{ *:[v2i32] }:$src, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), FPR64:{ *:[v2i32] }:$src, dsub:{ *:[i32] })
/* 86334*/      /*SwitchType*/ 18, MVT::v8i16,// ->86354
/* 86336*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 86342*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86345*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i16, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v8i16] } (undef:{ *:[v8i16] }), FPR64:{ *:[v4i16] }:$src, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), FPR64:{ *:[v4i16] }:$src, dsub:{ *:[i32] })
/* 86354*/      /*SwitchType*/ 18, MVT::v16i8,// ->86374
/* 86356*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 86362*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86365*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v16i8] } (undef:{ *:[v16i8] }), FPR64:{ *:[v8i8] }:$src, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), FPR64:{ *:[v8i8] }:$src, dsub:{ *:[i32] })
/* 86374*/      /*SwitchType*/ 18, MVT::v2f64,// ->86394
/* 86376*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f64, 0/*#Ops*/,  // Results = #1
/* 86382*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86385*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v2f64] } (undef:{ *:[v2f64] }), FPR64:{ *:[v1f64] }:$src, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v2f64] } (IMPLICIT_DEF:{ *:[v2f64] }), FPR64:{ *:[v1f64] }:$src, dsub:{ *:[i32] })
/* 86394*/      /*SwitchType*/ 18, MVT::v4f32,// ->86414
/* 86396*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 86402*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86405*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v4f32] } (undef:{ *:[v4f32] }), FPR64:{ *:[v2f32] }:$src, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), FPR64:{ *:[v2f32] }:$src, dsub:{ *:[i32] })
/* 86414*/      /*SwitchType*/ 18, MVT::v8f16,// ->86434
/* 86416*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f16, 0/*#Ops*/,  // Results = #1
/* 86422*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 86425*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f16, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (insert_subvector:{ *:[v8f16] } (undef:{ *:[v8f16] }), FPR64:{ *:[v4f16] }:$src, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), FPR64:{ *:[v4f16] }:$src, dsub:{ *:[i32] })
/* 86434*/      0, // EndSwitchType
/* 86435*/    0, /*End of Scope*/
/* 86436*/  /*SwitchOpcode*/ 89, TARGET_VAL(AArch64ISD::BICi),// ->86528
/* 86439*/    OPC_RecordChild0, // #0 = $Rd
/* 86440*/    OPC_RecordChild1, // #1 = $imm8
/* 86441*/    OPC_MoveChild1,
/* 86442*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86445*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 86447*/    OPC_CheckType, MVT::i32,
/* 86449*/    OPC_MoveParent,
/* 86450*/    OPC_RecordChild2, // #2 = $shift
/* 86451*/    OPC_MoveChild2,
/* 86452*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86455*/    OPC_CheckType, MVT::i32,
/* 86457*/    OPC_MoveParent,
/* 86458*/    OPC_SwitchType /*4 cases */, 15, MVT::v4i16,// ->86476
/* 86461*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86463*/      OPC_EmitConvertToTarget, 1,
/* 86465*/      OPC_EmitConvertToTarget, 2,
/* 86467*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv4i16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 3, 4, 
                // Src: (AArch64bici:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (BICv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86476*/    /*SwitchType*/ 15, MVT::v8i16,// ->86493
/* 86478*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86480*/      OPC_EmitConvertToTarget, 1,
/* 86482*/      OPC_EmitConvertToTarget, 2,
/* 86484*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv8i16), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 3, 4, 
                // Src: (AArch64bici:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (BICv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86493*/    /*SwitchType*/ 15, MVT::v2i32,// ->86510
/* 86495*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86497*/      OPC_EmitConvertToTarget, 1,
/* 86499*/      OPC_EmitConvertToTarget, 2,
/* 86501*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv2i32), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 3, 4, 
                // Src: (AArch64bici:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (BICv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86510*/    /*SwitchType*/ 15, MVT::v4i32,// ->86527
/* 86512*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86514*/      OPC_EmitConvertToTarget, 1,
/* 86516*/      OPC_EmitConvertToTarget, 2,
/* 86518*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BICv4i32), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 3, 4, 
                // Src: (AArch64bici:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (BICv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86527*/    0, // EndSwitchType
/* 86528*/  /*SwitchOpcode*/ 89, TARGET_VAL(AArch64ISD::ORRi),// ->86620
/* 86531*/    OPC_RecordChild0, // #0 = $Rd
/* 86532*/    OPC_RecordChild1, // #1 = $imm8
/* 86533*/    OPC_MoveChild1,
/* 86534*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86537*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 86539*/    OPC_CheckType, MVT::i32,
/* 86541*/    OPC_MoveParent,
/* 86542*/    OPC_RecordChild2, // #2 = $shift
/* 86543*/    OPC_MoveChild2,
/* 86544*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86547*/    OPC_CheckType, MVT::i32,
/* 86549*/    OPC_MoveParent,
/* 86550*/    OPC_SwitchType /*4 cases */, 15, MVT::v4i16,// ->86568
/* 86553*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86555*/      OPC_EmitConvertToTarget, 1,
/* 86557*/      OPC_EmitConvertToTarget, 2,
/* 86559*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv4i16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 3, 4, 
                // Src: (AArch64orri:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (ORRv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86568*/    /*SwitchType*/ 15, MVT::v8i16,// ->86585
/* 86570*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86572*/      OPC_EmitConvertToTarget, 1,
/* 86574*/      OPC_EmitConvertToTarget, 2,
/* 86576*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv8i16), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 3, 4, 
                // Src: (AArch64orri:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (ORRv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86585*/    /*SwitchType*/ 15, MVT::v2i32,// ->86602
/* 86587*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86589*/      OPC_EmitConvertToTarget, 1,
/* 86591*/      OPC_EmitConvertToTarget, 2,
/* 86593*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv2i32), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 3, 4, 
                // Src: (AArch64orri:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (ORRv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86602*/    /*SwitchType*/ 15, MVT::v4i32,// ->86619
/* 86604*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86606*/      OPC_EmitConvertToTarget, 1,
/* 86608*/      OPC_EmitConvertToTarget, 2,
/* 86610*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ORRv4i32), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 3, 4, 
                // Src: (AArch64orri:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (ORRv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86619*/    0, // EndSwitchType
/* 86620*/  /*SwitchOpcode*/ 76, TARGET_VAL(AArch64ISD::MOVIshift),// ->86699
/* 86623*/    OPC_RecordChild0, // #0 = $imm8
/* 86624*/    OPC_MoveChild0,
/* 86625*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86628*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 86630*/    OPC_CheckType, MVT::i32,
/* 86632*/    OPC_MoveParent,
/* 86633*/    OPC_RecordChild1, // #1 = $shift
/* 86634*/    OPC_MoveChild1,
/* 86635*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86638*/    OPC_CheckType, MVT::i32,
/* 86640*/    OPC_MoveParent,
/* 86641*/    OPC_SwitchType /*4 cases */, 12, MVT::v2i32,// ->86656
/* 86644*/      OPC_EmitConvertToTarget, 0,
/* 86646*/      OPC_EmitConvertToTarget, 1,
/* 86648*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64movi_shift:{ *:[v2i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MOVIv2i32:{ *:[v2i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift)
/* 86656*/    /*SwitchType*/ 12, MVT::v4i32,// ->86670
/* 86658*/      OPC_EmitConvertToTarget, 0,
/* 86660*/      OPC_EmitConvertToTarget, 1,
/* 86662*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64movi_shift:{ *:[v4i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MOVIv4i32:{ *:[v4i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift)
/* 86670*/    /*SwitchType*/ 12, MVT::v4i16,// ->86684
/* 86672*/      OPC_EmitConvertToTarget, 0,
/* 86674*/      OPC_EmitConvertToTarget, 1,
/* 86676*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64movi_shift:{ *:[v4i16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MOVIv4i16:{ *:[v4i16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift)
/* 86684*/    /*SwitchType*/ 12, MVT::v8i16,// ->86698
/* 86686*/      OPC_EmitConvertToTarget, 0,
/* 86688*/      OPC_EmitConvertToTarget, 1,
/* 86690*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64movi_shift:{ *:[v8i16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MOVIv8i16:{ *:[v8i16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift)
/* 86698*/    0, // EndSwitchType
/* 86699*/  /*SwitchOpcode*/ 52, TARGET_VAL(AArch64ISD::MOVImsl),// ->86754
/* 86702*/    OPC_RecordChild0, // #0 = $imm8
/* 86703*/    OPC_MoveChild0,
/* 86704*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86707*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 86709*/    OPC_CheckType, MVT::i32,
/* 86711*/    OPC_MoveParent,
/* 86712*/    OPC_RecordChild1, // #1 = $shift
/* 86713*/    OPC_MoveChild1,
/* 86714*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86717*/    OPC_CheckType, MVT::i32,
/* 86719*/    OPC_MoveParent,
/* 86720*/    OPC_SwitchType /*2 cases */, 14, MVT::v2i32,// ->86737
/* 86723*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86725*/      OPC_EmitConvertToTarget, 0,
/* 86727*/      OPC_EmitConvertToTarget, 1,
/* 86729*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2s_msl), 0,
                    MVT::v2i32, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64movi_msl:{ *:[v2i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MOVIv2s_msl:{ *:[v2i32] } (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86737*/    /*SwitchType*/ 14, MVT::v4i32,// ->86753
/* 86739*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86741*/      OPC_EmitConvertToTarget, 0,
/* 86743*/      OPC_EmitConvertToTarget, 1,
/* 86745*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv4s_msl), 0,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64movi_msl:{ *:[v4i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MOVIv4s_msl:{ *:[v4i32] } (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86753*/    0, // EndSwitchType
/* 86754*/  /*SwitchOpcode*/ 76, TARGET_VAL(AArch64ISD::MVNIshift),// ->86833
/* 86757*/    OPC_RecordChild0, // #0 = $imm8
/* 86758*/    OPC_MoveChild0,
/* 86759*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86762*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 86764*/    OPC_CheckType, MVT::i32,
/* 86766*/    OPC_MoveParent,
/* 86767*/    OPC_RecordChild1, // #1 = $shift
/* 86768*/    OPC_MoveChild1,
/* 86769*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86772*/    OPC_CheckType, MVT::i32,
/* 86774*/    OPC_MoveParent,
/* 86775*/    OPC_SwitchType /*4 cases */, 12, MVT::v2i32,// ->86790
/* 86778*/      OPC_EmitConvertToTarget, 0,
/* 86780*/      OPC_EmitConvertToTarget, 1,
/* 86782*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MVNIv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64mvni_shift:{ *:[v2i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MVNIv2i32:{ *:[v2i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift)
/* 86790*/    /*SwitchType*/ 12, MVT::v4i32,// ->86804
/* 86792*/      OPC_EmitConvertToTarget, 0,
/* 86794*/      OPC_EmitConvertToTarget, 1,
/* 86796*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MVNIv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64mvni_shift:{ *:[v4i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MVNIv4i32:{ *:[v4i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift)
/* 86804*/    /*SwitchType*/ 12, MVT::v4i16,// ->86818
/* 86806*/      OPC_EmitConvertToTarget, 0,
/* 86808*/      OPC_EmitConvertToTarget, 1,
/* 86810*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MVNIv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64mvni_shift:{ *:[v4i16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MVNIv4i16:{ *:[v4i16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift)
/* 86818*/    /*SwitchType*/ 12, MVT::v8i16,// ->86832
/* 86820*/      OPC_EmitConvertToTarget, 0,
/* 86822*/      OPC_EmitConvertToTarget, 1,
/* 86824*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MVNIv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64mvni_shift:{ *:[v8i16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MVNIv8i16:{ *:[v8i16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift)
/* 86832*/    0, // EndSwitchType
/* 86833*/  /*SwitchOpcode*/ 52, TARGET_VAL(AArch64ISD::MVNImsl),// ->86888
/* 86836*/    OPC_RecordChild0, // #0 = $imm8
/* 86837*/    OPC_MoveChild0,
/* 86838*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86841*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 86843*/    OPC_CheckType, MVT::i32,
/* 86845*/    OPC_MoveParent,
/* 86846*/    OPC_RecordChild1, // #1 = $shift
/* 86847*/    OPC_MoveChild1,
/* 86848*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 86851*/    OPC_CheckType, MVT::i32,
/* 86853*/    OPC_MoveParent,
/* 86854*/    OPC_SwitchType /*2 cases */, 14, MVT::v2i32,// ->86871
/* 86857*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86859*/      OPC_EmitConvertToTarget, 0,
/* 86861*/      OPC_EmitConvertToTarget, 1,
/* 86863*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MVNIv2s_msl), 0,
                    MVT::v2i32, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64mvni_msl:{ *:[v2i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MVNIv2s_msl:{ *:[v2i32] } (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86871*/    /*SwitchType*/ 14, MVT::v4i32,// ->86887
/* 86873*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86875*/      OPC_EmitConvertToTarget, 0,
/* 86877*/      OPC_EmitConvertToTarget, 1,
/* 86879*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MVNIv4s_msl), 0,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (AArch64mvni_msl:{ *:[v4i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8, (imm:{ *:[i32] }):$shift) - Complexity = 10
                // Dst: (MVNIv4s_msl:{ *:[v4i32] } (imm:{ *:[i32] }):$imm8, (imm:{ *:[i32] }):$shift)
/* 86887*/    0, // EndSwitchType
/* 86888*/  /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(AArch64ISD::NOT),// ->87081
/* 86892*/    OPC_Scope, 110, /*->87004*/ // 2 children in Scope
/* 86894*/      OPC_MoveChild0,
/* 86895*/      OPC_CheckOpcode, TARGET_VAL(AArch64ISD::CMEQz),
/* 86898*/      OPC_MoveChild0,
/* 86899*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 86902*/      OPC_RecordChild0, // #0 = $Rn
/* 86903*/      OPC_RecordChild1, // #1 = $Rm
/* 86904*/      OPC_MoveParent,
/* 86905*/      OPC_MoveParent,
/* 86906*/      OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->86919
/* 86909*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86911*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMTSTv8i8), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64not:{ *:[v8i8] } (AArch64cmeqz:{ *:[v8i8] } (and:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm))) - Complexity = 9
                  // Dst: (CMTSTv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 86919*/      /*SwitchType*/ 10, MVT::v16i8,// ->86931
/* 86921*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86923*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMTSTv16i8), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64not:{ *:[v16i8] } (AArch64cmeqz:{ *:[v16i8] } (and:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm))) - Complexity = 9
                  // Dst: (CMTSTv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 86931*/      /*SwitchType*/ 10, MVT::v4i16,// ->86943
/* 86933*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86935*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMTSTv4i16), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64not:{ *:[v4i16] } (AArch64cmeqz:{ *:[v4i16] } (and:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm))) - Complexity = 9
                  // Dst: (CMTSTv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 86943*/      /*SwitchType*/ 10, MVT::v8i16,// ->86955
/* 86945*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86947*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMTSTv8i16), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64not:{ *:[v8i16] } (AArch64cmeqz:{ *:[v8i16] } (and:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm))) - Complexity = 9
                  // Dst: (CMTSTv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 86955*/      /*SwitchType*/ 10, MVT::v2i32,// ->86967
/* 86957*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86959*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMTSTv2i32), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64not:{ *:[v2i32] } (AArch64cmeqz:{ *:[v2i32] } (and:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm))) - Complexity = 9
                  // Dst: (CMTSTv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 86967*/      /*SwitchType*/ 10, MVT::v4i32,// ->86979
/* 86969*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86971*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMTSTv4i32), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64not:{ *:[v4i32] } (AArch64cmeqz:{ *:[v4i32] } (and:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm))) - Complexity = 9
                  // Dst: (CMTSTv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 86979*/      /*SwitchType*/ 10, MVT::v2i64,// ->86991
/* 86981*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86983*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMTSTv2i64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64not:{ *:[v2i64] } (AArch64cmeqz:{ *:[v2i64] } (and:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm))) - Complexity = 9
                  // Dst: (CMTSTv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 86991*/      /*SwitchType*/ 10, MVT::v1i64,// ->87003
/* 86993*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 86995*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMTSTv1i64), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (AArch64not:{ *:[v1i64] } (AArch64cmeqz:{ *:[v1i64] } (and:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm))) - Complexity = 9
                  // Dst: (CMTSTv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 87003*/      0, // EndSwitchType
/* 87004*/    /*Scope*/ 75, /*->87080*/
/* 87005*/      OPC_RecordChild0, // #0 = $Rn
/* 87006*/      OPC_SwitchType /*8 cases */, 7, MVT::v8i8,// ->87016
/* 87009*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (AArch64not:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                  // Dst: (NOTv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 87016*/      /*SwitchType*/ 7, MVT::v16i8,// ->87025
/* 87018*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (AArch64not:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                  // Dst: (NOTv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 87025*/      /*SwitchType*/ 7, MVT::v4i16,// ->87034
/* 87027*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (AArch64not:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                  // Dst: (NOTv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 87034*/      /*SwitchType*/ 7, MVT::v8i16,// ->87043
/* 87036*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (AArch64not:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                  // Dst: (NOTv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 87043*/      /*SwitchType*/ 7, MVT::v2i32,// ->87052
/* 87045*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (AArch64not:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                  // Dst: (NOTv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 87052*/      /*SwitchType*/ 7, MVT::v1i64,// ->87061
/* 87054*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv8i8), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (AArch64not:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rn) - Complexity = 3
                  // Dst: (NOTv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rn)
/* 87061*/      /*SwitchType*/ 7, MVT::v4i32,// ->87070
/* 87063*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (AArch64not:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                  // Dst: (NOTv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 87070*/      /*SwitchType*/ 7, MVT::v2i64,// ->87079
/* 87072*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::NOTv16i8), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (AArch64not:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                  // Dst: (NOTv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 87079*/      0, // EndSwitchType
/* 87080*/    0, /*End of Scope*/
/* 87081*/  /*SwitchOpcode*/ 17|128,3/*401*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->87486
/* 87085*/    OPC_RecordChild0, // #0 = $Rn
/* 87086*/    OPC_Scope, 97, /*->87185*/ // 5 children in Scope
/* 87088*/      OPC_CheckChild1Integer, 0, 
/* 87090*/      OPC_CheckChild1Type, MVT::i64,
/* 87092*/      OPC_SwitchType /*7 cases */, 11, MVT::v4i16,// ->87106
/* 87095*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87098*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 0:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, dsub:{ *:[i32] })
/* 87106*/      /*SwitchType*/ 11, MVT::v8i8,// ->87119
/* 87108*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87111*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 0:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, dsub:{ *:[i32] })
/* 87119*/      /*SwitchType*/ 11, MVT::v2i32,// ->87132
/* 87121*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87124*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 0:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, dsub:{ *:[i32] })
/* 87132*/      /*SwitchType*/ 11, MVT::v1i64,// ->87145
/* 87134*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87137*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v1i64, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v1i64] } V128:{ *:[v2i64] }:$Rn, 0:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v1i64] } V128:{ *:[v2i64] }:$Rn, dsub:{ *:[i32] })
/* 87145*/      /*SwitchType*/ 11, MVT::v2f32,// ->87158
/* 87147*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87150*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rn, 0:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rn, dsub:{ *:[i32] })
/* 87158*/      /*SwitchType*/ 11, MVT::v4f16,// ->87171
/* 87160*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87163*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v4f16] } V128:{ *:[v8f16] }:$Rn, 0:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v4f16] } V128:{ *:[v8f16] }:$Rn, dsub:{ *:[i32] })
/* 87171*/      /*SwitchType*/ 11, MVT::v1f64,// ->87184
/* 87173*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87176*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v1f64, 2/*#Ops*/, 0, 1, 
                  // Src: (extract_subvector:{ *:[v1f64] } V128:{ *:[v2f64] }:$Rn, 0:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v1f64] } V128:{ *:[v2f64] }:$Rn, dsub:{ *:[i32] })
/* 87184*/      0, // EndSwitchType
/* 87185*/    /*Scope*/ 29, /*->87215*/
/* 87186*/      OPC_CheckChild1Integer, 8, 
/* 87188*/      OPC_CheckChild1Type, MVT::i64,
/* 87190*/      OPC_CheckType, MVT::v8i8,
/* 87192*/      OPC_EmitInteger, MVT::i32, 8, 
/* 87195*/      OPC_EmitNode1, TARGET_VAL(AArch64::EXTv16i8), 0,
                    MVT::f128, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 87204*/      OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87207*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v8i8, 2/*#Ops*/, 2, 3, 
                // Src: (extract_subvector:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, 8:{ *:[i64] }) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:{ *:[v8i8] } (EXTv16i8:{ *:[f128] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rn, 8:{ *:[i32] }), dsub:{ *:[i32] })
/* 87215*/    /*Scope*/ 56, /*->87272*/
/* 87216*/      OPC_CheckChild1Integer, 4, 
/* 87218*/      OPC_CheckChild1Type, MVT::i64,
/* 87220*/      OPC_SwitchType /*2 cases */, 23, MVT::v4i16,// ->87246
/* 87223*/        OPC_EmitInteger, MVT::i32, 8, 
/* 87226*/        OPC_EmitNode1, TARGET_VAL(AArch64::EXTv16i8), 0,
                      MVT::f128, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 87235*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87238*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 2, 3, 
                  // Src: (extract_subvector:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, 4:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (EXTv16i8:{ *:[f128] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rn, 8:{ *:[i32] }), dsub:{ *:[i32] })
/* 87246*/      /*SwitchType*/ 23, MVT::v4f16,// ->87271
/* 87248*/        OPC_EmitInteger, MVT::i32, 8, 
/* 87251*/        OPC_EmitNode1, TARGET_VAL(AArch64::EXTv16i8), 0,
                      MVT::f128, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 87260*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87263*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4f16, 2/*#Ops*/, 2, 3, 
                  // Src: (extract_subvector:{ *:[v4f16] } V128:{ *:[v8f16] }:$Rn, 4:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v4f16] } (EXTv16i8:{ *:[f128] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rn, 8:{ *:[i32] }), dsub:{ *:[i32] })
/* 87271*/      0, // EndSwitchType
/* 87272*/    /*Scope*/ 56, /*->87329*/
/* 87273*/      OPC_CheckChild1Integer, 2, 
/* 87275*/      OPC_CheckChild1Type, MVT::i64,
/* 87277*/      OPC_SwitchType /*2 cases */, 23, MVT::v2i32,// ->87303
/* 87280*/        OPC_EmitInteger, MVT::i32, 8, 
/* 87283*/        OPC_EmitNode1, TARGET_VAL(AArch64::EXTv16i8), 0,
                      MVT::f128, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 87292*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87295*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 2, 3, 
                  // Src: (extract_subvector:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, 2:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (EXTv16i8:{ *:[f128] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rn, 8:{ *:[i32] }), dsub:{ *:[i32] })
/* 87303*/      /*SwitchType*/ 23, MVT::v2f32,// ->87328
/* 87305*/        OPC_EmitInteger, MVT::i32, 8, 
/* 87308*/        OPC_EmitNode1, TARGET_VAL(AArch64::EXTv16i8), 0,
                      MVT::f128, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 87317*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87320*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 2, 3, 
                  // Src: (extract_subvector:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rn, 2:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v2f32] } (EXTv16i8:{ *:[f128] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rn, 8:{ *:[i32] }), dsub:{ *:[i32] })
/* 87328*/      0, // EndSwitchType
/* 87329*/    /*Scope*/ 26|128,1/*154*/, /*->87485*/
/* 87331*/      OPC_CheckChild1Integer, 1, 
/* 87333*/      OPC_CheckChild1Type, MVT::i64,
/* 87335*/      OPC_SwitchType /*5 cases */, 49, MVT::v1i64,// ->87387
/* 87338*/        OPC_Scope, 23, /*->87363*/ // 2 children in Scope
/* 87340*/          OPC_EmitInteger, MVT::i32, 8, 
/* 87343*/          OPC_EmitNode1, TARGET_VAL(AArch64::EXTv16i8), 0,
                        MVT::f128, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 87352*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87355*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v1i64, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v1i64] } V128:{ *:[v2i64] }:$Rn, 1:{ *:[i64] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v1i64] } (EXTv16i8:{ *:[f128] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rn, 8:{ *:[i32] }), dsub:{ *:[i32] })
/* 87363*/        /*Scope*/ 22, /*->87386*/
/* 87364*/          OPC_EmitInteger, MVT::i64, 1, 
/* 87367*/          OPC_EmitNode1, TARGET_VAL(AArch64::DUPv2i64lane), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1,  // Results = #2
/* 87375*/          OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87378*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v1i64, 2/*#Ops*/, 2, 3, 
                    // Src: (extract_subvector:{ *:[v1i64] } FPR128:{ *:[v2i64] }:$Rn, 1:{ *:[i64] }) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:{ *:[v1i64] } (DUPv2i64lane:{ *:[f128] } FPR128:{ *:[v2i64] }:$Rn, 1:{ *:[i64] }), dsub:{ *:[i32] })
/* 87386*/        0, /*End of Scope*/
/* 87387*/      /*SwitchType*/ 22, MVT::v8i8,// ->87411
/* 87389*/        OPC_EmitInteger, MVT::i64, 1, 
/* 87392*/        OPC_EmitNode1, TARGET_VAL(AArch64::DUPv2i64lane), 0,
                      MVT::f128, 2/*#Ops*/, 0, 1,  // Results = #2
/* 87400*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87403*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i8, 2/*#Ops*/, 2, 3, 
                  // Src: (extract_subvector:{ *:[v8i8] } FPR128:{ *:[v16i8] }:$Rn, 1:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v8i8] } (DUPv2i64lane:{ *:[f128] } FPR128:{ *:[v16i8] }:$Rn, 1:{ *:[i64] }), dsub:{ *:[i32] })
/* 87411*/      /*SwitchType*/ 22, MVT::v4i16,// ->87435
/* 87413*/        OPC_EmitInteger, MVT::i64, 1, 
/* 87416*/        OPC_EmitNode1, TARGET_VAL(AArch64::DUPv2i64lane), 0,
                      MVT::f128, 2/*#Ops*/, 0, 1,  // Results = #2
/* 87424*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87427*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 2, 3, 
                  // Src: (extract_subvector:{ *:[v4i16] } FPR128:{ *:[v8i16] }:$Rn, 1:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i16] } (DUPv2i64lane:{ *:[f128] } FPR128:{ *:[v8i16] }:$Rn, 1:{ *:[i64] }), dsub:{ *:[i32] })
/* 87435*/      /*SwitchType*/ 22, MVT::v2i32,// ->87459
/* 87437*/        OPC_EmitInteger, MVT::i64, 1, 
/* 87440*/        OPC_EmitNode1, TARGET_VAL(AArch64::DUPv2i64lane), 0,
                      MVT::f128, 2/*#Ops*/, 0, 1,  // Results = #2
/* 87448*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87451*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 2, 3, 
                  // Src: (extract_subvector:{ *:[v2i32] } FPR128:{ *:[v4i32] }:$Rn, 1:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i32] } (DUPv2i64lane:{ *:[f128] } FPR128:{ *:[v4i32] }:$Rn, 1:{ *:[i64] }), dsub:{ *:[i32] })
/* 87459*/      /*SwitchType*/ 23, MVT::v1f64,// ->87484
/* 87461*/        OPC_EmitInteger, MVT::i32, 8, 
/* 87464*/        OPC_EmitNode1, TARGET_VAL(AArch64::EXTv16i8), 0,
                      MVT::f128, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 87473*/        OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 87476*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v1f64, 2/*#Ops*/, 2, 3, 
                  // Src: (extract_subvector:{ *:[v1f64] } V128:{ *:[v2f64] }:$Rn, 1:{ *:[i64] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[v1f64] } (EXTv16i8:{ *:[f128] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rn, 8:{ *:[i32] }), dsub:{ *:[i32] })
/* 87484*/      0, // EndSwitchType
/* 87485*/    0, /*End of Scope*/
/* 87486*/  /*SwitchOpcode*/ 55, TARGET_VAL(AArch64ISD::DUPLANE64),// ->87544
/* 87489*/    OPC_RecordChild0, // #0 = $Rn
/* 87490*/    OPC_Scope, 26, /*->87518*/ // 2 children in Scope
/* 87492*/      OPC_CheckChild0Type, MVT::v2i64,
/* 87494*/      OPC_RecordChild1, // #1 = $idx
/* 87495*/      OPC_MoveChild1,
/* 87496*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87499*/      OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 87501*/      OPC_CheckType, MVT::i64,
/* 87503*/      OPC_MoveParent,
/* 87504*/      OPC_CheckType, MVT::v2i64,
/* 87506*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87508*/      OPC_EmitConvertToTarget, 1,
/* 87510*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i64lane), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64duplane64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$idx) - Complexity = 7
                // Dst: (DUPv2i64lane:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 87518*/    /*Scope*/ 24, /*->87543*/
/* 87519*/      OPC_CheckChild0Type, MVT::v2f64,
/* 87521*/      OPC_RecordChild1, // #1 = $imm
/* 87522*/      OPC_MoveChild1,
/* 87523*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87526*/      OPC_CheckPredicate, 6, // Predicate_VectorIndexD
/* 87528*/      OPC_CheckType, MVT::i64,
/* 87530*/      OPC_MoveParent,
/* 87531*/      OPC_CheckType, MVT::v2f64,
/* 87533*/      OPC_EmitConvertToTarget, 1,
/* 87535*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i64lane), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64duplane64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$imm) - Complexity = 7
                // Dst: (DUPv2i64lane:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexD>>:$imm)
/* 87543*/    0, /*End of Scope*/
/* 87544*/  /*SwitchOpcode*/ 85, TARGET_VAL(AArch64ISD::DUPLANE32),// ->87632
/* 87547*/    OPC_RecordChild0, // #0 = $Rn
/* 87548*/    OPC_Scope, 42, /*->87592*/ // 2 children in Scope
/* 87550*/      OPC_CheckChild0Type, MVT::v4i32,
/* 87552*/      OPC_RecordChild1, // #1 = $idx
/* 87553*/      OPC_MoveChild1,
/* 87554*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87557*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 87559*/      OPC_CheckType, MVT::i64,
/* 87561*/      OPC_MoveParent,
/* 87562*/      OPC_SwitchType /*2 cases */, 12, MVT::v2i32,// ->87577
/* 87565*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87567*/        OPC_EmitConvertToTarget, 1,
/* 87569*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i32lane), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64duplane32:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 7
                  // Dst: (DUPv2i32lane:{ *:[v2i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 87577*/      /*SwitchType*/ 12, MVT::v4i32,// ->87591
/* 87579*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87581*/        OPC_EmitConvertToTarget, 1,
/* 87583*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i32lane), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64duplane32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$idx) - Complexity = 7
                  // Dst: (DUPv4i32lane:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 87591*/      0, // EndSwitchType
/* 87592*/    /*Scope*/ 38, /*->87631*/
/* 87593*/      OPC_CheckChild0Type, MVT::v4f32,
/* 87595*/      OPC_RecordChild1, // #1 = $imm
/* 87596*/      OPC_MoveChild1,
/* 87597*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87600*/      OPC_CheckPredicate, 5, // Predicate_VectorIndexS
/* 87602*/      OPC_CheckType, MVT::i64,
/* 87604*/      OPC_MoveParent,
/* 87605*/      OPC_SwitchType /*2 cases */, 10, MVT::v2f32,// ->87618
/* 87608*/        OPC_EmitConvertToTarget, 1,
/* 87610*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv2i32lane), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64duplane32:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm) - Complexity = 7
                  // Dst: (DUPv2i32lane:{ *:[v2f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm)
/* 87618*/      /*SwitchType*/ 10, MVT::v4f32,// ->87630
/* 87620*/        OPC_EmitConvertToTarget, 1,
/* 87622*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i32lane), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64duplane32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm) - Complexity = 7
                  // Dst: (DUPv4i32lane:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexS>>:$imm)
/* 87630*/      0, // EndSwitchType
/* 87631*/    0, /*End of Scope*/
/* 87632*/  /*SwitchOpcode*/ 85, TARGET_VAL(AArch64ISD::DUPLANE16),// ->87720
/* 87635*/    OPC_RecordChild0, // #0 = $Rn
/* 87636*/    OPC_Scope, 42, /*->87680*/ // 2 children in Scope
/* 87638*/      OPC_CheckChild0Type, MVT::v8i16,
/* 87640*/      OPC_RecordChild1, // #1 = $idx
/* 87641*/      OPC_MoveChild1,
/* 87642*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87645*/      OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 87647*/      OPC_CheckType, MVT::i64,
/* 87649*/      OPC_MoveParent,
/* 87650*/      OPC_SwitchType /*2 cases */, 12, MVT::v4i16,// ->87665
/* 87653*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87655*/        OPC_EmitConvertToTarget, 1,
/* 87657*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i16lane), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64duplane16:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 7
                  // Dst: (DUPv4i16lane:{ *:[v4i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 87665*/      /*SwitchType*/ 12, MVT::v8i16,// ->87679
/* 87667*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87669*/        OPC_EmitConvertToTarget, 1,
/* 87671*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i16lane), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64duplane16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$idx) - Complexity = 7
                  // Dst: (DUPv8i16lane:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 87679*/      0, // EndSwitchType
/* 87680*/    /*Scope*/ 38, /*->87719*/
/* 87681*/      OPC_CheckChild0Type, MVT::v8f16,
/* 87683*/      OPC_RecordChild1, // #1 = $imm
/* 87684*/      OPC_MoveChild1,
/* 87685*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87688*/      OPC_CheckPredicate, 3, // Predicate_VectorIndexH
/* 87690*/      OPC_CheckType, MVT::i64,
/* 87692*/      OPC_MoveParent,
/* 87693*/      OPC_SwitchType /*2 cases */, 10, MVT::v4f16,// ->87706
/* 87696*/        OPC_EmitConvertToTarget, 1,
/* 87698*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv4i16lane), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64duplane16:{ *:[v4f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$imm) - Complexity = 7
                  // Dst: (DUPv4i16lane:{ *:[v4f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$imm)
/* 87706*/      /*SwitchType*/ 10, MVT::v8f16,// ->87718
/* 87708*/        OPC_EmitConvertToTarget, 1,
/* 87710*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i16lane), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 2, 
                  // Src: (AArch64duplane16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$imm) - Complexity = 7
                  // Dst: (DUPv8i16lane:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexH>>:$imm)
/* 87718*/      0, // EndSwitchType
/* 87719*/    0, /*End of Scope*/
/* 87720*/  /*SwitchOpcode*/ 43, TARGET_VAL(AArch64ISD::DUPLANE8),// ->87766
/* 87723*/    OPC_RecordChild0, // #0 = $Rn
/* 87724*/    OPC_CheckChild0Type, MVT::v16i8,
/* 87726*/    OPC_RecordChild1, // #1 = $idx
/* 87727*/    OPC_MoveChild1,
/* 87728*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87731*/    OPC_CheckPredicate, 7, // Predicate_VectorIndexB
/* 87733*/    OPC_CheckType, MVT::i64,
/* 87735*/    OPC_MoveParent,
/* 87736*/    OPC_SwitchType /*2 cases */, 12, MVT::v8i8,// ->87751
/* 87739*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87741*/      OPC_EmitConvertToTarget, 1,
/* 87743*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv8i8lane), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64duplane8:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx) - Complexity = 7
                // Dst: (DUPv8i8lane:{ *:[v8i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 87751*/    /*SwitchType*/ 12, MVT::v16i8,// ->87765
/* 87753*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87755*/      OPC_EmitConvertToTarget, 1,
/* 87757*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::DUPv16i8lane), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 2, 
                // Src: (AArch64duplane8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] })<<P:Predicate_VectorIndexB>>:$idx) - Complexity = 7
                // Dst: (DUPv16i8lane:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, (imm:{ *:[i64] }):$idx)
/* 87765*/    0, // EndSwitchType
/* 87766*/  /*SwitchOpcode*/ 38, TARGET_VAL(AArch64ISD::MOVI),// ->87807
/* 87769*/    OPC_RecordChild0, // #0 = $imm8
/* 87770*/    OPC_MoveChild0,
/* 87771*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87774*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 87776*/    OPC_CheckType, MVT::i32,
/* 87778*/    OPC_MoveParent,
/* 87779*/    OPC_SwitchType /*2 cases */, 11, MVT::v8i8,// ->87793
/* 87782*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87784*/      OPC_EmitConvertToTarget, 0,
/* 87786*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv8b_ns), 0,
                    MVT::v8i8, 1/*#Ops*/, 1, 
                // Src: (AArch64movi:{ *:[v8i8] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                // Dst: (MOVIv8b_ns:{ *:[v8i8] } (imm:{ *:[i32] }):$imm8)
/* 87793*/    /*SwitchType*/ 11, MVT::v16i8,// ->87806
/* 87795*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87797*/      OPC_EmitConvertToTarget, 0,
/* 87799*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv16b_ns), 0,
                    MVT::v16i8, 1/*#Ops*/, 1, 
                // Src: (AArch64movi:{ *:[v16i8] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                // Dst: (MOVIv16b_ns:{ *:[v16i8] } (imm:{ *:[i32] }):$imm8)
/* 87806*/    0, // EndSwitchType
/* 87807*/  /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(AArch64ISD::EXT),// ->87983
/* 87811*/    OPC_RecordChild0, // #0 = $Rn
/* 87812*/    OPC_RecordChild1, // #1 = $Rm
/* 87813*/    OPC_RecordChild2, // #2 = $imm
/* 87814*/    OPC_MoveChild2,
/* 87815*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87818*/    OPC_CheckType, MVT::i32,
/* 87820*/    OPC_MoveParent,
/* 87821*/    OPC_SwitchType /*12 cases */, 13, MVT::v8i8,// ->87837
/* 87824*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87826*/      OPC_EmitConvertToTarget, 2,
/* 87828*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87837*/    /*SwitchType*/ 13, MVT::v16i8,// ->87852
/* 87839*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 87841*/      OPC_EmitConvertToTarget, 2,
/* 87843*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87852*/    /*SwitchType*/ 11, MVT::v4i16,// ->87865
/* 87854*/      OPC_EmitConvertToTarget, 2,
/* 87856*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv8i8), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87865*/    /*SwitchType*/ 11, MVT::v8i16,// ->87878
/* 87867*/      OPC_EmitConvertToTarget, 2,
/* 87869*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87878*/    /*SwitchType*/ 11, MVT::v2i32,// ->87891
/* 87880*/      OPC_EmitConvertToTarget, 2,
/* 87882*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv8i8), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87891*/    /*SwitchType*/ 11, MVT::v4i32,// ->87904
/* 87893*/      OPC_EmitConvertToTarget, 2,
/* 87895*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87904*/    /*SwitchType*/ 11, MVT::v2i64,// ->87917
/* 87906*/      OPC_EmitConvertToTarget, 2,
/* 87908*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87917*/    /*SwitchType*/ 11, MVT::v2f32,// ->87930
/* 87919*/      OPC_EmitConvertToTarget, 2,
/* 87921*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv8i8), 0,
                    MVT::v2f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv8i8:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87930*/    /*SwitchType*/ 11, MVT::v4f32,// ->87943
/* 87932*/      OPC_EmitConvertToTarget, 2,
/* 87934*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv16i8:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87943*/    /*SwitchType*/ 11, MVT::v2f64,// ->87956
/* 87945*/      OPC_EmitConvertToTarget, 2,
/* 87947*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv16i8:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87956*/    /*SwitchType*/ 11, MVT::v4f16,// ->87969
/* 87958*/      OPC_EmitConvertToTarget, 2,
/* 87960*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv8i8), 0,
                    MVT::v4f16, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv8i8:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87969*/    /*SwitchType*/ 11, MVT::v8f16,// ->87982
/* 87971*/      OPC_EmitConvertToTarget, 2,
/* 87973*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::EXTv16i8), 0,
                    MVT::v8f16, 3/*#Ops*/, 0, 1, 3, 
                // Src: (AArch64ext:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (EXTv16i8:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm, (imm:{ *:[i32] }):$imm)
/* 87982*/    0, // EndSwitchType
/* 87983*/  /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->88209
/* 87987*/    OPC_Scope, 52, /*->88041*/ // 4 children in Scope
/* 87989*/      OPC_CheckPredicate, 45, // Predicate_immAllZerosV
/* 87991*/      OPC_SwitchType /*4 cases */, 10, MVT::v1i64,// ->88004
/* 87994*/        OPC_EmitInteger, MVT::i32, 0, 
/* 87997*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v1i64] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (MOVID:{ *:[v1i64] } 0:{ *:[i32] })
/* 88004*/      /*SwitchType*/ 10, MVT::v2i32,// ->88016
/* 88006*/        OPC_EmitInteger, MVT::i32, 0, 
/* 88009*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v2i32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (MOVID:{ *:[v2i32] } 0:{ *:[i32] })
/* 88016*/      /*SwitchType*/ 10, MVT::v4i16,// ->88028
/* 88018*/        OPC_EmitInteger, MVT::i32, 0, 
/* 88021*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v4i16] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (MOVID:{ *:[v4i16] } 0:{ *:[i32] })
/* 88028*/      /*SwitchType*/ 10, MVT::v8i8,// ->88040
/* 88030*/        OPC_EmitInteger, MVT::i32, 0, 
/* 88033*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v8i8] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (MOVID:{ *:[v8i8] } 0:{ *:[i32] })
/* 88040*/      0, // EndSwitchType
/* 88041*/    /*Scope*/ 56, /*->88098*/
/* 88042*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 88044*/      OPC_SwitchType /*4 cases */, 11, MVT::v1i64,// ->88058
/* 88047*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 88051*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                      MVT::v1i64, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v1i64] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (MOVID:{ *:[v1i64] } 255:{ *:[i32] })
/* 88058*/      /*SwitchType*/ 11, MVT::v2i32,// ->88071
/* 88060*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 88064*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v2i32] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (MOVID:{ *:[v2i32] } 255:{ *:[i32] })
/* 88071*/      /*SwitchType*/ 11, MVT::v4i16,// ->88084
/* 88073*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 88077*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v4i16] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (MOVID:{ *:[v4i16] } 255:{ *:[i32] })
/* 88084*/      /*SwitchType*/ 11, MVT::v8i8,// ->88097
/* 88086*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 88090*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVID), 0,
                      MVT::v8i8, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v8i8] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (MOVID:{ *:[v8i8] } 255:{ *:[i32] })
/* 88097*/      0, // EndSwitchType
/* 88098*/    /*Scope*/ 52, /*->88151*/
/* 88099*/      OPC_CheckPredicate, 45, // Predicate_immAllZerosV
/* 88101*/      OPC_SwitchType /*4 cases */, 10, MVT::v2i64,// ->88114
/* 88104*/        OPC_EmitInteger, MVT::i32, 0, 
/* 88107*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v2i64] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (MOVIv2d_ns:{ *:[v2i64] } 0:{ *:[i32] })
/* 88114*/      /*SwitchType*/ 10, MVT::v4i32,// ->88126
/* 88116*/        OPC_EmitInteger, MVT::i32, 0, 
/* 88119*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (MOVIv2d_ns:{ *:[v4i32] } 0:{ *:[i32] })
/* 88126*/      /*SwitchType*/ 10, MVT::v8i16,// ->88138
/* 88128*/        OPC_EmitInteger, MVT::i32, 0, 
/* 88131*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v8i16] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (MOVIv2d_ns:{ *:[v8i16] } 0:{ *:[i32] })
/* 88138*/      /*SwitchType*/ 10, MVT::v16i8,// ->88150
/* 88140*/        OPC_EmitInteger, MVT::i32, 0, 
/* 88143*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v16i8] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (MOVIv2d_ns:{ *:[v16i8] } 0:{ *:[i32] })
/* 88150*/      0, // EndSwitchType
/* 88151*/    /*Scope*/ 56, /*->88208*/
/* 88152*/      OPC_CheckPredicate, 42, // Predicate_immAllOnesV
/* 88154*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i64,// ->88168
/* 88157*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 88161*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (MOVIv2d_ns:{ *:[v2i64] } 255:{ *:[i32] })
/* 88168*/      /*SwitchType*/ 11, MVT::v4i32,// ->88181
/* 88170*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 88174*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (MOVIv2d_ns:{ *:[v4i32] } 255:{ *:[i32] })
/* 88181*/      /*SwitchType*/ 11, MVT::v8i16,// ->88194
/* 88183*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 88187*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (MOVIv2d_ns:{ *:[v8i16] } 255:{ *:[i32] })
/* 88194*/      /*SwitchType*/ 11, MVT::v16i8,// ->88207
/* 88196*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 88200*/        OPC_MorphNodeTo1, TARGET_VAL(AArch64::MOVIv2d_ns), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (MOVIv2d_ns:{ *:[v16i8] } 255:{ *:[i32] })
/* 88207*/      0, // EndSwitchType
/* 88208*/    0, /*End of Scope*/
/* 88209*/  /*SwitchOpcode*/ 29|128,3/*413*/, TARGET_VAL(AArch64ISD::NVCAST),// ->88626
/* 88213*/    OPC_RecordChild0, // #0 = $src
/* 88214*/    OPC_Scope, 34, /*->88250*/ // 11 children in Scope
/* 88216*/      OPC_CheckChild0Type, MVT::v2i32,
/* 88218*/      OPC_SwitchType /*6 cases */, 3, MVT::v8i8,// ->88224
/* 88221*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i8] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v8i8] }:$src
/* 88224*/      /*SwitchType*/ 3, MVT::v4i16,// ->88229
/* 88226*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i16] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4i16] }:$src
/* 88229*/      /*SwitchType*/ 3, MVT::v2i32,// ->88234
/* 88231*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i32] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2i32] }:$src
/* 88234*/      /*SwitchType*/ 3, MVT::v1i64,// ->88239
/* 88236*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v1i64] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1i64] }:$src
/* 88239*/      /*SwitchType*/ 3, MVT::v4f16,// ->88244
/* 88241*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f16] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4f16] }:$src
/* 88244*/      /*SwitchType*/ 3, MVT::v2f32,// ->88249
/* 88246*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f32] } FPR64:{ *:[v2i32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2f32] }:$src
/* 88249*/      0, // EndSwitchType
/* 88250*/    /*Scope*/ 29, /*->88280*/
/* 88251*/      OPC_CheckChild0Type, MVT::v4i16,
/* 88253*/      OPC_SwitchType /*5 cases */, 3, MVT::v8i8,// ->88259
/* 88256*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i8] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v8i8] }:$src
/* 88259*/      /*SwitchType*/ 3, MVT::v4i16,// ->88264
/* 88261*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i16] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4i16] }:$src
/* 88264*/      /*SwitchType*/ 3, MVT::v2i32,// ->88269
/* 88266*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i32] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2i32] }:$src
/* 88269*/      /*SwitchType*/ 3, MVT::v1i64,// ->88274
/* 88271*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v1i64] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1i64] }:$src
/* 88274*/      /*SwitchType*/ 3, MVT::v4f16,// ->88279
/* 88276*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f16] } FPR64:{ *:[v4i16] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4f16] }:$src
/* 88279*/      0, // EndSwitchType
/* 88280*/    /*Scope*/ 34, /*->88315*/
/* 88281*/      OPC_CheckChild0Type, MVT::v8i8,
/* 88283*/      OPC_SwitchType /*6 cases */, 3, MVT::v8i8,// ->88289
/* 88286*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i8] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v8i8] }:$src
/* 88289*/      /*SwitchType*/ 3, MVT::v4i16,// ->88294
/* 88291*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i16] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4i16] }:$src
/* 88294*/      /*SwitchType*/ 3, MVT::v2i32,// ->88299
/* 88296*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i32] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2i32] }:$src
/* 88299*/      /*SwitchType*/ 3, MVT::v1i64,// ->88304
/* 88301*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v1i64] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1i64] }:$src
/* 88304*/      /*SwitchType*/ 3, MVT::v4f16,// ->88309
/* 88306*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f16] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4f16] }:$src
/* 88309*/      /*SwitchType*/ 3, MVT::v2f32,// ->88314
/* 88311*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f32] } FPR64:{ *:[v8i8] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2f32] }:$src
/* 88314*/      0, // EndSwitchType
/* 88315*/    /*Scope*/ 39, /*->88355*/
/* 88316*/      OPC_CheckChild0Type, MVT::f64,
/* 88318*/      OPC_SwitchType /*7 cases */, 3, MVT::v8i8,// ->88324
/* 88321*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i8] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v8i8] }:$src
/* 88324*/      /*SwitchType*/ 3, MVT::v4i16,// ->88329
/* 88326*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i16] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4i16] }:$src
/* 88329*/      /*SwitchType*/ 3, MVT::v2i32,// ->88334
/* 88331*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i32] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2i32] }:$src
/* 88334*/      /*SwitchType*/ 3, MVT::v1i64,// ->88339
/* 88336*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v1i64] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1i64] }:$src
/* 88339*/      /*SwitchType*/ 3, MVT::v4f16,// ->88344
/* 88341*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f16] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4f16] }:$src
/* 88344*/      /*SwitchType*/ 3, MVT::v2f32,// ->88349
/* 88346*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f32] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2f32] }:$src
/* 88349*/      /*SwitchType*/ 3, MVT::v1f64,// ->88354
/* 88351*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v1f64] } FPR64:{ *:[f64] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1f64] }:$src
/* 88354*/      0, // EndSwitchType
/* 88355*/    /*Scope*/ 29, /*->88385*/
/* 88356*/      OPC_CheckChild0Type, MVT::v2f32,
/* 88358*/      OPC_SwitchType /*5 cases */, 3, MVT::v8i8,// ->88364
/* 88361*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i8] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v8i8] }:$src
/* 88364*/      /*SwitchType*/ 3, MVT::v4i16,// ->88369
/* 88366*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i16] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v4i16] }:$src
/* 88369*/      /*SwitchType*/ 3, MVT::v2i32,// ->88374
/* 88371*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i32] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2i32] }:$src
/* 88374*/      /*SwitchType*/ 3, MVT::v1i64,// ->88379
/* 88376*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v1i64] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v1i64] }:$src
/* 88379*/      /*SwitchType*/ 3, MVT::v2f32,// ->88384
/* 88381*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f32] } FPR64:{ *:[v2f32] }:$src) - Complexity = 3
                   // Dst: FPR64:{ *:[v2f32] }:$src
/* 88384*/      0, // EndSwitchType
/* 88385*/    /*Scope*/ 39, /*->88425*/
/* 88386*/      OPC_CheckChild0Type, MVT::v4i32,
/* 88388*/      OPC_SwitchType /*7 cases */, 3, MVT::v16i8,// ->88394
/* 88391*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v16i8] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v16i8] }:$src
/* 88394*/      /*SwitchType*/ 3, MVT::v8i16,// ->88399
/* 88396*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i16] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8i16] }:$src
/* 88399*/      /*SwitchType*/ 3, MVT::v4i32,// ->88404
/* 88401*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i32] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4i32] }:$src
/* 88404*/      /*SwitchType*/ 3, MVT::v2i64,// ->88409
/* 88406*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i64] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2i64] }:$src
/* 88409*/      /*SwitchType*/ 3, MVT::v8f16,// ->88414
/* 88411*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8f16] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8f16] }:$src
/* 88414*/      /*SwitchType*/ 3, MVT::v4f32,// ->88419
/* 88416*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f32] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4f32] }:$src
/* 88419*/      /*SwitchType*/ 3, MVT::v2f64,// ->88424
/* 88421*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f64] } FPR128:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2f64] }:$src
/* 88424*/      0, // EndSwitchType
/* 88425*/    /*Scope*/ 39, /*->88465*/
/* 88426*/      OPC_CheckChild0Type, MVT::v8i16,
/* 88428*/      OPC_SwitchType /*7 cases */, 3, MVT::v16i8,// ->88434
/* 88431*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v16i8] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v16i8] }:$src
/* 88434*/      /*SwitchType*/ 3, MVT::v8i16,// ->88439
/* 88436*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i16] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8i16] }:$src
/* 88439*/      /*SwitchType*/ 3, MVT::v4i32,// ->88444
/* 88441*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i32] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4i32] }:$src
/* 88444*/      /*SwitchType*/ 3, MVT::v2i64,// ->88449
/* 88446*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i64] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2i64] }:$src
/* 88449*/      /*SwitchType*/ 3, MVT::v8f16,// ->88454
/* 88451*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8f16] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8f16] }:$src
/* 88454*/      /*SwitchType*/ 3, MVT::v4f32,// ->88459
/* 88456*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f32] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4f32] }:$src
/* 88459*/      /*SwitchType*/ 3, MVT::v2f64,// ->88464
/* 88461*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f64] } FPR128:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2f64] }:$src
/* 88464*/      0, // EndSwitchType
/* 88465*/    /*Scope*/ 39, /*->88505*/
/* 88466*/      OPC_CheckChild0Type, MVT::v16i8,
/* 88468*/      OPC_SwitchType /*7 cases */, 3, MVT::v16i8,// ->88474
/* 88471*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v16i8] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v16i8] }:$src
/* 88474*/      /*SwitchType*/ 3, MVT::v8i16,// ->88479
/* 88476*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i16] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8i16] }:$src
/* 88479*/      /*SwitchType*/ 3, MVT::v4i32,// ->88484
/* 88481*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i32] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4i32] }:$src
/* 88484*/      /*SwitchType*/ 3, MVT::v2i64,// ->88489
/* 88486*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i64] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2i64] }:$src
/* 88489*/      /*SwitchType*/ 3, MVT::v8f16,// ->88494
/* 88491*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8f16] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8f16] }:$src
/* 88494*/      /*SwitchType*/ 3, MVT::v4f32,// ->88499
/* 88496*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f32] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4f32] }:$src
/* 88499*/      /*SwitchType*/ 3, MVT::v2f64,// ->88504
/* 88501*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f64] } FPR128:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2f64] }:$src
/* 88504*/      0, // EndSwitchType
/* 88505*/    /*Scope*/ 39, /*->88545*/
/* 88506*/      OPC_CheckChild0Type, MVT::v2i64,
/* 88508*/      OPC_SwitchType /*7 cases */, 3, MVT::v16i8,// ->88514
/* 88511*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v16i8] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v16i8] }:$src
/* 88514*/      /*SwitchType*/ 3, MVT::v8i16,// ->88519
/* 88516*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i16] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8i16] }:$src
/* 88519*/      /*SwitchType*/ 3, MVT::v4i32,// ->88524
/* 88521*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i32] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4i32] }:$src
/* 88524*/      /*SwitchType*/ 3, MVT::v2i64,// ->88529
/* 88526*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i64] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2i64] }:$src
/* 88529*/      /*SwitchType*/ 3, MVT::v8f16,// ->88534
/* 88531*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8f16] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8f16] }:$src
/* 88534*/      /*SwitchType*/ 3, MVT::v4f32,// ->88539
/* 88536*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f32] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4f32] }:$src
/* 88539*/      /*SwitchType*/ 3, MVT::v2f64,// ->88544
/* 88541*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f64] } FPR128:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2f64] }:$src
/* 88544*/      0, // EndSwitchType
/* 88545*/    /*Scope*/ 39, /*->88585*/
/* 88546*/      OPC_CheckChild0Type, MVT::v4f32,
/* 88548*/      OPC_SwitchType /*7 cases */, 3, MVT::v16i8,// ->88554
/* 88551*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v16i8] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v16i8] }:$src
/* 88554*/      /*SwitchType*/ 3, MVT::v8i16,// ->88559
/* 88556*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i16] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8i16] }:$src
/* 88559*/      /*SwitchType*/ 3, MVT::v4i32,// ->88564
/* 88561*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i32] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4i32] }:$src
/* 88564*/      /*SwitchType*/ 3, MVT::v2i64,// ->88569
/* 88566*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i64] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2i64] }:$src
/* 88569*/      /*SwitchType*/ 3, MVT::v4f32,// ->88574
/* 88571*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f32] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4f32] }:$src
/* 88574*/      /*SwitchType*/ 3, MVT::v8f16,// ->88579
/* 88576*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8f16] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8f16] }:$src
/* 88579*/      /*SwitchType*/ 3, MVT::v2f64,// ->88584
/* 88581*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f64] } FPR128:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2f64] }:$src
/* 88584*/      0, // EndSwitchType
/* 88585*/    /*Scope*/ 39, /*->88625*/
/* 88586*/      OPC_CheckChild0Type, MVT::v2f64,
/* 88588*/      OPC_SwitchType /*7 cases */, 3, MVT::v16i8,// ->88594
/* 88591*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v16i8] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v16i8] }:$src
/* 88594*/      /*SwitchType*/ 3, MVT::v8i16,// ->88599
/* 88596*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8i16] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8i16] }:$src
/* 88599*/      /*SwitchType*/ 3, MVT::v4i32,// ->88604
/* 88601*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4i32] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4i32] }:$src
/* 88604*/      /*SwitchType*/ 3, MVT::v2i64,// ->88609
/* 88606*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2i64] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2i64] }:$src
/* 88609*/      /*SwitchType*/ 3, MVT::v2f64,// ->88614
/* 88611*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v2f64] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v2f64] }:$src
/* 88614*/      /*SwitchType*/ 3, MVT::v8f16,// ->88619
/* 88616*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v8f16] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v8f16] }:$src
/* 88619*/      /*SwitchType*/ 3, MVT::v4f32,// ->88624
/* 88621*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (AArch64NvCast:{ *:[v4f32] } FPR128:{ *:[v2f64] }:$src) - Complexity = 3
                   // Dst: FPR128:{ *:[v4f32] }:$src
/* 88624*/      0, // EndSwitchType
/* 88625*/    0, /*End of Scope*/
/* 88626*/  /*SwitchOpcode*/ 91, TARGET_VAL(AArch64ISD::CMEQz),// ->88720
/* 88629*/    OPC_RecordChild0, // #0 = $Rn
/* 88630*/    OPC_SwitchType /*8 cases */, 9, MVT::v8i8,// ->88642
/* 88633*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88635*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv8i8rz), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmeqz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (CMEQv8i8rz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 88642*/    /*SwitchType*/ 9, MVT::v16i8,// ->88653
/* 88644*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88646*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv16i8rz), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmeqz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (CMEQv16i8rz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 88653*/    /*SwitchType*/ 9, MVT::v4i16,// ->88664
/* 88655*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88657*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmeqz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (CMEQv4i16rz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 88664*/    /*SwitchType*/ 9, MVT::v8i16,// ->88675
/* 88666*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88668*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmeqz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (CMEQv8i16rz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 88675*/    /*SwitchType*/ 9, MVT::v2i32,// ->88686
/* 88677*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88679*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmeqz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (CMEQv2i32rz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 88686*/    /*SwitchType*/ 9, MVT::v4i32,// ->88697
/* 88688*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88690*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmeqz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (CMEQv4i32rz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 88697*/    /*SwitchType*/ 9, MVT::v2i64,// ->88708
/* 88699*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88701*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmeqz:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                // Dst: (CMEQv2i64rz:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 88708*/    /*SwitchType*/ 9, MVT::v1i64,// ->88719
/* 88710*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88712*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmeqz:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn) - Complexity = 3
                // Dst: (CMEQv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 88719*/    0, // EndSwitchType
/* 88720*/  /*SwitchOpcode*/ 91, TARGET_VAL(AArch64ISD::CMGEz),// ->88814
/* 88723*/    OPC_RecordChild0, // #0 = $Rn
/* 88724*/    OPC_SwitchType /*8 cases */, 9, MVT::v8i8,// ->88736
/* 88727*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88729*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv8i8rz), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgez:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (CMGEv8i8rz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 88736*/    /*SwitchType*/ 9, MVT::v16i8,// ->88747
/* 88738*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88740*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv16i8rz), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgez:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (CMGEv16i8rz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 88747*/    /*SwitchType*/ 9, MVT::v4i16,// ->88758
/* 88749*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88751*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgez:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (CMGEv4i16rz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 88758*/    /*SwitchType*/ 9, MVT::v8i16,// ->88769
/* 88760*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88762*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgez:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (CMGEv8i16rz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 88769*/    /*SwitchType*/ 9, MVT::v2i32,// ->88780
/* 88771*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88773*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgez:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (CMGEv2i32rz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 88780*/    /*SwitchType*/ 9, MVT::v4i32,// ->88791
/* 88782*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88784*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgez:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (CMGEv4i32rz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 88791*/    /*SwitchType*/ 9, MVT::v2i64,// ->88802
/* 88793*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88795*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgez:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                // Dst: (CMGEv2i64rz:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 88802*/    /*SwitchType*/ 9, MVT::v1i64,// ->88813
/* 88804*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88806*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgez:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn) - Complexity = 3
                // Dst: (CMGEv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 88813*/    0, // EndSwitchType
/* 88814*/  /*SwitchOpcode*/ 91, TARGET_VAL(AArch64ISD::CMGTz),// ->88908
/* 88817*/    OPC_RecordChild0, // #0 = $Rn
/* 88818*/    OPC_SwitchType /*8 cases */, 9, MVT::v8i8,// ->88830
/* 88821*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88823*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv8i8rz), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgtz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (CMGTv8i8rz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 88830*/    /*SwitchType*/ 9, MVT::v16i8,// ->88841
/* 88832*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88834*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv16i8rz), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgtz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (CMGTv16i8rz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 88841*/    /*SwitchType*/ 9, MVT::v4i16,// ->88852
/* 88843*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88845*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgtz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (CMGTv4i16rz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 88852*/    /*SwitchType*/ 9, MVT::v8i16,// ->88863
/* 88854*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88856*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgtz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (CMGTv8i16rz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 88863*/    /*SwitchType*/ 9, MVT::v2i32,// ->88874
/* 88865*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88867*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgtz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (CMGTv2i32rz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 88874*/    /*SwitchType*/ 9, MVT::v4i32,// ->88885
/* 88876*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88878*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgtz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (CMGTv4i32rz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 88885*/    /*SwitchType*/ 9, MVT::v2i64,// ->88896
/* 88887*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88889*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgtz:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                // Dst: (CMGTv2i64rz:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 88896*/    /*SwitchType*/ 9, MVT::v1i64,// ->88907
/* 88898*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88900*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmgtz:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn) - Complexity = 3
                // Dst: (CMGTv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 88907*/    0, // EndSwitchType
/* 88908*/  /*SwitchOpcode*/ 91, TARGET_VAL(AArch64ISD::CMLEz),// ->89002
/* 88911*/    OPC_RecordChild0, // #0 = $Rn
/* 88912*/    OPC_SwitchType /*8 cases */, 9, MVT::v8i8,// ->88924
/* 88915*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88917*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLEv8i8rz), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmlez:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (CMLEv8i8rz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 88924*/    /*SwitchType*/ 9, MVT::v16i8,// ->88935
/* 88926*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88928*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLEv16i8rz), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmlez:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (CMLEv16i8rz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 88935*/    /*SwitchType*/ 9, MVT::v4i16,// ->88946
/* 88937*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88939*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLEv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmlez:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (CMLEv4i16rz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 88946*/    /*SwitchType*/ 9, MVT::v8i16,// ->88957
/* 88948*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88950*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLEv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmlez:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (CMLEv8i16rz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 88957*/    /*SwitchType*/ 9, MVT::v2i32,// ->88968
/* 88959*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88961*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLEv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmlez:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (CMLEv2i32rz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 88968*/    /*SwitchType*/ 9, MVT::v4i32,// ->88979
/* 88970*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88972*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLEv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmlez:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (CMLEv4i32rz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 88979*/    /*SwitchType*/ 9, MVT::v2i64,// ->88990
/* 88981*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88983*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLEv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmlez:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                // Dst: (CMLEv2i64rz:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 88990*/    /*SwitchType*/ 9, MVT::v1i64,// ->89001
/* 88992*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 88994*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLEv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmlez:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn) - Complexity = 3
                // Dst: (CMLEv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 89001*/    0, // EndSwitchType
/* 89002*/  /*SwitchOpcode*/ 91, TARGET_VAL(AArch64ISD::CMLTz),// ->89096
/* 89005*/    OPC_RecordChild0, // #0 = $Rn
/* 89006*/    OPC_SwitchType /*8 cases */, 9, MVT::v8i8,// ->89018
/* 89009*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89011*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLTv8i8rz), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmltz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (CMLTv8i8rz:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 89018*/    /*SwitchType*/ 9, MVT::v16i8,// ->89029
/* 89020*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89022*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLTv16i8rz), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64cmltz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (CMLTv16i8rz:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 89029*/    /*SwitchType*/ 9, MVT::v4i16,// ->89040
/* 89031*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89033*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLTv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmltz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (CMLTv4i16rz:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 89040*/    /*SwitchType*/ 9, MVT::v8i16,// ->89051
/* 89042*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89044*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLTv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64cmltz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (CMLTv8i16rz:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 89051*/    /*SwitchType*/ 9, MVT::v2i32,// ->89062
/* 89053*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89055*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLTv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmltz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (CMLTv2i32rz:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 89062*/    /*SwitchType*/ 9, MVT::v4i32,// ->89073
/* 89064*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89066*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLTv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64cmltz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (CMLTv4i32rz:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 89073*/    /*SwitchType*/ 9, MVT::v2i64,// ->89084
/* 89075*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89077*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLTv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmltz:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                // Dst: (CMLTv2i64rz:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 89084*/    /*SwitchType*/ 9, MVT::v1i64,// ->89095
/* 89086*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89088*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMLTv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64cmltz:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn) - Complexity = 3
                // Dst: (CMLTv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn)
/* 89095*/    0, // EndSwitchType
/* 89096*/  /*SwitchOpcode*/ 25, TARGET_VAL(ISD::CTPOP),// ->89124
/* 89099*/    OPC_RecordChild0, // #0 = $Rn
/* 89100*/    OPC_SwitchType /*2 cases */, 9, MVT::v8i8,// ->89112
/* 89103*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89105*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CNTv8i8), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (ctpop:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (CNTv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 89112*/    /*SwitchType*/ 9, MVT::v16i8,// ->89123
/* 89114*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89116*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CNTv16i8), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (ctpop:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (CNTv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 89123*/    0, // EndSwitchType
/* 89124*/  /*SwitchOpcode*/ 81, TARGET_VAL(AArch64ISD::FCMEQz),// ->89208
/* 89127*/    OPC_RecordChild0, // #0 = $Rn
/* 89128*/    OPC_SwitchType /*6 cases */, 11, MVT::v4i16,// ->89142
/* 89131*/      OPC_CheckChild0Type, MVT::v4f16,
/* 89133*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89135*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmeqz:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FCMEQv4i16rz:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 89142*/    /*SwitchType*/ 11, MVT::v8i16,// ->89155
/* 89144*/      OPC_CheckChild0Type, MVT::v8f16,
/* 89146*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89148*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmeqz:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FCMEQv8i16rz:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 89155*/    /*SwitchType*/ 11, MVT::v2i32,// ->89168
/* 89157*/      OPC_CheckChild0Type, MVT::v2f32,
/* 89159*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89161*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmeqz:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FCMEQv2i32rz:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 89168*/    /*SwitchType*/ 11, MVT::v4i32,// ->89181
/* 89170*/      OPC_CheckChild0Type, MVT::v4f32,
/* 89172*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89174*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmeqz:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FCMEQv4i32rz:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 89181*/    /*SwitchType*/ 11, MVT::v2i64,// ->89194
/* 89183*/      OPC_CheckChild0Type, MVT::v2f64,
/* 89185*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89187*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmeqz:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FCMEQv2i64rz:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 89194*/    /*SwitchType*/ 11, MVT::v1i64,// ->89207
/* 89196*/      OPC_CheckChild0Type, MVT::v1f64,
/* 89198*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89200*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMEQv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmeqz:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn) - Complexity = 3
                // Dst: (FCMEQv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 89207*/    0, // EndSwitchType
/* 89208*/  /*SwitchOpcode*/ 81, TARGET_VAL(AArch64ISD::FCMGEz),// ->89292
/* 89211*/    OPC_RecordChild0, // #0 = $Rn
/* 89212*/    OPC_SwitchType /*6 cases */, 11, MVT::v4i16,// ->89226
/* 89215*/      OPC_CheckChild0Type, MVT::v4f16,
/* 89217*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89219*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgez:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FCMGEv4i16rz:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 89226*/    /*SwitchType*/ 11, MVT::v8i16,// ->89239
/* 89228*/      OPC_CheckChild0Type, MVT::v8f16,
/* 89230*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89232*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgez:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FCMGEv8i16rz:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 89239*/    /*SwitchType*/ 11, MVT::v2i32,// ->89252
/* 89241*/      OPC_CheckChild0Type, MVT::v2f32,
/* 89243*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89245*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgez:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FCMGEv2i32rz:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 89252*/    /*SwitchType*/ 11, MVT::v4i32,// ->89265
/* 89254*/      OPC_CheckChild0Type, MVT::v4f32,
/* 89256*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89258*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgez:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FCMGEv4i32rz:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 89265*/    /*SwitchType*/ 11, MVT::v2i64,// ->89278
/* 89267*/      OPC_CheckChild0Type, MVT::v2f64,
/* 89269*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89271*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgez:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FCMGEv2i64rz:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 89278*/    /*SwitchType*/ 11, MVT::v1i64,// ->89291
/* 89280*/      OPC_CheckChild0Type, MVT::v1f64,
/* 89282*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89284*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGEv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgez:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn) - Complexity = 3
                // Dst: (FCMGEv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 89291*/    0, // EndSwitchType
/* 89292*/  /*SwitchOpcode*/ 81, TARGET_VAL(AArch64ISD::FCMGTz),// ->89376
/* 89295*/    OPC_RecordChild0, // #0 = $Rn
/* 89296*/    OPC_SwitchType /*6 cases */, 11, MVT::v4i16,// ->89310
/* 89299*/      OPC_CheckChild0Type, MVT::v4f16,
/* 89301*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89303*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgtz:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FCMGTv4i16rz:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 89310*/    /*SwitchType*/ 11, MVT::v8i16,// ->89323
/* 89312*/      OPC_CheckChild0Type, MVT::v8f16,
/* 89314*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89316*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgtz:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FCMGTv8i16rz:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 89323*/    /*SwitchType*/ 11, MVT::v2i32,// ->89336
/* 89325*/      OPC_CheckChild0Type, MVT::v2f32,
/* 89327*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89329*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgtz:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FCMGTv2i32rz:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 89336*/    /*SwitchType*/ 11, MVT::v4i32,// ->89349
/* 89338*/      OPC_CheckChild0Type, MVT::v4f32,
/* 89340*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89342*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgtz:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FCMGTv4i32rz:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 89349*/    /*SwitchType*/ 11, MVT::v2i64,// ->89362
/* 89351*/      OPC_CheckChild0Type, MVT::v2f64,
/* 89353*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89355*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgtz:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FCMGTv2i64rz:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 89362*/    /*SwitchType*/ 11, MVT::v1i64,// ->89375
/* 89364*/      OPC_CheckChild0Type, MVT::v1f64,
/* 89366*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89368*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMGTv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmgtz:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn) - Complexity = 3
                // Dst: (FCMGTv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 89375*/    0, // EndSwitchType
/* 89376*/  /*SwitchOpcode*/ 81, TARGET_VAL(AArch64ISD::FCMLEz),// ->89460
/* 89379*/    OPC_RecordChild0, // #0 = $Rn
/* 89380*/    OPC_SwitchType /*6 cases */, 11, MVT::v4i16,// ->89394
/* 89383*/      OPC_CheckChild0Type, MVT::v4f16,
/* 89385*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89387*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLEv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmlez:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FCMLEv4i16rz:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 89394*/    /*SwitchType*/ 11, MVT::v8i16,// ->89407
/* 89396*/      OPC_CheckChild0Type, MVT::v8f16,
/* 89398*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89400*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLEv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmlez:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FCMLEv8i16rz:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 89407*/    /*SwitchType*/ 11, MVT::v2i32,// ->89420
/* 89409*/      OPC_CheckChild0Type, MVT::v2f32,
/* 89411*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89413*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLEv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmlez:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FCMLEv2i32rz:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 89420*/    /*SwitchType*/ 11, MVT::v4i32,// ->89433
/* 89422*/      OPC_CheckChild0Type, MVT::v4f32,
/* 89424*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89426*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLEv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmlez:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FCMLEv4i32rz:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 89433*/    /*SwitchType*/ 11, MVT::v2i64,// ->89446
/* 89435*/      OPC_CheckChild0Type, MVT::v2f64,
/* 89437*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89439*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLEv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmlez:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FCMLEv2i64rz:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 89446*/    /*SwitchType*/ 11, MVT::v1i64,// ->89459
/* 89448*/      OPC_CheckChild0Type, MVT::v1f64,
/* 89450*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89452*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLEv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmlez:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn) - Complexity = 3
                // Dst: (FCMLEv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 89459*/    0, // EndSwitchType
/* 89460*/  /*SwitchOpcode*/ 81, TARGET_VAL(AArch64ISD::FCMLTz),// ->89544
/* 89463*/    OPC_RecordChild0, // #0 = $Rn
/* 89464*/    OPC_SwitchType /*6 cases */, 11, MVT::v4i16,// ->89478
/* 89467*/      OPC_CheckChild0Type, MVT::v4f16,
/* 89469*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89471*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLTv4i16rz), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmltz:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (FCMLTv4i16rz:{ *:[v4i16] } V64:{ *:[v4f16] }:$Rn)
/* 89478*/    /*SwitchType*/ 11, MVT::v8i16,// ->89491
/* 89480*/      OPC_CheckChild0Type, MVT::v8f16,
/* 89482*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 89484*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLTv8i16rz), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmltz:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (FCMLTv8i16rz:{ *:[v8i16] } V128:{ *:[v8f16] }:$Rn)
/* 89491*/    /*SwitchType*/ 11, MVT::v2i32,// ->89504
/* 89493*/      OPC_CheckChild0Type, MVT::v2f32,
/* 89495*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89497*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLTv2i32rz), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmltz:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (FCMLTv2i32rz:{ *:[v2i32] } V64:{ *:[v2f32] }:$Rn)
/* 89504*/    /*SwitchType*/ 11, MVT::v4i32,// ->89517
/* 89506*/      OPC_CheckChild0Type, MVT::v4f32,
/* 89508*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89510*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLTv4i32rz), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmltz:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (FCMLTv4i32rz:{ *:[v4i32] } V128:{ *:[v4f32] }:$Rn)
/* 89517*/    /*SwitchType*/ 11, MVT::v2i64,// ->89530
/* 89519*/      OPC_CheckChild0Type, MVT::v2f64,
/* 89521*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89523*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLTv2i64rz), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmltz:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn) - Complexity = 3
                // Dst: (FCMLTv2i64rz:{ *:[v2i64] } V128:{ *:[v2f64] }:$Rn)
/* 89530*/    /*SwitchType*/ 11, MVT::v1i64,// ->89543
/* 89532*/      OPC_CheckChild0Type, MVT::v1f64,
/* 89534*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89536*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FCMLTv1i64rz), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64fcmltz:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn) - Complexity = 3
                // Dst: (FCMLTv1i64rz:{ *:[v1i64] } FPR64:{ *:[v1f64] }:$Rn)
/* 89543*/    0, // EndSwitchType
/* 89544*/  /*SwitchOpcode*/ 75, TARGET_VAL(AArch64ISD::NEG),// ->89622
/* 89547*/    OPC_RecordChild0, // #0 = $Rn
/* 89548*/    OPC_SwitchType /*8 cases */, 7, MVT::v8i8,// ->89558
/* 89551*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv8i8), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64neg:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (NEGv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 89558*/    /*SwitchType*/ 7, MVT::v16i8,// ->89567
/* 89560*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv16i8), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64neg:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (NEGv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 89567*/    /*SwitchType*/ 7, MVT::v4i16,// ->89576
/* 89569*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv4i16), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64neg:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (NEGv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 89576*/    /*SwitchType*/ 7, MVT::v8i16,// ->89585
/* 89578*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv8i16), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64neg:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (NEGv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 89585*/    /*SwitchType*/ 7, MVT::v2i32,// ->89594
/* 89587*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv2i32), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64neg:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (NEGv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 89594*/    /*SwitchType*/ 7, MVT::v4i32,// ->89603
/* 89596*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv4i32), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64neg:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (NEGv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 89603*/    /*SwitchType*/ 7, MVT::v2i64,// ->89612
/* 89605*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv2i64), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (AArch64neg:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                // Dst: (NEGv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn)
/* 89612*/    /*SwitchType*/ 7, MVT::v1i64,// ->89621
/* 89614*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::NEGv1i64), 0,
                    MVT::v1i64, 1/*#Ops*/, 0, 
                // Src: (AArch64neg:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rn) - Complexity = 3
                // Dst: (NEGv1i64:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rn)
/* 89621*/    0, // EndSwitchType
/* 89622*/  /*SwitchOpcode*/ 25, TARGET_VAL(AArch64ISD::REV16),// ->89650
/* 89625*/    OPC_RecordChild0, // #0 = $Rn
/* 89626*/    OPC_SwitchType /*2 cases */, 9, MVT::v8i8,// ->89638
/* 89629*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89631*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v8i8), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64rev16:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (REV16v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 89638*/    /*SwitchType*/ 9, MVT::v16i8,// ->89649
/* 89640*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89642*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV16v16i8), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64rev16:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (REV16v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 89649*/    0, // EndSwitchType
/* 89650*/  /*SwitchOpcode*/ 65, TARGET_VAL(AArch64ISD::REV32),// ->89718
/* 89653*/    OPC_RecordChild0, // #0 = $Rn
/* 89654*/    OPC_SwitchType /*6 cases */, 9, MVT::v8i8,// ->89666
/* 89657*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89659*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i8), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64rev32:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (REV32v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 89666*/    /*SwitchType*/ 9, MVT::v16i8,// ->89677
/* 89668*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89670*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v16i8), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64rev32:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (REV32v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 89677*/    /*SwitchType*/ 9, MVT::v4i16,// ->89688
/* 89679*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89681*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64rev32:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (REV32v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 89688*/    /*SwitchType*/ 9, MVT::v8i16,// ->89699
/* 89690*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89692*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64rev32:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (REV32v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 89699*/    /*SwitchType*/ 7, MVT::v4f16,// ->89708
/* 89701*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v4i16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (AArch64rev32:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (REV32v4i16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 89708*/    /*SwitchType*/ 7, MVT::v8f16,// ->89717
/* 89710*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV32v8i16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (AArch64rev32:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (REV32v8i16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 89717*/    0, // EndSwitchType
/* 89718*/  /*SwitchOpcode*/ 105, TARGET_VAL(AArch64ISD::REV64),// ->89826
/* 89721*/    OPC_RecordChild0, // #0 = $Rn
/* 89722*/    OPC_SwitchType /*10 cases */, 9, MVT::v8i8,// ->89734
/* 89725*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89727*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i8), 0,
                    MVT::v8i8, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (REV64v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn)
/* 89734*/    /*SwitchType*/ 9, MVT::v16i8,// ->89745
/* 89736*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89738*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v16i8), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (REV64v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn)
/* 89745*/    /*SwitchType*/ 9, MVT::v4i16,// ->89756
/* 89747*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89749*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                    MVT::v4i16, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (REV64v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn)
/* 89756*/    /*SwitchType*/ 9, MVT::v8i16,// ->89767
/* 89758*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89760*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (REV64v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn)
/* 89767*/    /*SwitchType*/ 9, MVT::v2i32,// ->89778
/* 89769*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89771*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                    MVT::v2i32, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (REV64v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn)
/* 89778*/    /*SwitchType*/ 9, MVT::v4i32,// ->89789
/* 89780*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89782*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (REV64v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn)
/* 89789*/    /*SwitchType*/ 7, MVT::v4f16,// ->89798
/* 89791*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i16), 0,
                    MVT::v4f16, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn) - Complexity = 3
                // Dst: (REV64v4i16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn)
/* 89798*/    /*SwitchType*/ 7, MVT::v8f16,// ->89807
/* 89800*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v8i16), 0,
                    MVT::v8f16, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn) - Complexity = 3
                // Dst: (REV64v8i16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn)
/* 89807*/    /*SwitchType*/ 7, MVT::v2f32,// ->89816
/* 89809*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v2i32), 0,
                    MVT::v2f32, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn) - Complexity = 3
                // Dst: (REV64v2i32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn)
/* 89816*/    /*SwitchType*/ 7, MVT::v4f32,// ->89825
/* 89818*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::REV64v4i32), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (AArch64rev64:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn) - Complexity = 3
                // Dst: (REV64v4i32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn)
/* 89825*/    0, // EndSwitchType
/* 89826*/  /*SwitchOpcode*/ 100, TARGET_VAL(AArch64ISD::CMEQ),// ->89929
/* 89829*/    OPC_RecordChild0, // #0 = $Rn
/* 89830*/    OPC_RecordChild1, // #1 = $Rm
/* 89831*/    OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->89844
/* 89834*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89836*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmeq:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (CMEQv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 89844*/    /*SwitchType*/ 10, MVT::v16i8,// ->89856
/* 89846*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89848*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmeq:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (CMEQv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 89856*/    /*SwitchType*/ 10, MVT::v4i16,// ->89868
/* 89858*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89860*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmeq:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (CMEQv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 89868*/    /*SwitchType*/ 10, MVT::v8i16,// ->89880
/* 89870*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89872*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmeq:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (CMEQv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 89880*/    /*SwitchType*/ 10, MVT::v2i32,// ->89892
/* 89882*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89884*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmeq:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (CMEQv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 89892*/    /*SwitchType*/ 10, MVT::v4i32,// ->89904
/* 89894*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89896*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmeq:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (CMEQv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 89904*/    /*SwitchType*/ 10, MVT::v2i64,// ->89916
/* 89906*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89908*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmeq:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (CMEQv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 89916*/    /*SwitchType*/ 10, MVT::v1i64,// ->89928
/* 89918*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89920*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMEQv1i64), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmeq:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 3
                // Dst: (CMEQv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 89928*/    0, // EndSwitchType
/* 89929*/  /*SwitchOpcode*/ 100, TARGET_VAL(AArch64ISD::CMGE),// ->90032
/* 89932*/    OPC_RecordChild0, // #0 = $Rn
/* 89933*/    OPC_RecordChild1, // #1 = $Rm
/* 89934*/    OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->89947
/* 89937*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89939*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmge:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (CMGEv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 89947*/    /*SwitchType*/ 10, MVT::v16i8,// ->89959
/* 89949*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89951*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmge:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (CMGEv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 89959*/    /*SwitchType*/ 10, MVT::v4i16,// ->89971
/* 89961*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89963*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmge:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (CMGEv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 89971*/    /*SwitchType*/ 10, MVT::v8i16,// ->89983
/* 89973*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89975*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmge:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (CMGEv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 89983*/    /*SwitchType*/ 10, MVT::v2i32,// ->89995
/* 89985*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89987*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmge:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (CMGEv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 89995*/    /*SwitchType*/ 10, MVT::v4i32,// ->90007
/* 89997*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 89999*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmge:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (CMGEv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90007*/    /*SwitchType*/ 10, MVT::v2i64,// ->90019
/* 90009*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90011*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmge:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (CMGEv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 90019*/    /*SwitchType*/ 10, MVT::v1i64,// ->90031
/* 90021*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90023*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGEv1i64), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmge:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 3
                // Dst: (CMGEv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 90031*/    0, // EndSwitchType
/* 90032*/  /*SwitchOpcode*/ 100, TARGET_VAL(AArch64ISD::CMGT),// ->90135
/* 90035*/    OPC_RecordChild0, // #0 = $Rn
/* 90036*/    OPC_RecordChild1, // #1 = $Rm
/* 90037*/    OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->90050
/* 90040*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90042*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmgt:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (CMGTv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90050*/    /*SwitchType*/ 10, MVT::v16i8,// ->90062
/* 90052*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90054*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmgt:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (CMGTv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90062*/    /*SwitchType*/ 10, MVT::v4i16,// ->90074
/* 90064*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90066*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmgt:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (CMGTv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90074*/    /*SwitchType*/ 10, MVT::v8i16,// ->90086
/* 90076*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90078*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmgt:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (CMGTv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90086*/    /*SwitchType*/ 10, MVT::v2i32,// ->90098
/* 90088*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90090*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmgt:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (CMGTv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90098*/    /*SwitchType*/ 10, MVT::v4i32,// ->90110
/* 90100*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90102*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmgt:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (CMGTv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90110*/    /*SwitchType*/ 10, MVT::v2i64,// ->90122
/* 90112*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90114*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmgt:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (CMGTv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 90122*/    /*SwitchType*/ 10, MVT::v1i64,// ->90134
/* 90124*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90126*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMGTv1i64), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmgt:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 3
                // Dst: (CMGTv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 90134*/    0, // EndSwitchType
/* 90135*/  /*SwitchOpcode*/ 100, TARGET_VAL(AArch64ISD::CMHI),// ->90238
/* 90138*/    OPC_RecordChild0, // #0 = $Rn
/* 90139*/    OPC_RecordChild1, // #1 = $Rm
/* 90140*/    OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->90153
/* 90143*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90145*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHIv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhi:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (CMHIv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90153*/    /*SwitchType*/ 10, MVT::v16i8,// ->90165
/* 90155*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90157*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHIv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhi:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (CMHIv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90165*/    /*SwitchType*/ 10, MVT::v4i16,// ->90177
/* 90167*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90169*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHIv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhi:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (CMHIv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90177*/    /*SwitchType*/ 10, MVT::v8i16,// ->90189
/* 90179*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90181*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHIv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhi:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (CMHIv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90189*/    /*SwitchType*/ 10, MVT::v2i32,// ->90201
/* 90191*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90193*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHIv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhi:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (CMHIv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90201*/    /*SwitchType*/ 10, MVT::v4i32,// ->90213
/* 90203*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90205*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHIv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhi:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (CMHIv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90213*/    /*SwitchType*/ 10, MVT::v2i64,// ->90225
/* 90215*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90217*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHIv2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhi:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (CMHIv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 90225*/    /*SwitchType*/ 10, MVT::v1i64,// ->90237
/* 90227*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90229*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHIv1i64), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhi:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 3
                // Dst: (CMHIv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 90237*/    0, // EndSwitchType
/* 90238*/  /*SwitchOpcode*/ 100, TARGET_VAL(AArch64ISD::CMHS),// ->90341
/* 90241*/    OPC_RecordChild0, // #0 = $Rn
/* 90242*/    OPC_RecordChild1, // #1 = $Rm
/* 90243*/    OPC_SwitchType /*8 cases */, 10, MVT::v8i8,// ->90256
/* 90246*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90248*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHSv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhs:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (CMHSv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90256*/    /*SwitchType*/ 10, MVT::v16i8,// ->90268
/* 90258*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90260*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHSv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhs:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (CMHSv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90268*/    /*SwitchType*/ 10, MVT::v4i16,// ->90280
/* 90270*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90272*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHSv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhs:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (CMHSv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90280*/    /*SwitchType*/ 10, MVT::v8i16,// ->90292
/* 90282*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90284*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHSv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhs:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (CMHSv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90292*/    /*SwitchType*/ 10, MVT::v2i32,// ->90304
/* 90294*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90296*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHSv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhs:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (CMHSv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90304*/    /*SwitchType*/ 10, MVT::v4i32,// ->90316
/* 90306*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90308*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHSv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhs:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (CMHSv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90316*/    /*SwitchType*/ 10, MVT::v2i64,// ->90328
/* 90318*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90320*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHSv2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhs:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (CMHSv2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 90328*/    /*SwitchType*/ 10, MVT::v1i64,// ->90340
/* 90330*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90332*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::CMHSv1i64), 0,
                    MVT::v1i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64cmhs:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm) - Complexity = 3
                // Dst: (CMHSv1i64:{ *:[v1i64] } FPR64:{ *:[v1i64] }:$Rn, FPR64:{ *:[v1i64] }:$Rm)
/* 90340*/    0, // EndSwitchType
/* 90341*/  /*SwitchOpcode*/ 76, TARGET_VAL(ISD::SMAX),// ->90420
/* 90344*/    OPC_RecordChild0, // #0 = $Rn
/* 90345*/    OPC_RecordChild1, // #1 = $Rm
/* 90346*/    OPC_SwitchType /*6 cases */, 10, MVT::v8i8,// ->90359
/* 90349*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90351*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (SMAXv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90359*/    /*SwitchType*/ 10, MVT::v16i8,// ->90371
/* 90361*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90363*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (SMAXv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90371*/    /*SwitchType*/ 10, MVT::v4i16,// ->90383
/* 90373*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90375*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (SMAXv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90383*/    /*SwitchType*/ 10, MVT::v8i16,// ->90395
/* 90385*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90387*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (SMAXv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90395*/    /*SwitchType*/ 10, MVT::v2i32,// ->90407
/* 90397*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90399*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (SMAXv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90407*/    /*SwitchType*/ 10, MVT::v4i32,// ->90419
/* 90409*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90411*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (SMAXv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90419*/    0, // EndSwitchType
/* 90420*/  /*SwitchOpcode*/ 76, TARGET_VAL(ISD::SMIN),// ->90499
/* 90423*/    OPC_RecordChild0, // #0 = $Rn
/* 90424*/    OPC_RecordChild1, // #1 = $Rm
/* 90425*/    OPC_SwitchType /*6 cases */, 10, MVT::v8i8,// ->90438
/* 90428*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90430*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (SMINv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90438*/    /*SwitchType*/ 10, MVT::v16i8,// ->90450
/* 90440*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90442*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (SMINv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90450*/    /*SwitchType*/ 10, MVT::v4i16,// ->90462
/* 90452*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90454*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (SMINv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90462*/    /*SwitchType*/ 10, MVT::v8i16,// ->90474
/* 90464*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90466*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (SMINv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90474*/    /*SwitchType*/ 10, MVT::v2i32,// ->90486
/* 90476*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90478*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (SMINv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90486*/    /*SwitchType*/ 10, MVT::v4i32,// ->90498
/* 90488*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90490*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (SMINv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90498*/    0, // EndSwitchType
/* 90499*/  /*SwitchOpcode*/ 76, TARGET_VAL(ISD::UMAX),// ->90578
/* 90502*/    OPC_RecordChild0, // #0 = $Rn
/* 90503*/    OPC_RecordChild1, // #1 = $Rm
/* 90504*/    OPC_SwitchType /*6 cases */, 10, MVT::v8i8,// ->90517
/* 90507*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90509*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (UMAXv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90517*/    /*SwitchType*/ 10, MVT::v16i8,// ->90529
/* 90519*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90521*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (UMAXv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90529*/    /*SwitchType*/ 10, MVT::v4i16,// ->90541
/* 90531*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90533*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (UMAXv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90541*/    /*SwitchType*/ 10, MVT::v8i16,// ->90553
/* 90543*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90545*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (UMAXv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90553*/    /*SwitchType*/ 10, MVT::v2i32,// ->90565
/* 90555*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90557*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (UMAXv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90565*/    /*SwitchType*/ 10, MVT::v4i32,// ->90577
/* 90567*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90569*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (UMAXv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90577*/    0, // EndSwitchType
/* 90578*/  /*SwitchOpcode*/ 76, TARGET_VAL(ISD::UMIN),// ->90657
/* 90581*/    OPC_RecordChild0, // #0 = $Rn
/* 90582*/    OPC_RecordChild1, // #1 = $Rm
/* 90583*/    OPC_SwitchType /*6 cases */, 10, MVT::v8i8,// ->90596
/* 90586*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90588*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINv8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (UMINv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90596*/    /*SwitchType*/ 10, MVT::v16i8,// ->90608
/* 90598*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90600*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINv16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (UMINv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90608*/    /*SwitchType*/ 10, MVT::v4i16,// ->90620
/* 90610*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90612*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINv4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (UMINv4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90620*/    /*SwitchType*/ 10, MVT::v8i16,// ->90632
/* 90622*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90624*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINv8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (UMINv8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90632*/    /*SwitchType*/ 10, MVT::v2i32,// ->90644
/* 90634*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90636*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (UMINv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90644*/    /*SwitchType*/ 10, MVT::v4i32,// ->90656
/* 90646*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90648*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINv4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (UMINv4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90656*/    0, // EndSwitchType
/* 90657*/  /*SwitchOpcode*/ 109, TARGET_VAL(AArch64ISD::BIT),// ->90769
/* 90660*/    OPC_RecordChild0, // #0 = $Rd
/* 90661*/    OPC_RecordChild1, // #1 = $Rn
/* 90662*/    OPC_RecordChild2, // #2 = $Rm
/* 90663*/    OPC_SwitchType /*8 cases */, 11, MVT::v8i8,// ->90677
/* 90666*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90668*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BITv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bit:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (BITv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90677*/    /*SwitchType*/ 11, MVT::v16i8,// ->90690
/* 90679*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90681*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BITv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bit:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (BITv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90690*/    /*SwitchType*/ 11, MVT::v4i16,// ->90703
/* 90692*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90694*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BITv8i8), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bit:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS) - Complexity = 3
                // Dst: (BITv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$LHS, V64:{ *:[v4i16] }:$MHS, V64:{ *:[v4i16] }:$RHS)
/* 90703*/    /*SwitchType*/ 11, MVT::v2i32,// ->90716
/* 90705*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90707*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BITv8i8), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bit:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS) - Complexity = 3
                // Dst: (BITv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$LHS, V64:{ *:[v2i32] }:$MHS, V64:{ *:[v2i32] }:$RHS)
/* 90716*/    /*SwitchType*/ 11, MVT::v1i64,// ->90729
/* 90718*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90720*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BITv8i8), 0,
                    MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bit:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS) - Complexity = 3
                // Dst: (BITv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$LHS, V64:{ *:[v1i64] }:$MHS, V64:{ *:[v1i64] }:$RHS)
/* 90729*/    /*SwitchType*/ 11, MVT::v8i16,// ->90742
/* 90731*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90733*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BITv16i8), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bit:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS) - Complexity = 3
                // Dst: (BITv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$LHS, V128:{ *:[v8i16] }:$MHS, V128:{ *:[v8i16] }:$RHS)
/* 90742*/    /*SwitchType*/ 11, MVT::v4i32,// ->90755
/* 90744*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90746*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BITv16i8), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bit:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS) - Complexity = 3
                // Dst: (BITv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$LHS, V128:{ *:[v4i32] }:$MHS, V128:{ *:[v4i32] }:$RHS)
/* 90755*/    /*SwitchType*/ 11, MVT::v2i64,// ->90768
/* 90757*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90759*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BITv16i8), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bit:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS) - Complexity = 3
                // Dst: (BITv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$LHS, V128:{ *:[v2i64] }:$MHS, V128:{ *:[v2i64] }:$RHS)
/* 90768*/    0, // EndSwitchType
/* 90769*/  /*SwitchOpcode*/ 93, TARGET_VAL(AArch64ISD::BSL),// ->90865
/* 90772*/    OPC_RecordChild0, // #0 = $Rd
/* 90773*/    OPC_RecordChild1, // #1 = $Rn
/* 90774*/    OPC_RecordChild2, // #2 = $Rm
/* 90775*/    OPC_SwitchType /*8 cases */, 9, MVT::v8i8,// ->90787
/* 90778*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bsl:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (BSLv8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rd, V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90787*/    /*SwitchType*/ 9, MVT::v4i16,// ->90798
/* 90789*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bsl:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (BSLv8i8:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rd, V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90798*/    /*SwitchType*/ 9, MVT::v2i32,// ->90809
/* 90800*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bsl:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (BSLv8i8:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rd, V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90809*/    /*SwitchType*/ 9, MVT::v1i64,// ->90820
/* 90811*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv8i8), 0,
                    MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bsl:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rd, V64:{ *:[v1i64] }:$Rn, V64:{ *:[v1i64] }:$Rm) - Complexity = 3
                // Dst: (BSLv8i8:{ *:[v1i64] } V64:{ *:[v1i64] }:$Rd, V64:{ *:[v1i64] }:$Rn, V64:{ *:[v1i64] }:$Rm)
/* 90820*/    /*SwitchType*/ 9, MVT::v16i8,// ->90831
/* 90822*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bsl:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (BSLv16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rd, V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90831*/    /*SwitchType*/ 9, MVT::v8i16,// ->90842
/* 90833*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bsl:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (BSLv16i8:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rd, V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90842*/    /*SwitchType*/ 9, MVT::v4i32,// ->90853
/* 90844*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bsl:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (BSLv16i8:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rd, V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90853*/    /*SwitchType*/ 9, MVT::v2i64,// ->90864
/* 90855*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::BSLv16i8), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (AArch64bsl:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (BSLv16i8:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rd, V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 90864*/    0, // EndSwitchType
/* 90865*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::TRN1),// ->91017
/* 90869*/    OPC_RecordChild0, // #0 = $Rn
/* 90870*/    OPC_RecordChild1, // #1 = $Rm
/* 90871*/    OPC_SwitchType /*12 cases */, 10, MVT::v8i8,// ->90884
/* 90874*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90876*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (TRN1v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 90884*/    /*SwitchType*/ 10, MVT::v16i8,// ->90896
/* 90886*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90888*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (TRN1v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 90896*/    /*SwitchType*/ 10, MVT::v4i16,// ->90908
/* 90898*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90900*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (TRN1v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 90908*/    /*SwitchType*/ 10, MVT::v8i16,// ->90920
/* 90910*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90912*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (TRN1v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 90920*/    /*SwitchType*/ 10, MVT::v2i32,// ->90932
/* 90922*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90924*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (TRN1v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 90932*/    /*SwitchType*/ 10, MVT::v4i32,// ->90944
/* 90934*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90936*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (TRN1v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 90944*/    /*SwitchType*/ 10, MVT::v2i64,// ->90956
/* 90946*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90948*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (TRN1v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 90956*/    /*SwitchType*/ 10, MVT::v4f16,// ->90968
/* 90958*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90960*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v4i16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (TRN1v4i16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 90968*/    /*SwitchType*/ 10, MVT::v8f16,// ->90980
/* 90970*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90972*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v8i16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (TRN1v8i16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 90980*/    /*SwitchType*/ 10, MVT::v2f32,// ->90992
/* 90982*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90984*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v2i32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (TRN1v2i32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 90992*/    /*SwitchType*/ 10, MVT::v4f32,// ->91004
/* 90994*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 90996*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v4i32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (TRN1v4i32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 91004*/    /*SwitchType*/ 10, MVT::v2f64,// ->91016
/* 91006*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91008*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN1v2i64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn1:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (TRN1v2i64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 91016*/    0, // EndSwitchType
/* 91017*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::TRN2),// ->91169
/* 91021*/    OPC_RecordChild0, // #0 = $Rn
/* 91022*/    OPC_RecordChild1, // #1 = $Rm
/* 91023*/    OPC_SwitchType /*12 cases */, 10, MVT::v8i8,// ->91036
/* 91026*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91028*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (TRN2v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 91036*/    /*SwitchType*/ 10, MVT::v16i8,// ->91048
/* 91038*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91040*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (TRN2v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 91048*/    /*SwitchType*/ 10, MVT::v4i16,// ->91060
/* 91050*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91052*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (TRN2v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 91060*/    /*SwitchType*/ 10, MVT::v8i16,// ->91072
/* 91062*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91064*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (TRN2v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 91072*/    /*SwitchType*/ 10, MVT::v2i32,// ->91084
/* 91074*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91076*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (TRN2v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 91084*/    /*SwitchType*/ 10, MVT::v4i32,// ->91096
/* 91086*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91088*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (TRN2v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 91096*/    /*SwitchType*/ 10, MVT::v2i64,// ->91108
/* 91098*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91100*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (TRN2v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 91108*/    /*SwitchType*/ 10, MVT::v4f16,// ->91120
/* 91110*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91112*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v4i16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (TRN2v4i16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 91120*/    /*SwitchType*/ 10, MVT::v8f16,// ->91132
/* 91122*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91124*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v8i16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (TRN2v8i16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 91132*/    /*SwitchType*/ 10, MVT::v2f32,// ->91144
/* 91134*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91136*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v2i32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (TRN2v2i32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 91144*/    /*SwitchType*/ 10, MVT::v4f32,// ->91156
/* 91146*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91148*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v4i32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (TRN2v4i32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 91156*/    /*SwitchType*/ 10, MVT::v2f64,// ->91168
/* 91158*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91160*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::TRN2v2i64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64trn2:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (TRN2v2i64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 91168*/    0, // EndSwitchType
/* 91169*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::UZP1),// ->91321
/* 91173*/    OPC_RecordChild0, // #0 = $Rn
/* 91174*/    OPC_RecordChild1, // #1 = $Rm
/* 91175*/    OPC_SwitchType /*12 cases */, 10, MVT::v8i8,// ->91188
/* 91178*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91180*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (UZP1v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 91188*/    /*SwitchType*/ 10, MVT::v16i8,// ->91200
/* 91190*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91192*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (UZP1v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 91200*/    /*SwitchType*/ 10, MVT::v4i16,// ->91212
/* 91202*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91204*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (UZP1v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 91212*/    /*SwitchType*/ 10, MVT::v8i16,// ->91224
/* 91214*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91216*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (UZP1v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 91224*/    /*SwitchType*/ 10, MVT::v2i32,// ->91236
/* 91226*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91228*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (UZP1v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 91236*/    /*SwitchType*/ 10, MVT::v4i32,// ->91248
/* 91238*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91240*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (UZP1v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 91248*/    /*SwitchType*/ 10, MVT::v2i64,// ->91260
/* 91250*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91252*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (UZP1v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 91260*/    /*SwitchType*/ 10, MVT::v4f16,// ->91272
/* 91262*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91264*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v4i16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (UZP1v4i16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 91272*/    /*SwitchType*/ 10, MVT::v8f16,// ->91284
/* 91274*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91276*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v8i16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (UZP1v8i16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 91284*/    /*SwitchType*/ 10, MVT::v2f32,// ->91296
/* 91286*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91288*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v2i32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (UZP1v2i32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 91296*/    /*SwitchType*/ 10, MVT::v4f32,// ->91308
/* 91298*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91300*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v4i32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (UZP1v4i32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 91308*/    /*SwitchType*/ 10, MVT::v2f64,// ->91320
/* 91310*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91312*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP1v2i64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp1:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (UZP1v2i64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 91320*/    0, // EndSwitchType
/* 91321*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::UZP2),// ->91473
/* 91325*/    OPC_RecordChild0, // #0 = $Rn
/* 91326*/    OPC_RecordChild1, // #1 = $Rm
/* 91327*/    OPC_SwitchType /*12 cases */, 10, MVT::v8i8,// ->91340
/* 91330*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91332*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (UZP2v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 91340*/    /*SwitchType*/ 10, MVT::v16i8,// ->91352
/* 91342*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91344*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (UZP2v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 91352*/    /*SwitchType*/ 10, MVT::v4i16,// ->91364
/* 91354*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91356*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (UZP2v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 91364*/    /*SwitchType*/ 10, MVT::v8i16,// ->91376
/* 91366*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91368*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (UZP2v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 91376*/    /*SwitchType*/ 10, MVT::v2i32,// ->91388
/* 91378*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91380*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (UZP2v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 91388*/    /*SwitchType*/ 10, MVT::v4i32,// ->91400
/* 91390*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91392*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (UZP2v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 91400*/    /*SwitchType*/ 10, MVT::v2i64,// ->91412
/* 91402*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91404*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (UZP2v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 91412*/    /*SwitchType*/ 10, MVT::v4f16,// ->91424
/* 91414*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91416*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v4i16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (UZP2v4i16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 91424*/    /*SwitchType*/ 10, MVT::v8f16,// ->91436
/* 91426*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91428*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v8i16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (UZP2v8i16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 91436*/    /*SwitchType*/ 10, MVT::v2f32,// ->91448
/* 91438*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91440*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v2i32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (UZP2v2i32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 91448*/    /*SwitchType*/ 10, MVT::v4f32,// ->91460
/* 91450*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91452*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v4i32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (UZP2v4i32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 91460*/    /*SwitchType*/ 10, MVT::v2f64,// ->91472
/* 91462*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91464*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UZP2v2i64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64uzp2:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (UZP2v2i64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 91472*/    0, // EndSwitchType
/* 91473*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::ZIP1),// ->91625
/* 91477*/    OPC_RecordChild0, // #0 = $Rn
/* 91478*/    OPC_RecordChild1, // #1 = $Rm
/* 91479*/    OPC_SwitchType /*12 cases */, 10, MVT::v8i8,// ->91492
/* 91482*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91484*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 91492*/    /*SwitchType*/ 10, MVT::v16i8,// ->91504
/* 91494*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91496*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 91504*/    /*SwitchType*/ 10, MVT::v4i16,// ->91516
/* 91506*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91508*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 91516*/    /*SwitchType*/ 10, MVT::v8i16,// ->91528
/* 91518*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91520*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 91528*/    /*SwitchType*/ 10, MVT::v2i32,// ->91540
/* 91530*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91532*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 91540*/    /*SwitchType*/ 10, MVT::v4i32,// ->91552
/* 91542*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91544*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 91552*/    /*SwitchType*/ 10, MVT::v2i64,// ->91564
/* 91554*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91556*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 91564*/    /*SwitchType*/ 10, MVT::v4f16,// ->91576
/* 91566*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91568*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v4i16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v4i16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 91576*/    /*SwitchType*/ 10, MVT::v8f16,// ->91588
/* 91578*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91580*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v8i16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v8i16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 91588*/    /*SwitchType*/ 10, MVT::v2f32,// ->91600
/* 91590*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91592*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v2i32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v2i32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 91600*/    /*SwitchType*/ 10, MVT::v4f32,// ->91612
/* 91602*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91604*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v4i32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v4i32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 91612*/    /*SwitchType*/ 10, MVT::v2f64,// ->91624
/* 91614*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91616*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP1v2i64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip1:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (ZIP1v2i64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 91624*/    0, // EndSwitchType
/* 91625*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::ZIP2),// ->91777
/* 91629*/    OPC_RecordChild0, // #0 = $Rn
/* 91630*/    OPC_RecordChild1, // #1 = $Rm
/* 91631*/    OPC_SwitchType /*12 cases */, 10, MVT::v8i8,// ->91644
/* 91634*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91636*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v8i8), 0,
                    MVT::v8i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v8i8:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn, V64:{ *:[v8i8] }:$Rm)
/* 91644*/    /*SwitchType*/ 10, MVT::v16i8,// ->91656
/* 91646*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91648*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v16i8), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v16i8:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn, V128:{ *:[v16i8] }:$Rm)
/* 91656*/    /*SwitchType*/ 10, MVT::v4i16,// ->91668
/* 91658*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91660*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v4i16), 0,
                    MVT::v4i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v4i16:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn, V64:{ *:[v4i16] }:$Rm)
/* 91668*/    /*SwitchType*/ 10, MVT::v8i16,// ->91680
/* 91670*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91672*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v8i16), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v8i16:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn, V128:{ *:[v8i16] }:$Rm)
/* 91680*/    /*SwitchType*/ 10, MVT::v2i32,// ->91692
/* 91682*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91684*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rm)
/* 91692*/    /*SwitchType*/ 10, MVT::v4i32,// ->91704
/* 91694*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91696*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v4i32), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v4i32:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn, V128:{ *:[v4i32] }:$Rm)
/* 91704*/    /*SwitchType*/ 10, MVT::v2i64,// ->91716
/* 91706*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91708*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v2i64), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v2i64:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn, V128:{ *:[v2i64] }:$Rm)
/* 91716*/    /*SwitchType*/ 10, MVT::v4f16,// ->91728
/* 91718*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91720*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v4i16), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v4i16:{ *:[v4f16] } V64:{ *:[v4f16] }:$Rn, V64:{ *:[v4f16] }:$Rm)
/* 91728*/    /*SwitchType*/ 10, MVT::v8f16,// ->91740
/* 91730*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91732*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v8i16), 0,
                    MVT::v8f16, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v8i16:{ *:[v8f16] } V128:{ *:[v8f16] }:$Rn, V128:{ *:[v8f16] }:$Rm)
/* 91740*/    /*SwitchType*/ 10, MVT::v2f32,// ->91752
/* 91742*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91744*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v2i32), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v2i32:{ *:[v2f32] } V64:{ *:[v2f32] }:$Rn, V64:{ *:[v2f32] }:$Rm)
/* 91752*/    /*SwitchType*/ 10, MVT::v4f32,// ->91764
/* 91754*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91756*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v4i32), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v4i32:{ *:[v4f32] } V128:{ *:[v4f32] }:$Rn, V128:{ *:[v4f32] }:$Rm)
/* 91764*/    /*SwitchType*/ 10, MVT::v2f64,// ->91776
/* 91766*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 91768*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ZIP2v2i64), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (AArch64zip2:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm) - Complexity = 3
                // Dst: (ZIP2v2i64:{ *:[v2f64] } V128:{ *:[v2f64] }:$Rn, V128:{ *:[v2f64] }:$Rm)
/* 91776*/    0, // EndSwitchType
/* 91777*/  /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(AArch64ISD::SADDV),// ->91956
/* 91781*/    OPC_RecordChild0, // #0 = $Rn
/* 91782*/    OPC_SwitchType /*7 cases */, 8, MVT::v2i32,// ->91793
/* 91785*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 0, 
                // Src: (AArch64saddv:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (ADDPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rn)
/* 91793*/    /*SwitchType*/ 25, MVT::v2i64,// ->91820
/* 91795*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 91801*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDPv2i64p), 0,
                    MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 91808*/      OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 91811*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2i64, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64saddv:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (ADDPv2i64p:{ *:[i64] } V128:{ *:[v2i64] }:$Rn), dsub:{ *:[i32] })
/* 91820*/    /*SwitchType*/ 25, MVT::v8i8,// ->91847
/* 91822*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 91828*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 91835*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 91838*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64saddv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (ADDVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] })
/* 91847*/    /*SwitchType*/ 25, MVT::v16i8,// ->91874
/* 91849*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 91855*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv16i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 91862*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 91865*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64saddv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] })
/* 91874*/    /*SwitchType*/ 25, MVT::v4i16,// ->91901
/* 91876*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 91882*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 91889*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 91892*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64saddv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (ADDVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] })
/* 91901*/    /*SwitchType*/ 25, MVT::v8i16,// ->91928
/* 91903*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 91909*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 91916*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 91919*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64saddv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (ADDVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] })
/* 91928*/    /*SwitchType*/ 25, MVT::v4i32,// ->91955
/* 91930*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 91936*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i32v), 0,
                    MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 91943*/      OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 91946*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64saddv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (ADDVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] })
/* 91955*/    0, // EndSwitchType
/* 91956*/  /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(AArch64ISD::UADDV),// ->92135
/* 91960*/    OPC_RecordChild0, // #0 = $Rn
/* 91961*/    OPC_SwitchType /*7 cases */, 8, MVT::v2i32,// ->91972
/* 91964*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::ADDPv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 0, 
                // Src: (AArch64uaddv:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (ADDPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rn)
/* 91972*/    /*SwitchType*/ 25, MVT::v2i64,// ->91999
/* 91974*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 91980*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDPv2i64p), 0,
                    MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 91987*/      OPC_EmitInteger, MVT::i32, AArch64::dsub,
/* 91990*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2i64, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uaddv:{ *:[v2i64] } V128:{ *:[v2i64] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (ADDPv2i64p:{ *:[i64] } V128:{ *:[v2i64] }:$Rn), dsub:{ *:[i32] })
/* 91999*/    /*SwitchType*/ 25, MVT::v8i8,// ->92026
/* 92001*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 92007*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92014*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92017*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uaddv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (ADDVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] })
/* 92026*/    /*SwitchType*/ 25, MVT::v16i8,// ->92053
/* 92028*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 92034*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv16i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92041*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92044*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uaddv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (ADDVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] })
/* 92053*/    /*SwitchType*/ 25, MVT::v4i16,// ->92080
/* 92055*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 92061*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92068*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92071*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uaddv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (ADDVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] })
/* 92080*/    /*SwitchType*/ 25, MVT::v8i16,// ->92107
/* 92082*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 92088*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv8i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92095*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92098*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uaddv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (ADDVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] })
/* 92107*/    /*SwitchType*/ 25, MVT::v4i32,// ->92134
/* 92109*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 92115*/      OPC_EmitNode1, TARGET_VAL(AArch64::ADDVv4i32v), 0,
                    MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 92122*/      OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 92125*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uaddv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (ADDVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] })
/* 92134*/    0, // EndSwitchType
/* 92135*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::SMAXV),// ->92287
/* 92139*/    OPC_RecordChild0, // #0 = $Rn
/* 92140*/    OPC_SwitchType /*6 cases */, 8, MVT::v2i32,// ->92151
/* 92143*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMAXPv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 0, 
                // Src: (AArch64smaxv:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (SMAXPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rn)
/* 92151*/    /*SwitchType*/ 25, MVT::v8i8,// ->92178
/* 92153*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 92159*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv8i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92166*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92169*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64smaxv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (SMAXVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] })
/* 92178*/    /*SwitchType*/ 25, MVT::v16i8,// ->92205
/* 92180*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 92186*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv16i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92193*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92196*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64smaxv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMAXVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] })
/* 92205*/    /*SwitchType*/ 25, MVT::v4i16,// ->92232
/* 92207*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 92213*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv4i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92220*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92223*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64smaxv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (SMAXVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] })
/* 92232*/    /*SwitchType*/ 25, MVT::v8i16,// ->92259
/* 92234*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 92240*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv8i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92247*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92250*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64smaxv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (SMAXVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] })
/* 92259*/    /*SwitchType*/ 25, MVT::v4i32,// ->92286
/* 92261*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 92267*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMAXVv4i32v), 0,
                    MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 92274*/      OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 92277*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64smaxv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (SMAXVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] })
/* 92286*/    0, // EndSwitchType
/* 92287*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::SMINV),// ->92439
/* 92291*/    OPC_RecordChild0, // #0 = $Rn
/* 92292*/    OPC_SwitchType /*6 cases */, 8, MVT::v2i32,// ->92303
/* 92295*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::SMINPv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 0, 
                // Src: (AArch64sminv:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (SMINPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rn)
/* 92303*/    /*SwitchType*/ 25, MVT::v8i8,// ->92330
/* 92305*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 92311*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv8i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92318*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92321*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64sminv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (SMINVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] })
/* 92330*/    /*SwitchType*/ 25, MVT::v16i8,// ->92357
/* 92332*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 92338*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv16i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92345*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92348*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64sminv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (SMINVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] })
/* 92357*/    /*SwitchType*/ 25, MVT::v4i16,// ->92384
/* 92359*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 92365*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv4i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92372*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92375*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64sminv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (SMINVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] })
/* 92384*/    /*SwitchType*/ 25, MVT::v8i16,// ->92411
/* 92386*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 92392*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv8i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92399*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92402*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64sminv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (SMINVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] })
/* 92411*/    /*SwitchType*/ 25, MVT::v4i32,// ->92438
/* 92413*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 92419*/      OPC_EmitNode1, TARGET_VAL(AArch64::SMINVv4i32v), 0,
                    MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 92426*/      OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 92429*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64sminv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (SMINVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] })
/* 92438*/    0, // EndSwitchType
/* 92439*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::UMAXV),// ->92591
/* 92443*/    OPC_RecordChild0, // #0 = $Rn
/* 92444*/    OPC_SwitchType /*6 cases */, 8, MVT::v2i32,// ->92455
/* 92447*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMAXPv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 0, 
                // Src: (AArch64umaxv:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (UMAXPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rn)
/* 92455*/    /*SwitchType*/ 25, MVT::v8i8,// ->92482
/* 92457*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 92463*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv8i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92470*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92473*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64umaxv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (UMAXVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] })
/* 92482*/    /*SwitchType*/ 25, MVT::v16i8,// ->92509
/* 92484*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 92490*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv16i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92497*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92500*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64umaxv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMAXVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] })
/* 92509*/    /*SwitchType*/ 25, MVT::v4i16,// ->92536
/* 92511*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 92517*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv4i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92524*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92527*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64umaxv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (UMAXVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] })
/* 92536*/    /*SwitchType*/ 25, MVT::v8i16,// ->92563
/* 92538*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 92544*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv8i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92551*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92554*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64umaxv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (UMAXVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] })
/* 92563*/    /*SwitchType*/ 25, MVT::v4i32,// ->92590
/* 92565*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 92571*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMAXVv4i32v), 0,
                    MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 92578*/      OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 92581*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64umaxv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (UMAXVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] })
/* 92590*/    0, // EndSwitchType
/* 92591*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(AArch64ISD::UMINV),// ->92743
/* 92595*/    OPC_RecordChild0, // #0 = $Rn
/* 92596*/    OPC_SwitchType /*6 cases */, 8, MVT::v2i32,// ->92607
/* 92599*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::UMINPv2i32), 0,
                    MVT::v2i32, 2/*#Ops*/, 0, 0, 
                // Src: (AArch64uminv:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn) - Complexity = 3
                // Dst: (UMINPv2i32:{ *:[v2i32] } V64:{ *:[v2i32] }:$Rn, V64:{ *:[v2i32] }:$Rn)
/* 92607*/    /*SwitchType*/ 25, MVT::v8i8,// ->92634
/* 92609*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #1
/* 92615*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv8i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92622*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92625*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uminv:{ *:[v8i8] } V64:{ *:[v8i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i8] } (IMPLICIT_DEF:{ *:[v8i8] }), (UMINVv8i8v:{ *:[Untyped] } V64:{ *:[v8i8] }:$Rn), bsub:{ *:[i32] })
/* 92634*/    /*SwitchType*/ 25, MVT::v16i8,// ->92661
/* 92636*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16i8, 0/*#Ops*/,  // Results = #1
/* 92642*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv16i8v), 0,
                    MVT::Untyped, 1/*#Ops*/, 0,  // Results = #2
/* 92649*/      OPC_EmitInteger, MVT::i32, AArch64::bsub,
/* 92652*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uminv:{ *:[v16i8] } V128:{ *:[v16i8] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), (UMINVv16i8v:{ *:[Untyped] } V128:{ *:[v16i8] }:$Rn), bsub:{ *:[i32] })
/* 92661*/    /*SwitchType*/ 25, MVT::v4i16,// ->92688
/* 92663*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i16, 0/*#Ops*/,  // Results = #1
/* 92669*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv4i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92676*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92679*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uminv:{ *:[v4i16] } V64:{ *:[v4i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i16] } (IMPLICIT_DEF:{ *:[v4i16] }), (UMINVv4i16v:{ *:[f16] } V64:{ *:[v4i16] }:$Rn), hsub:{ *:[i32] })
/* 92688*/    /*SwitchType*/ 25, MVT::v8i16,// ->92715
/* 92690*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i16, 0/*#Ops*/,  // Results = #1
/* 92696*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv8i16v), 0,
                    MVT::f16, 1/*#Ops*/, 0,  // Results = #2
/* 92703*/      OPC_EmitInteger, MVT::i32, AArch64::hsub,
/* 92706*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uminv:{ *:[v8i16] } V128:{ *:[v8i16] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), (UMINVv8i16v:{ *:[f16] } V128:{ *:[v8i16] }:$Rn), hsub:{ *:[i32] })
/* 92715*/    /*SwitchType*/ 25, MVT::v4i32,// ->92742
/* 92717*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 92723*/      OPC_EmitNode1, TARGET_VAL(AArch64::UMINVv4i32v), 0,
                    MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 92730*/      OPC_EmitInteger, MVT::i32, AArch64::ssub,
/* 92733*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (AArch64uminv:{ *:[v4i32] } V128:{ *:[v4i32] }:$Rn) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), (UMINVv4i32v:{ *:[i32] } V128:{ *:[v4i32] }:$Rn), ssub:{ *:[i32] })
/* 92742*/    0, // EndSwitchType
/* 92743*/  /*SwitchOpcode*/ 77, TARGET_VAL(AArch64ISD::FMOV),// ->92823
/* 92746*/    OPC_RecordChild0, // #0 = $imm8
/* 92747*/    OPC_MoveChild0,
/* 92748*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92751*/    OPC_CheckPredicate, 65, // Predicate_imm0_255
/* 92753*/    OPC_CheckType, MVT::i32,
/* 92755*/    OPC_MoveParent,
/* 92756*/    OPC_SwitchType /*5 cases */, 11, MVT::v2f64,// ->92770
/* 92759*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 92761*/      OPC_EmitConvertToTarget, 0,
/* 92763*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVv2f64_ns), 0,
                    MVT::v2f64, 1/*#Ops*/, 1, 
                // Src: (AArch64fmov:{ *:[v2f64] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                // Dst: (FMOVv2f64_ns:{ *:[v2f64] } (imm:{ *:[i32] }):$imm8)
/* 92770*/    /*SwitchType*/ 11, MVT::v2f32,// ->92783
/* 92772*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 92774*/      OPC_EmitConvertToTarget, 0,
/* 92776*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVv2f32_ns), 0,
                    MVT::v2f32, 1/*#Ops*/, 1, 
                // Src: (AArch64fmov:{ *:[v2f32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                // Dst: (FMOVv2f32_ns:{ *:[v2f32] } (imm:{ *:[i32] }):$imm8)
/* 92783*/    /*SwitchType*/ 11, MVT::v4f32,// ->92796
/* 92785*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasNEON())
/* 92787*/      OPC_EmitConvertToTarget, 0,
/* 92789*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVv4f32_ns), 0,
                    MVT::v4f32, 1/*#Ops*/, 1, 
                // Src: (AArch64fmov:{ *:[v4f32] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                // Dst: (FMOVv4f32_ns:{ *:[v4f32] } (imm:{ *:[i32] }):$imm8)
/* 92796*/    /*SwitchType*/ 11, MVT::v4f16,// ->92809
/* 92798*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 92800*/      OPC_EmitConvertToTarget, 0,
/* 92802*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVv4f16_ns), 0,
                    MVT::v4f16, 1/*#Ops*/, 1, 
                // Src: (AArch64fmov:{ *:[v4f16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                // Dst: (FMOVv4f16_ns:{ *:[v4f16] } (imm:{ *:[i32] }):$imm8)
/* 92809*/    /*SwitchType*/ 11, MVT::v8f16,// ->92822
/* 92811*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 92813*/      OPC_EmitConvertToTarget, 0,
/* 92815*/      OPC_MorphNodeTo1, TARGET_VAL(AArch64::FMOVv8f16_ns), 0,
                    MVT::v8f16, 1/*#Ops*/, 1, 
                // Src: (AArch64fmov:{ *:[v8f16] } (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                // Dst: (FMOVv8f16_ns:{ *:[v8f16] } (imm:{ *:[i32] }):$imm8)
/* 92822*/    0, // EndSwitchType
/* 92823*/  0, // EndSwitchOpcode
    0
  }; // Total Array size is 92825 bytes

  // Opcode Histogram:
  // #OPC_Scope                                = 1015
  // #OPC_RecordNode                           = 51
  // #OPC_RecordChild                          = 2878
  // #OPC_RecordMemRef                         = 24
  // #OPC_CaptureGlueInput                     = 5
  // #OPC_MoveChild                            = 1447
  // #OPC_MoveParent                           = 2627
  // #OPC_CheckSame                            = 0
  // #OPC_CheckChildSame                       = 137
  // #OPC_CheckPatternPredicate                = 2559
  // #OPC_CheckPredicate                       = 1505
  // #OPC_CheckOpcode                          = 1331
  // #OPC_SwitchOpcode                         = 90
  // #OPC_CheckType                            = 1946
  // #OPC_SwitchType                           = 629
  // #OPC_CheckChildType                       = 2279
  // #OPC_CheckInteger                         = 0
  // #OPC_CheckChildInteger                    = 664
  // #OPC_CheckCondCode                        = 0
  // #OPC_CheckValueType                       = 30
  // #OPC_CheckComplexPat                      = 558
  // #OPC_CheckAndImm                          = 19
  // #OPC_CheckOrImm                           = 0
  // #OPC_CheckFoldableChainNode               = 8
  // #OPC_EmitInteger                          = 360
  // #OPC_EmitStringInteger                    = 679
  // #OPC_EmitRegister                         = 91
  // #OPC_EmitConvertToTarget                  = 873
  // #OPC_EmitMergeInputChains                 = 860
  // #OPC_EmitCopyToReg                        = 56
  // #OPC_EmitNode                             = 1080
  // #OPC_EmitNodeXForm                        = 78
  // #OPC_CompleteMatch                        = 184
  // #OPC_MorphNodeTo                          = 4009

  #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->isLittleEndian());
  case 1: return (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize());
  case 2: return (Subtarget->isLittleEndian()) && (!Subtarget->isSTRQroSlow() || MF->getFunction().optForSize());
  case 3: return (Subtarget->hasNEON()) && (Subtarget->hasRDM());
  case 4: return (Subtarget->hasNEON());
  case 5: return (Subtarget->hasRDM());
  case 6: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON());
  case 7: return (Subtarget->hasCRC());
  case 8: return (Subtarget->hasFullFP16());
  case 9: return (Subtarget->hasFPARMv8());
  case 10: return (Subtarget->hasSHA2());
  case 11: return (Subtarget->hasDotProd());
  case 12: return (Subtarget->hasFuseAES());
  case 13: return (Subtarget->hasAES());
  case 14: return (Subtarget->hasLSE());
  case 15: return (Subtarget->hasPerfMon());
  case 16: return (!Subtarget->isLittleEndian());
  case 17: return (!MF->getFunction().optForSize());
  case 18: return (!MF->getFunction().optForSize()) && (Subtarget->useAlternateSExtLoadCVTF32Pattern());
  }
}
#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_unindexedstore
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
return true;

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

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

  }
  case 3: { 
    // Predicate_VectorIndexH
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return ((uint64_t)Imm) < 8; 
  }
  case 4: { 
    // Predicate_store
    // Predicate_istore
    SDNode *N = Node;
 if (cast<StoreSDNode>(N)->isTruncatingStore()) return false;
return true;

  }
  case 5: { 
    // Predicate_VectorIndexS
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return ((uint64_t)Imm) < 4; 
  }
  case 6: { 
    // Predicate_VectorIndexD
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return ((uint64_t)Imm) < 2; 
  }
  case 7: { 
    // Predicate_VectorIndexB
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return ((uint64_t)Imm) < 16; 
  }
  case 8: { 
    // Predicate_truncstorei8
    // Predicate_post_truncsti8
    // Predicate_pre_truncsti8
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 9: { 
    // Predicate_truncstorei32
    // Predicate_pre_truncsti32
    // Predicate_post_truncsti32
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i32) return false;
return true;

  }
  case 10: { 
    // Predicate_nontemporalstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->isNonTemporal();

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

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

  }
  case 12: { 
    // Predicate_simm9
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm >= -256 && Imm < 256; 
  }
  case 13: { 
    // Predicate_pre_store
    // Predicate_pre_truncst
    SDNode *N = Node;

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

  }
  case 14: { 
    // Predicate_vecshiftR32
    // Predicate_vecshiftR64Narrow
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return (((uint32_t)Imm) > 0) && (((uint32_t)Imm) < 33);

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

  return (((uint32_t)Imm) > 0) && (((uint32_t)Imm) < 65);

  }
  case 16: { 
    // Predicate_vecshiftR16Narrow
    // Predicate_vecshiftR8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return (((uint32_t)Imm) > 0) && (((uint32_t)Imm) < 9);

  }
  case 17: { 
    // Predicate_vecshiftR32Narrow
    // Predicate_vecshiftR16
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return (((uint32_t)Imm) > 0) && (((uint32_t)Imm) < 17);

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

  return (((uint32_t)Imm) < 8);

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

  return (((uint32_t)Imm) < 16);

  }
  case 20: { 
    // Predicate_vecshiftL32
    // Predicate_tbz_imm0_31_diag
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return (((uint32_t)Imm) < 32);

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

  return (((uint32_t)Imm) < 64);

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

  return ((uint64_t)Imm) < 8;

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

  return ((uint64_t)Imm) < 16;

  }
  case 24: { 
    // Predicate_imm0_31
    // Predicate_imm32_0_31
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return ((uint64_t)Imm) < 32;

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

  return ((uint64_t)Imm) < 64;

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

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

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

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

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

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

  }
  case 32: { 
    // Predicate_sextloadi32
    // Predicate_extloadi32
    // Predicate_zextloadi32
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT() != MVT::i32) return false;
return true;

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

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

  }
  case 35: { 
    // Predicate_maski8_or_more
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return (Imm & 0xff) == 0xff; 
  }
  case 36: { 
    // Predicate_maski16_or_more
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return (Imm & 0xffff) == 0xffff; 
  }
  case 37: { 
    // Predicate_ldxr_1
    // Predicate_ldaxr_1
    // Predicate_stxr_1
    // Predicate_stlxr_1
    SDNode *N = Node;

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

  }
  case 38: { 
    // Predicate_ldxr_2
    // Predicate_ldaxr_2
    // Predicate_stxr_2
    // Predicate_stlxr_2
    SDNode *N = Node;

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

  }
  case 39: { 
    // Predicate_ldxr_4
    // Predicate_ldaxr_4
    // Predicate_stxr_4
    // Predicate_stlxr_4
    SDNode *N = Node;

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

  }
  case 40: { 
    // Predicate_logical_imm32
    const APInt & Imm = cast<ConstantSDNode>(Node)->getAPIntValue();

  return AArch64_AM::isLogicalImmediate(Imm.getZExtValue(), 32);

  }
  case 41: { 
    // Predicate_logical_imm64
    const APInt & Imm = cast<ConstantSDNode>(Node)->getAPIntValue();

  return AArch64_AM::isLogicalImmediate(Imm.getZExtValue(), 64);

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

  return ISD::isBuildVectorAllOnes(N);

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

  int64_t Imm64 = static_cast<int64_t>(Imm);
  return Imm64 >= std::numeric_limits<int32_t>::min() &&
         Imm64 <= std::numeric_limits<int32_t>::max();

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

  return (Imm & 0xffffffffULL) == static_cast<uint64_t>(Imm);

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

  return ISD::isBuildVectorAllZeros(N);

  }
  case 46: { 
    // Predicate_stxr_8
    // Predicate_stlxr_8
    // Predicate_ldxr_8
    // Predicate_ldaxr_8
    SDNode *N = Node;

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

  }
  case 47: { 
    // Predicate_atomic_load_8
    // Predicate_atomic_store_8
    // Predicate_atomic_load_add_8
    // Predicate_atomic_load_or_8
    // Predicate_atomic_load_xor_8
    // Predicate_atomic_load_clr_8
    // Predicate_atomic_load_max_8
    // Predicate_atomic_load_min_8
    // Predicate_atomic_load_umax_8
    // Predicate_atomic_load_umin_8
    // Predicate_atomic_swap_8
    // Predicate_atomic_cmp_swap_8
    // Predicate_atomic_load_sub_8
    // Predicate_atomic_load_and_8
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 48: { 
    // Predicate_anonymous_4549
    // Predicate_anonymous_4556
    // Predicate_anonymous_4563
    // Predicate_anonymous_4570
    SDNode *N = Node;
if (isAcquireOrStronger(cast<AtomicSDNode>(N)->getOrdering())) return false;
return true;

  }
  case 49: { 
    // Predicate_atomic_load_16
    // Predicate_atomic_store_16
    // Predicate_atomic_load_add_16
    // Predicate_atomic_load_or_16
    // Predicate_atomic_load_xor_16
    // Predicate_atomic_load_clr_16
    // Predicate_atomic_load_max_16
    // Predicate_atomic_load_min_16
    // Predicate_atomic_load_umax_16
    // Predicate_atomic_load_umin_16
    // Predicate_atomic_swap_16
    // Predicate_atomic_cmp_swap_16
    // Predicate_atomic_load_sub_16
    // Predicate_atomic_load_and_16
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

  }
  case 50: { 
    // Predicate_atomic_load_32
    // Predicate_atomic_store_32
    // Predicate_atomic_load_add_32
    // Predicate_atomic_load_or_32
    // Predicate_atomic_load_xor_32
    // Predicate_atomic_load_clr_32
    // Predicate_atomic_load_max_32
    // Predicate_atomic_load_min_32
    // Predicate_atomic_load_umax_32
    // Predicate_atomic_load_umin_32
    // Predicate_atomic_swap_32
    // Predicate_atomic_cmp_swap_32
    // Predicate_atomic_load_sub_32
    // Predicate_atomic_load_and_32
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i32) return false;
return true;

  }
  case 51: { 
    // Predicate_atomic_load_64
    // Predicate_atomic_store_64
    // Predicate_atomic_load_add_64
    // Predicate_atomic_load_or_64
    // Predicate_atomic_load_xor_64
    // Predicate_atomic_load_clr_64
    // Predicate_atomic_load_max_64
    // Predicate_atomic_load_min_64
    // Predicate_atomic_load_umax_64
    // Predicate_atomic_load_umin_64
    // Predicate_atomic_swap_64
    // Predicate_atomic_cmp_swap_64
    // Predicate_atomic_load_sub_64
    // Predicate_atomic_load_and_64
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i64) return false;
return true;

  }
  case 52: { 
    // Predicate_anonymous_4547
    // Predicate_anonymous_4554
    // Predicate_anonymous_4561
    // Predicate_anonymous_4568
    SDNode *N = Node;
if (!isAcquireOrStronger(cast<AtomicSDNode>(N)->getOrdering())) return false;
return true;

  }
  case 53: { 
    // Predicate_anonymous_4577
    // Predicate_anonymous_4584
    // Predicate_anonymous_4591
    // Predicate_anonymous_4598
    SDNode *N = Node;
if (isReleaseOrStronger(cast<AtomicSDNode>(N)->getOrdering())) return false;
return true;

  }
  case 54: { 
    // Predicate_anonymous_4575
    // Predicate_anonymous_4582
    // Predicate_anonymous_4589
    // Predicate_anonymous_4596
    SDNode *N = Node;
if (!isReleaseOrStronger(cast<AtomicSDNode>(N)->getOrdering())) return false;
return true;

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

  return ((uint32_t)Imm) < 128;

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

  return ((uint32_t)Imm) < 16;

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

  return (((uint32_t)Imm) > 31) && (((uint32_t)Imm) < 64);

  }
  case 58: { 
    // Predicate_fpimm0
    const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();

  return Imm.isExactlyValue(+0.0);

  }
  case 59: { 
    // Predicate_def32
    SDNode *N = Node;

  return isDef32(*N);

  }
  case 60: { 
    // Predicate_atomic_load_add_64_monotonic
    // Predicate_atomic_load_add_32_monotonic
    // Predicate_atomic_load_add_16_monotonic
    // Predicate_atomic_load_add_8_monotonic
    // Predicate_atomic_load_or_64_monotonic
    // Predicate_atomic_load_or_32_monotonic
    // Predicate_atomic_load_or_16_monotonic
    // Predicate_atomic_load_or_8_monotonic
    // Predicate_atomic_load_xor_64_monotonic
    // Predicate_atomic_load_xor_32_monotonic
    // Predicate_atomic_load_xor_16_monotonic
    // Predicate_atomic_load_xor_8_monotonic
    // Predicate_atomic_load_clr_64_monotonic
    // Predicate_atomic_load_clr_32_monotonic
    // Predicate_atomic_load_clr_16_monotonic
    // Predicate_atomic_load_clr_8_monotonic
    // Predicate_atomic_load_max_64_monotonic
    // Predicate_atomic_load_max_32_monotonic
    // Predicate_atomic_load_max_16_monotonic
    // Predicate_atomic_load_max_8_monotonic
    // Predicate_atomic_load_min_64_monotonic
    // Predicate_atomic_load_min_32_monotonic
    // Predicate_atomic_load_min_16_monotonic
    // Predicate_atomic_load_min_8_monotonic
    // Predicate_atomic_load_umax_64_monotonic
    // Predicate_atomic_load_umax_32_monotonic
    // Predicate_atomic_load_umax_16_monotonic
    // Predicate_atomic_load_umax_8_monotonic
    // Predicate_atomic_load_umin_64_monotonic
    // Predicate_atomic_load_umin_32_monotonic
    // Predicate_atomic_load_umin_16_monotonic
    // Predicate_atomic_load_umin_8_monotonic
    // Predicate_atomic_swap_64_monotonic
    // Predicate_atomic_swap_32_monotonic
    // Predicate_atomic_swap_16_monotonic
    // Predicate_atomic_swap_8_monotonic
    // Predicate_atomic_cmp_swap_64_monotonic
    // Predicate_atomic_cmp_swap_32_monotonic
    // Predicate_atomic_cmp_swap_16_monotonic
    // Predicate_atomic_cmp_swap_8_monotonic
    // Predicate_atomic_load_sub_64_monotonic
    // Predicate_atomic_load_sub_32_monotonic
    // Predicate_atomic_load_sub_16_monotonic
    // Predicate_atomic_load_sub_8_monotonic
    // Predicate_atomic_load_and_64_monotonic
    // Predicate_atomic_load_and_32_monotonic
    // Predicate_atomic_load_and_16_monotonic
    // Predicate_atomic_load_and_8_monotonic
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::Monotonic) return false;
return true;

  }
  case 61: { 
    // Predicate_atomic_load_add_64_acquire
    // Predicate_atomic_load_add_32_acquire
    // Predicate_atomic_load_add_16_acquire
    // Predicate_atomic_load_add_8_acquire
    // Predicate_atomic_load_or_64_acquire
    // Predicate_atomic_load_or_32_acquire
    // Predicate_atomic_load_or_16_acquire
    // Predicate_atomic_load_or_8_acquire
    // Predicate_atomic_load_xor_64_acquire
    // Predicate_atomic_load_xor_32_acquire
    // Predicate_atomic_load_xor_16_acquire
    // Predicate_atomic_load_xor_8_acquire
    // Predicate_atomic_load_clr_64_acquire
    // Predicate_atomic_load_clr_32_acquire
    // Predicate_atomic_load_clr_16_acquire
    // Predicate_atomic_load_clr_8_acquire
    // Predicate_atomic_load_max_64_acquire
    // Predicate_atomic_load_max_32_acquire
    // Predicate_atomic_load_max_16_acquire
    // Predicate_atomic_load_max_8_acquire
    // Predicate_atomic_load_min_64_acquire
    // Predicate_atomic_load_min_32_acquire
    // Predicate_atomic_load_min_16_acquire
    // Predicate_atomic_load_min_8_acquire
    // Predicate_atomic_load_umax_64_acquire
    // Predicate_atomic_load_umax_32_acquire
    // Predicate_atomic_load_umax_16_acquire
    // Predicate_atomic_load_umax_8_acquire
    // Predicate_atomic_load_umin_64_acquire
    // Predicate_atomic_load_umin_32_acquire
    // Predicate_atomic_load_umin_16_acquire
    // Predicate_atomic_load_umin_8_acquire
    // Predicate_atomic_swap_64_acquire
    // Predicate_atomic_swap_32_acquire
    // Predicate_atomic_swap_16_acquire
    // Predicate_atomic_swap_8_acquire
    // Predicate_atomic_cmp_swap_64_acquire
    // Predicate_atomic_cmp_swap_32_acquire
    // Predicate_atomic_cmp_swap_16_acquire
    // Predicate_atomic_cmp_swap_8_acquire
    // Predicate_atomic_load_sub_64_acquire
    // Predicate_atomic_load_sub_32_acquire
    // Predicate_atomic_load_sub_16_acquire
    // Predicate_atomic_load_sub_8_acquire
    // Predicate_atomic_load_and_64_acquire
    // Predicate_atomic_load_and_32_acquire
    // Predicate_atomic_load_and_16_acquire
    // Predicate_atomic_load_and_8_acquire
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::Acquire) return false;
return true;

  }
  case 62: { 
    // Predicate_atomic_load_add_64_release
    // Predicate_atomic_load_add_32_release
    // Predicate_atomic_load_add_16_release
    // Predicate_atomic_load_add_8_release
    // Predicate_atomic_load_or_64_release
    // Predicate_atomic_load_or_32_release
    // Predicate_atomic_load_or_16_release
    // Predicate_atomic_load_or_8_release
    // Predicate_atomic_load_xor_64_release
    // Predicate_atomic_load_xor_32_release
    // Predicate_atomic_load_xor_16_release
    // Predicate_atomic_load_xor_8_release
    // Predicate_atomic_load_clr_64_release
    // Predicate_atomic_load_clr_32_release
    // Predicate_atomic_load_clr_16_release
    // Predicate_atomic_load_clr_8_release
    // Predicate_atomic_load_max_64_release
    // Predicate_atomic_load_max_32_release
    // Predicate_atomic_load_max_16_release
    // Predicate_atomic_load_max_8_release
    // Predicate_atomic_load_min_64_release
    // Predicate_atomic_load_min_32_release
    // Predicate_atomic_load_min_16_release
    // Predicate_atomic_load_min_8_release
    // Predicate_atomic_load_umax_64_release
    // Predicate_atomic_load_umax_32_release
    // Predicate_atomic_load_umax_16_release
    // Predicate_atomic_load_umax_8_release
    // Predicate_atomic_load_umin_64_release
    // Predicate_atomic_load_umin_32_release
    // Predicate_atomic_load_umin_16_release
    // Predicate_atomic_load_umin_8_release
    // Predicate_atomic_swap_64_release
    // Predicate_atomic_swap_32_release
    // Predicate_atomic_swap_16_release
    // Predicate_atomic_swap_8_release
    // Predicate_atomic_cmp_swap_64_release
    // Predicate_atomic_cmp_swap_32_release
    // Predicate_atomic_cmp_swap_16_release
    // Predicate_atomic_cmp_swap_8_release
    // Predicate_atomic_load_sub_64_release
    // Predicate_atomic_load_sub_32_release
    // Predicate_atomic_load_sub_16_release
    // Predicate_atomic_load_sub_8_release
    // Predicate_atomic_load_and_64_release
    // Predicate_atomic_load_and_32_release
    // Predicate_atomic_load_and_16_release
    // Predicate_atomic_load_and_8_release
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::Release) return false;
return true;

  }
  case 63: { 
    // Predicate_atomic_load_add_64_acq_rel
    // Predicate_atomic_load_add_32_acq_rel
    // Predicate_atomic_load_add_16_acq_rel
    // Predicate_atomic_load_add_8_acq_rel
    // Predicate_atomic_load_or_64_acq_rel
    // Predicate_atomic_load_or_32_acq_rel
    // Predicate_atomic_load_or_16_acq_rel
    // Predicate_atomic_load_or_8_acq_rel
    // Predicate_atomic_load_xor_64_acq_rel
    // Predicate_atomic_load_xor_32_acq_rel
    // Predicate_atomic_load_xor_16_acq_rel
    // Predicate_atomic_load_xor_8_acq_rel
    // Predicate_atomic_load_clr_64_acq_rel
    // Predicate_atomic_load_clr_32_acq_rel
    // Predicate_atomic_load_clr_16_acq_rel
    // Predicate_atomic_load_clr_8_acq_rel
    // Predicate_atomic_load_max_64_acq_rel
    // Predicate_atomic_load_max_32_acq_rel
    // Predicate_atomic_load_max_16_acq_rel
    // Predicate_atomic_load_max_8_acq_rel
    // Predicate_atomic_load_min_64_acq_rel
    // Predicate_atomic_load_min_32_acq_rel
    // Predicate_atomic_load_min_16_acq_rel
    // Predicate_atomic_load_min_8_acq_rel
    // Predicate_atomic_load_umax_64_acq_rel
    // Predicate_atomic_load_umax_32_acq_rel
    // Predicate_atomic_load_umax_16_acq_rel
    // Predicate_atomic_load_umax_8_acq_rel
    // Predicate_atomic_load_umin_64_acq_rel
    // Predicate_atomic_load_umin_32_acq_rel
    // Predicate_atomic_load_umin_16_acq_rel
    // Predicate_atomic_load_umin_8_acq_rel
    // Predicate_atomic_swap_64_acq_rel
    // Predicate_atomic_swap_32_acq_rel
    // Predicate_atomic_swap_16_acq_rel
    // Predicate_atomic_swap_8_acq_rel
    // Predicate_atomic_cmp_swap_64_acq_rel
    // Predicate_atomic_cmp_swap_32_acq_rel
    // Predicate_atomic_cmp_swap_16_acq_rel
    // Predicate_atomic_cmp_swap_8_acq_rel
    // Predicate_atomic_load_sub_64_acq_rel
    // Predicate_atomic_load_sub_32_acq_rel
    // Predicate_atomic_load_sub_16_acq_rel
    // Predicate_atomic_load_sub_8_acq_rel
    // Predicate_atomic_load_and_64_acq_rel
    // Predicate_atomic_load_and_32_acq_rel
    // Predicate_atomic_load_and_16_acq_rel
    // Predicate_atomic_load_and_8_acq_rel
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::AcquireRelease) return false;
return true;

  }
  case 64: { 
    // Predicate_atomic_load_add_64_seq_cst
    // Predicate_atomic_load_add_32_seq_cst
    // Predicate_atomic_load_add_16_seq_cst
    // Predicate_atomic_load_add_8_seq_cst
    // Predicate_atomic_load_or_64_seq_cst
    // Predicate_atomic_load_or_32_seq_cst
    // Predicate_atomic_load_or_16_seq_cst
    // Predicate_atomic_load_or_8_seq_cst
    // Predicate_atomic_load_xor_64_seq_cst
    // Predicate_atomic_load_xor_32_seq_cst
    // Predicate_atomic_load_xor_16_seq_cst
    // Predicate_atomic_load_xor_8_seq_cst
    // Predicate_atomic_load_clr_64_seq_cst
    // Predicate_atomic_load_clr_32_seq_cst
    // Predicate_atomic_load_clr_16_seq_cst
    // Predicate_atomic_load_clr_8_seq_cst
    // Predicate_atomic_load_max_64_seq_cst
    // Predicate_atomic_load_max_32_seq_cst
    // Predicate_atomic_load_max_16_seq_cst
    // Predicate_atomic_load_max_8_seq_cst
    // Predicate_atomic_load_min_64_seq_cst
    // Predicate_atomic_load_min_32_seq_cst
    // Predicate_atomic_load_min_16_seq_cst
    // Predicate_atomic_load_min_8_seq_cst
    // Predicate_atomic_load_umax_64_seq_cst
    // Predicate_atomic_load_umax_32_seq_cst
    // Predicate_atomic_load_umax_16_seq_cst
    // Predicate_atomic_load_umax_8_seq_cst
    // Predicate_atomic_load_umin_64_seq_cst
    // Predicate_atomic_load_umin_32_seq_cst
    // Predicate_atomic_load_umin_16_seq_cst
    // Predicate_atomic_load_umin_8_seq_cst
    // Predicate_atomic_swap_64_seq_cst
    // Predicate_atomic_swap_32_seq_cst
    // Predicate_atomic_swap_16_seq_cst
    // Predicate_atomic_swap_8_seq_cst
    // Predicate_atomic_cmp_swap_64_seq_cst
    // Predicate_atomic_cmp_swap_32_seq_cst
    // Predicate_atomic_cmp_swap_16_seq_cst
    // Predicate_atomic_cmp_swap_8_seq_cst
    // Predicate_atomic_load_sub_64_seq_cst
    // Predicate_atomic_load_sub_32_seq_cst
    // Predicate_atomic_load_sub_16_seq_cst
    // Predicate_atomic_load_sub_8_seq_cst
    // Predicate_atomic_load_and_64_seq_cst
    // Predicate_atomic_load_and_32_seq_cst
    // Predicate_atomic_load_and_16_seq_cst
    // Predicate_atomic_load_and_8_seq_cst
    SDNode *N = Node;
if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::SequentiallyConsistent) return false;
return true;

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

  return ((uint32_t)Imm) < 256;

  }
  case 66: { 
    // Predicate_fpimm16
    const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();

      return AArch64_AM::getFP16Imm(Imm) != -1;
    
  }
  case 67: { 
    // Predicate_fpimm32
    const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();

      return AArch64_AM::getFP32Imm(Imm) != -1;
    
  }
  case 68: { 
    // Predicate_fpimm64
    const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();

      return AArch64_AM::getFP64Imm(Imm) != -1;
    
  }
  case 69: { 
    // Predicate_simdimmtype10
    const APFloat & Imm = cast<ConstantFPSDNode>(Node)->getValueAPF();

      return AArch64_AM::isAdvSIMDModImmType10(
                 Imm.bitcastToAPInt().getZExtValue());
    
  }
  }
}
#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+4);
  return SelectAddrModeWRO<16>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 1:
    Result.resize(NextRes+4);
  return SelectAddrModeXRO<16>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 2:
    Result.resize(NextRes+2);
  return SelectAddrModeIndexed16(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 3:
    Result.resize(NextRes+2);
  return SelectAddrModeUnscaled128(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 4:
    Result.resize(NextRes+4);
  return SelectAddrModeWRO<32>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 5:
    Result.resize(NextRes+4);
  return SelectAddrModeXRO<32>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 6:
    Result.resize(NextRes+2);
  return SelectAddrModeIndexed32(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 7:
    Result.resize(NextRes+4);
  return SelectAddrModeWRO<64>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 8:
    Result.resize(NextRes+4);
  return SelectAddrModeXRO<64>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 9:
    Result.resize(NextRes+2);
  return SelectAddrModeIndexed64(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 10:
    Result.resize(NextRes+4);
  return SelectAddrModeWRO<8>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 11:
    Result.resize(NextRes+4);
  return SelectAddrModeXRO<8>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 12:
    Result.resize(NextRes+2);
  return SelectAddrModeIndexed8(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 13:
    Result.resize(NextRes+2);
  return SelectAddrModeIndexed7S32(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 14:
    Result.resize(NextRes+4);
  return SelectAddrModeWRO<128>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 15:
    Result.resize(NextRes+4);
  return SelectAddrModeXRO<128>(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first);
  case 16:
    Result.resize(NextRes+2);
  return SelectAddrModeIndexed128(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 17:
    Result.resize(NextRes+2);
  return SelectAddrModeUnscaled64(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 18:
    Result.resize(NextRes+2);
  return SelectAddrModeIndexed7S64(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 19:
    Result.resize(NextRes+2);
  return SelectAddrModeUnscaled32(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 20:
    Result.resize(NextRes+2);
  return SelectAddrModeUnscaled16(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 21:
    Result.resize(NextRes+2);
  return SelectAddrModeUnscaled8(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 22:
    Result.resize(NextRes+1);
  return SelectCVTFixedPosOperand<32>(N, Result[NextRes+0].first);
  case 23:
    Result.resize(NextRes+1);
  return SelectCVTFixedPosOperand<64>(N, Result[NextRes+0].first);
  case 24:
    Result.resize(NextRes+1);
  return SelectCVTFixedPosOperand<32>(N, Result[NextRes+0].first);
  case 25:
    Result.resize(NextRes+1);
  return SelectCVTFixedPosOperand<64>(N, Result[NextRes+0].first);
  case 26:
    Result.resize(NextRes+1);
  return SelectCVTFixedPosOperand<32>(N, Result[NextRes+0].first);
  case 27:
    Result.resize(NextRes+1);
  return SelectCVTFixedPosOperand<64>(N, Result[NextRes+0].first);
  case 28:
    Result.resize(NextRes+2);
  return SelectLogicalShiftedRegister(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 29:
    Result.resize(NextRes+2);
  return SelectLogicalShiftedRegister(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 30:
    Result.resize(NextRes+2);
  return SelectArithExtendedRegister(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 31:
    Result.resize(NextRes+2);
  return SelectNegArithImmed(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 32:
    Result.resize(NextRes+2);
  return SelectArithImmed(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 33:
    Result.resize(NextRes+2);
  return SelectArithShiftedRegister(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 34:
    Result.resize(NextRes+2);
  return SelectArithExtendedRegister(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 35:
    Result.resize(NextRes+2);
  return SelectNegArithImmed(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 36:
    Result.resize(NextRes+2);
  return SelectArithImmed(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 37:
    Result.resize(NextRes+2);
  return SelectArithShiftedRegister(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 38:
    Result.resize(NextRes+2);
  return SelectArithExtendedRegister(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: {  // logical_imm32_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  uint64_t enc = AArch64_AM::encodeLogicalImmediate(N->getZExtValue(), 32);
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);

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

  uint64_t enc = AArch64_AM::encodeLogicalImmediate(N->getZExtValue(), 64);
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);

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

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

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

  AArch64CC::CondCode CC = static_cast<AArch64CC::CondCode>(N->getZExtValue());
  return CurDAG->getTargetConstant(AArch64CC::getInvertedCondCode(CC), SDLoc(N),
                                   MVT::i32);

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

  uint64_t enc = (32 - N->getZExtValue()) & 0x1f;
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

  uint64_t enc = 31 - N->getZExtValue();
  enc = enc > 7 ? 7 : enc;
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

  uint64_t enc = (64 - N->getZExtValue()) & 0x3f;
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

  uint64_t enc = 63 - N->getZExtValue();
  enc = enc > 7 ? 7 : enc;
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

  uint64_t enc = 31 - N->getZExtValue();
  enc = enc > 15 ? 15 : enc;
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

  uint64_t enc = 63 - N->getZExtValue();
  enc = enc > 15 ? 15 : enc;
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

  uint64_t enc = 63 - N->getZExtValue();
  enc = enc > 31 ? 31 : enc;
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

  uint64_t enc = 31 - N->getZExtValue();
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

  uint64_t enc = 63 - N->getZExtValue();
  return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i64);

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

      APFloat InVal = N->getValueAPF();
      uint32_t enc = AArch64_AM::getFP16Imm(InVal);
      return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
    
  }
  case 14: {  // anonymous_1071
    ConstantFPSDNode *N = cast<ConstantFPSDNode>(V.getNode());

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

return CurDAG->getTargetConstant(
  N->getValueAPF().bitcastToAPInt().getZExtValue(), SDLoc(N), MVT::i32);

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

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

      APFloat InVal = N->getValueAPF();
      uint32_t enc = AArch64_AM::encodeAdvSIMDModImmType10(N->getValueAPF()
                                                           .bitcastToAPInt()
                                                           .getZExtValue());
      return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
    
  }
  case 18: {  // bitcast_fpimm_to_i64
    ConstantFPSDNode *N = cast<ConstantFPSDNode>(V.getNode());

return CurDAG->getTargetConstant(
  N->getValueAPF().bitcastToAPInt().getZExtValue(), SDLoc(N), MVT::i64);

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

  return CurDAG->getTargetConstant(8 * N->getZExtValue(), SDLoc(N), MVT::i64);

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

  return CurDAG->getTargetConstant(4 * N->getZExtValue(), SDLoc(N), MVT::i64);

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

  return CurDAG->getTargetConstant(2 * N->getZExtValue(), SDLoc(N), MVT::i64);

  }
  }
}
#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
