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

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

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

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

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

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

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

#ifdef GET_DAGISEL_DECL
void SelectCode(SDNode *N);
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
{
  // Some target values are emitted as 2 bytes, TARGET_VAL handles
  // this.
  #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
  static const unsigned char MatcherTable[] = {
/*     0*/  OPC_SwitchOpcode /*180 cases */, 15|128,22/*2831*/, TARGET_VAL(ISD::STORE),// ->2836
/*     5*/    OPC_RecordMemRef,
/*     6*/    OPC_RecordNode, // #0 = 'st' chained node
/*     7*/    OPC_Scope, 45|128,12/*1581*/, /*->1591*/ // 2 children in Scope
/*    10*/      OPC_MoveChild1,
/*    11*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*    14*/      OPC_RecordChild0, // #1 = $S
/*    15*/      OPC_CheckType, MVT::i32,
/*    17*/      OPC_Scope, 28|128,8/*1052*/, /*->1072*/ // 2 children in Scope
/*    20*/        OPC_CheckChild0Type, MVT::v16i8,
/*    22*/        OPC_Scope, 54, /*->78*/ // 16 children in Scope
/*    24*/          OPC_CheckChild1Integer, 7, 
/*    26*/          OPC_MoveParent,
/*    27*/          OPC_RecordChild2, // #2 = $dst
/*    28*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    30*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*    32*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*    34*/          OPC_Scope, 14, /*->50*/ // 2 children in Scope
/*    36*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*    38*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*    41*/            OPC_EmitMergeInputChains1_0,
/*    42*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 7:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv ?:{ *:[v16i8] }:$S, xoaddr:{ *:[iPTR] }:$dst)
/*    50*/          /*Scope*/ 26, /*->77*/
/*    51*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*    53*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*    56*/            OPC_EmitMergeInputChains1_0,
/*    57*/            OPC_EmitInteger, MVT::i32, 1, 
/*    60*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*    69*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 7:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 1:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*    77*/          0, /*End of Scope*/
/*    78*/        /*Scope*/ 54, /*->133*/
/*    79*/          OPC_CheckChild1Integer, 8, 
/*    81*/          OPC_MoveParent,
/*    82*/          OPC_RecordChild2, // #2 = $dst
/*    83*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    85*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*    87*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*    89*/          OPC_Scope, 14, /*->105*/ // 2 children in Scope
/*    91*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*    93*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*    96*/            OPC_EmitMergeInputChains1_0,
/*    97*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 8:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv ?:{ *:[v16i8] }:$S, xoaddr:{ *:[iPTR] }:$dst)
/*   105*/          /*Scope*/ 26, /*->132*/
/*   106*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   108*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   111*/            OPC_EmitMergeInputChains1_0,
/*   112*/            OPC_EmitInteger, MVT::i32, 1, 
/*   115*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   124*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 8:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 1:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   132*/          0, /*End of Scope*/
/*   133*/        /*Scope*/ 66, /*->200*/
/*   134*/          OPC_CheckChild1Integer, 0, 
/*   136*/          OPC_MoveParent,
/*   137*/          OPC_RecordChild2, // #2 = $dst
/*   138*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   140*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   142*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   144*/          OPC_Scope, 26, /*->172*/ // 2 children in Scope
/*   146*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   148*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   151*/            OPC_EmitMergeInputChains1_0,
/*   152*/            OPC_EmitInteger, MVT::i32, 9, 
/*   155*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   164*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 9:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   172*/          /*Scope*/ 26, /*->199*/
/*   173*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   175*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   178*/            OPC_EmitMergeInputChains1_0,
/*   179*/            OPC_EmitInteger, MVT::i32, 8, 
/*   182*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   191*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 8:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   199*/          0, /*End of Scope*/
/*   200*/        /*Scope*/ 66, /*->267*/
/*   201*/          OPC_CheckChild1Integer, 1, 
/*   203*/          OPC_MoveParent,
/*   204*/          OPC_RecordChild2, // #2 = $dst
/*   205*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   207*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   209*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   211*/          OPC_Scope, 26, /*->239*/ // 2 children in Scope
/*   213*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   215*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   218*/            OPC_EmitMergeInputChains1_0,
/*   219*/            OPC_EmitInteger, MVT::i32, 10, 
/*   222*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   231*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 10:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   239*/          /*Scope*/ 26, /*->266*/
/*   240*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   242*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   245*/            OPC_EmitMergeInputChains1_0,
/*   246*/            OPC_EmitInteger, MVT::i32, 7, 
/*   249*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   258*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 7:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   266*/          0, /*End of Scope*/
/*   267*/        /*Scope*/ 66, /*->334*/
/*   268*/          OPC_CheckChild1Integer, 2, 
/*   270*/          OPC_MoveParent,
/*   271*/          OPC_RecordChild2, // #2 = $dst
/*   272*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   274*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   276*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   278*/          OPC_Scope, 26, /*->306*/ // 2 children in Scope
/*   280*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   285*/            OPC_EmitMergeInputChains1_0,
/*   286*/            OPC_EmitInteger, MVT::i32, 11, 
/*   289*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   298*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 2:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 11:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   306*/          /*Scope*/ 26, /*->333*/
/*   307*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   309*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   312*/            OPC_EmitMergeInputChains1_0,
/*   313*/            OPC_EmitInteger, MVT::i32, 6, 
/*   316*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   325*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 2:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 6:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   333*/          0, /*End of Scope*/
/*   334*/        /*Scope*/ 66, /*->401*/
/*   335*/          OPC_CheckChild1Integer, 3, 
/*   337*/          OPC_MoveParent,
/*   338*/          OPC_RecordChild2, // #2 = $dst
/*   339*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   341*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   343*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   345*/          OPC_Scope, 26, /*->373*/ // 2 children in Scope
/*   347*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   349*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   352*/            OPC_EmitMergeInputChains1_0,
/*   353*/            OPC_EmitInteger, MVT::i32, 12, 
/*   356*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   365*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 3:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 12:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   373*/          /*Scope*/ 26, /*->400*/
/*   374*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   376*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   379*/            OPC_EmitMergeInputChains1_0,
/*   380*/            OPC_EmitInteger, MVT::i32, 5, 
/*   383*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   392*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 3:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 5:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   400*/          0, /*End of Scope*/
/*   401*/        /*Scope*/ 66, /*->468*/
/*   402*/          OPC_CheckChild1Integer, 4, 
/*   404*/          OPC_MoveParent,
/*   405*/          OPC_RecordChild2, // #2 = $dst
/*   406*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   408*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   410*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   412*/          OPC_Scope, 26, /*->440*/ // 2 children in Scope
/*   414*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   416*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   419*/            OPC_EmitMergeInputChains1_0,
/*   420*/            OPC_EmitInteger, MVT::i32, 13, 
/*   423*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   432*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 4:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 13:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   440*/          /*Scope*/ 26, /*->467*/
/*   441*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   443*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   446*/            OPC_EmitMergeInputChains1_0,
/*   447*/            OPC_EmitInteger, MVT::i32, 4, 
/*   450*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   459*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 4:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 4:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   467*/          0, /*End of Scope*/
/*   468*/        /*Scope*/ 66, /*->535*/
/*   469*/          OPC_CheckChild1Integer, 5, 
/*   471*/          OPC_MoveParent,
/*   472*/          OPC_RecordChild2, // #2 = $dst
/*   473*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   475*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   477*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   479*/          OPC_Scope, 26, /*->507*/ // 2 children in Scope
/*   481*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   486*/            OPC_EmitMergeInputChains1_0,
/*   487*/            OPC_EmitInteger, MVT::i32, 14, 
/*   490*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   499*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 5:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 14:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   507*/          /*Scope*/ 26, /*->534*/
/*   508*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   510*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   513*/            OPC_EmitMergeInputChains1_0,
/*   514*/            OPC_EmitInteger, MVT::i32, 3, 
/*   517*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   526*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 5:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 3:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   534*/          0, /*End of Scope*/
/*   535*/        /*Scope*/ 66, /*->602*/
/*   536*/          OPC_CheckChild1Integer, 6, 
/*   538*/          OPC_MoveParent,
/*   539*/          OPC_RecordChild2, // #2 = $dst
/*   540*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   542*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   544*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   546*/          OPC_Scope, 26, /*->574*/ // 2 children in Scope
/*   548*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   550*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   553*/            OPC_EmitMergeInputChains1_0,
/*   554*/            OPC_EmitInteger, MVT::i32, 15, 
/*   557*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   566*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 6:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 15:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   574*/          /*Scope*/ 26, /*->601*/
/*   575*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   577*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   580*/            OPC_EmitMergeInputChains1_0,
/*   581*/            OPC_EmitInteger, MVT::i32, 2, 
/*   584*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   593*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 6:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 2:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   601*/          0, /*End of Scope*/
/*   602*/        /*Scope*/ 66, /*->669*/
/*   603*/          OPC_CheckChild1Integer, 9, 
/*   605*/          OPC_MoveParent,
/*   606*/          OPC_RecordChild2, // #2 = $dst
/*   607*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   609*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   611*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   613*/          OPC_Scope, 26, /*->641*/ // 2 children in Scope
/*   615*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   617*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   620*/            OPC_EmitMergeInputChains1_0,
/*   621*/            OPC_EmitInteger, MVT::i32, 2, 
/*   624*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   633*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 9:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 2:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   641*/          /*Scope*/ 26, /*->668*/
/*   642*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   644*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   647*/            OPC_EmitMergeInputChains1_0,
/*   648*/            OPC_EmitInteger, MVT::i32, 15, 
/*   651*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   660*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 9:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 15:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   668*/          0, /*End of Scope*/
/*   669*/        /*Scope*/ 66, /*->736*/
/*   670*/          OPC_CheckChild1Integer, 10, 
/*   672*/          OPC_MoveParent,
/*   673*/          OPC_RecordChild2, // #2 = $dst
/*   674*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   676*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   678*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   680*/          OPC_Scope, 26, /*->708*/ // 2 children in Scope
/*   682*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   684*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   687*/            OPC_EmitMergeInputChains1_0,
/*   688*/            OPC_EmitInteger, MVT::i32, 3, 
/*   691*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   700*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 10:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 3:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   708*/          /*Scope*/ 26, /*->735*/
/*   709*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   711*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   714*/            OPC_EmitMergeInputChains1_0,
/*   715*/            OPC_EmitInteger, MVT::i32, 14, 
/*   718*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   727*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 10:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 14:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   735*/          0, /*End of Scope*/
/*   736*/        /*Scope*/ 66, /*->803*/
/*   737*/          OPC_CheckChild1Integer, 11, 
/*   739*/          OPC_MoveParent,
/*   740*/          OPC_RecordChild2, // #2 = $dst
/*   741*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   743*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   745*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   747*/          OPC_Scope, 26, /*->775*/ // 2 children in Scope
/*   749*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   751*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   754*/            OPC_EmitMergeInputChains1_0,
/*   755*/            OPC_EmitInteger, MVT::i32, 4, 
/*   758*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   767*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 11:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 4:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   775*/          /*Scope*/ 26, /*->802*/
/*   776*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   778*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   781*/            OPC_EmitMergeInputChains1_0,
/*   782*/            OPC_EmitInteger, MVT::i32, 13, 
/*   785*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   794*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 11:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 13:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   802*/          0, /*End of Scope*/
/*   803*/        /*Scope*/ 66, /*->870*/
/*   804*/          OPC_CheckChild1Integer, 12, 
/*   806*/          OPC_MoveParent,
/*   807*/          OPC_RecordChild2, // #2 = $dst
/*   808*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   810*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   812*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   814*/          OPC_Scope, 26, /*->842*/ // 2 children in Scope
/*   816*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   821*/            OPC_EmitMergeInputChains1_0,
/*   822*/            OPC_EmitInteger, MVT::i32, 5, 
/*   825*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   834*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 12:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 5:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   842*/          /*Scope*/ 26, /*->869*/
/*   843*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   845*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   848*/            OPC_EmitMergeInputChains1_0,
/*   849*/            OPC_EmitInteger, MVT::i32, 12, 
/*   852*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   861*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 12:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 12:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   869*/          0, /*End of Scope*/
/*   870*/        /*Scope*/ 66, /*->937*/
/*   871*/          OPC_CheckChild1Integer, 13, 
/*   873*/          OPC_MoveParent,
/*   874*/          OPC_RecordChild2, // #2 = $dst
/*   875*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   877*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   879*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   881*/          OPC_Scope, 26, /*->909*/ // 2 children in Scope
/*   883*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   885*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   888*/            OPC_EmitMergeInputChains1_0,
/*   889*/            OPC_EmitInteger, MVT::i32, 6, 
/*   892*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   901*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 13:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 6:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   909*/          /*Scope*/ 26, /*->936*/
/*   910*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   912*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   915*/            OPC_EmitMergeInputChains1_0,
/*   916*/            OPC_EmitInteger, MVT::i32, 11, 
/*   919*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   928*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 13:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 11:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   936*/          0, /*End of Scope*/
/*   937*/        /*Scope*/ 66, /*->1004*/
/*   938*/          OPC_CheckChild1Integer, 14, 
/*   940*/          OPC_MoveParent,
/*   941*/          OPC_RecordChild2, // #2 = $dst
/*   942*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   944*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   946*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   948*/          OPC_Scope, 26, /*->976*/ // 2 children in Scope
/*   950*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   952*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   955*/            OPC_EmitMergeInputChains1_0,
/*   956*/            OPC_EmitInteger, MVT::i32, 7, 
/*   959*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   968*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 14:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 7:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   976*/          /*Scope*/ 26, /*->1003*/
/*   977*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   979*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   982*/            OPC_EmitMergeInputChains1_0,
/*   983*/            OPC_EmitInteger, MVT::i32, 10, 
/*   986*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   995*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 14:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 10:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1003*/          0, /*End of Scope*/
/*  1004*/        /*Scope*/ 66, /*->1071*/
/*  1005*/          OPC_CheckChild1Integer, 15, 
/*  1007*/          OPC_MoveParent,
/*  1008*/          OPC_RecordChild2, // #2 = $dst
/*  1009*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1011*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1013*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  1015*/          OPC_Scope, 26, /*->1043*/ // 2 children in Scope
/*  1017*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1019*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1022*/            OPC_EmitMergeInputChains1_0,
/*  1023*/            OPC_EmitInteger, MVT::i32, 8, 
/*  1026*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1035*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 15:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 8:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1043*/          /*Scope*/ 26, /*->1070*/
/*  1044*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1046*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1049*/            OPC_EmitMergeInputChains1_0,
/*  1050*/            OPC_EmitInteger, MVT::i32, 9, 
/*  1053*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1062*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 15:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 421
                      // Dst: (STXSIBXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 9:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1070*/          0, /*End of Scope*/
/*  1071*/        0, /*End of Scope*/
/*  1072*/      /*Scope*/ 4|128,4/*516*/, /*->1590*/
/*  1074*/        OPC_CheckChild0Type, MVT::v8i16,
/*  1076*/        OPC_Scope, 54, /*->1132*/ // 8 children in Scope
/*  1078*/          OPC_CheckChild1Integer, 3, 
/*  1080*/          OPC_MoveParent,
/*  1081*/          OPC_RecordChild2, // #2 = $dst
/*  1082*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1084*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1086*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1088*/          OPC_Scope, 14, /*->1104*/ // 2 children in Scope
/*  1090*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1092*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1095*/            OPC_EmitMergeInputChains1_0,
/*  1096*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 3:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv ?:{ *:[v8i16] }:$S, xoaddr:{ *:[iPTR] }:$dst)
/*  1104*/          /*Scope*/ 26, /*->1131*/
/*  1105*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1107*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1110*/            OPC_EmitMergeInputChains1_0,
/*  1111*/            OPC_EmitInteger, MVT::i32, 2, 
/*  1114*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1123*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 3:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 2:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1131*/          0, /*End of Scope*/
/*  1132*/        /*Scope*/ 54, /*->1187*/
/*  1133*/          OPC_CheckChild1Integer, 4, 
/*  1135*/          OPC_MoveParent,
/*  1136*/          OPC_RecordChild2, // #2 = $dst
/*  1137*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1139*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1141*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1143*/          OPC_Scope, 14, /*->1159*/ // 2 children in Scope
/*  1145*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1150*/            OPC_EmitMergeInputChains1_0,
/*  1151*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 4:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv ?:{ *:[v8i16] }:$S, xoaddr:{ *:[iPTR] }:$dst)
/*  1159*/          /*Scope*/ 26, /*->1186*/
/*  1160*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1162*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1165*/            OPC_EmitMergeInputChains1_0,
/*  1166*/            OPC_EmitInteger, MVT::i32, 2, 
/*  1169*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1178*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 4:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 2:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1186*/          0, /*End of Scope*/
/*  1187*/        /*Scope*/ 66, /*->1254*/
/*  1188*/          OPC_CheckChild1Integer, 0, 
/*  1190*/          OPC_MoveParent,
/*  1191*/          OPC_RecordChild2, // #2 = $dst
/*  1192*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1194*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1196*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1198*/          OPC_Scope, 26, /*->1226*/ // 2 children in Scope
/*  1200*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1202*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1205*/            OPC_EmitMergeInputChains1_0,
/*  1206*/            OPC_EmitInteger, MVT::i32, 10, 
/*  1209*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1218*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 10:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1226*/          /*Scope*/ 26, /*->1253*/
/*  1227*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1229*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1232*/            OPC_EmitMergeInputChains1_0,
/*  1233*/            OPC_EmitInteger, MVT::i32, 8, 
/*  1236*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1245*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 8:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1253*/          0, /*End of Scope*/
/*  1254*/        /*Scope*/ 66, /*->1321*/
/*  1255*/          OPC_CheckChild1Integer, 1, 
/*  1257*/          OPC_MoveParent,
/*  1258*/          OPC_RecordChild2, // #2 = $dst
/*  1259*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1261*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1263*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1265*/          OPC_Scope, 26, /*->1293*/ // 2 children in Scope
/*  1267*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1269*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1272*/            OPC_EmitMergeInputChains1_0,
/*  1273*/            OPC_EmitInteger, MVT::i32, 12, 
/*  1276*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1285*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 12:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1293*/          /*Scope*/ 26, /*->1320*/
/*  1294*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1296*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1299*/            OPC_EmitMergeInputChains1_0,
/*  1300*/            OPC_EmitInteger, MVT::i32, 6, 
/*  1303*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1312*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 6:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1320*/          0, /*End of Scope*/
/*  1321*/        /*Scope*/ 66, /*->1388*/
/*  1322*/          OPC_CheckChild1Integer, 2, 
/*  1324*/          OPC_MoveParent,
/*  1325*/          OPC_RecordChild2, // #2 = $dst
/*  1326*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1328*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1330*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1332*/          OPC_Scope, 26, /*->1360*/ // 2 children in Scope
/*  1334*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1336*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1339*/            OPC_EmitMergeInputChains1_0,
/*  1340*/            OPC_EmitInteger, MVT::i32, 14, 
/*  1343*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1352*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 2:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 14:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1360*/          /*Scope*/ 26, /*->1387*/
/*  1361*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1363*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1366*/            OPC_EmitMergeInputChains1_0,
/*  1367*/            OPC_EmitInteger, MVT::i32, 4, 
/*  1370*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1379*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 2:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 4:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1387*/          0, /*End of Scope*/
/*  1388*/        /*Scope*/ 66, /*->1455*/
/*  1389*/          OPC_CheckChild1Integer, 5, 
/*  1391*/          OPC_MoveParent,
/*  1392*/          OPC_RecordChild2, // #2 = $dst
/*  1393*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1395*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1397*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1399*/          OPC_Scope, 26, /*->1427*/ // 2 children in Scope
/*  1401*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1403*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1406*/            OPC_EmitMergeInputChains1_0,
/*  1407*/            OPC_EmitInteger, MVT::i32, 4, 
/*  1410*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1419*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 5:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 4:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1427*/          /*Scope*/ 26, /*->1454*/
/*  1428*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1430*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1433*/            OPC_EmitMergeInputChains1_0,
/*  1434*/            OPC_EmitInteger, MVT::i32, 14, 
/*  1437*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1446*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 5:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 14:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1454*/          0, /*End of Scope*/
/*  1455*/        /*Scope*/ 66, /*->1522*/
/*  1456*/          OPC_CheckChild1Integer, 6, 
/*  1458*/          OPC_MoveParent,
/*  1459*/          OPC_RecordChild2, // #2 = $dst
/*  1460*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1462*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1464*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1466*/          OPC_Scope, 26, /*->1494*/ // 2 children in Scope
/*  1468*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1473*/            OPC_EmitMergeInputChains1_0,
/*  1474*/            OPC_EmitInteger, MVT::i32, 6, 
/*  1477*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1486*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 6:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1494*/          /*Scope*/ 26, /*->1521*/
/*  1495*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1497*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1500*/            OPC_EmitMergeInputChains1_0,
/*  1501*/            OPC_EmitInteger, MVT::i32, 12, 
/*  1504*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1513*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 12:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1521*/          0, /*End of Scope*/
/*  1522*/        /*Scope*/ 66, /*->1589*/
/*  1523*/          OPC_CheckChild1Integer, 7, 
/*  1525*/          OPC_MoveParent,
/*  1526*/          OPC_RecordChild2, // #2 = $dst
/*  1527*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1529*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1531*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1533*/          OPC_Scope, 26, /*->1561*/ // 2 children in Scope
/*  1535*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1537*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1540*/            OPC_EmitMergeInputChains1_0,
/*  1541*/            OPC_EmitInteger, MVT::i32, 8, 
/*  1544*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1553*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 7:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 8:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1561*/          /*Scope*/ 26, /*->1588*/
/*  1562*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1564*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1567*/            OPC_EmitMergeInputChains1_0,
/*  1568*/            OPC_EmitInteger, MVT::i32, 10, 
/*  1571*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1580*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 7:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 421
                      // Dst: (STXSIHXv (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 10:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1588*/          0, /*End of Scope*/
/*  1589*/        0, /*End of Scope*/
/*  1590*/      0, /*End of Scope*/
/*  1591*/    /*Scope*/ 90|128,9/*1242*/, /*->2835*/
/*  1593*/      OPC_RecordChild1, // #1 = $rS
/*  1594*/      OPC_Scope, 72, /*->1668*/ // 10 children in Scope
/*  1596*/        OPC_CheckChild1Type, MVT::v2f64,
/*  1598*/        OPC_RecordChild2, // #2 = $dst
/*  1599*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1601*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1603*/        OPC_Scope, 14, /*->1619*/ // 2 children in Scope
/*  1605*/          OPC_CheckPatternPredicate, 2, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*  1607*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1610*/          OPC_EmitMergeInputChains1_0,
/*  1611*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                    // Dst: (STXVD2X ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  1619*/        /*Scope*/ 47, /*->1667*/
/*  1620*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  1622*/          OPC_Scope, 12, /*->1636*/ // 3 children in Scope
/*  1624*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  1627*/            OPC_EmitMergeInputChains1_0,
/*  1628*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st v2f64:{ *:[v2f64] }:$XT, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                      // Dst: (STXVX v2f64:{ *:[v2f64] }:$XT, xaddr:{ *:[iPTR] }:$dst)
/*  1636*/          /*Scope*/ 14, /*->1651*/
/*  1637*/            OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  1639*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  1642*/            OPC_EmitMergeInputChains1_0,
/*  1643*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st v2f64:{ *:[v2f64] }:$rS, iqaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                      // Dst: (STXV ?:{ *:[v2f64] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  1651*/          /*Scope*/ 14, /*->1666*/
/*  1652*/            OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  1654*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1657*/            OPC_EmitMergeInputChains1_0,
/*  1658*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nonQuadwOffsetStore>> - Complexity = 413
                      // Dst: (STXVX ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  1666*/          0, /*End of Scope*/
/*  1667*/        0, /*End of Scope*/
/*  1668*/      /*Scope*/ 58, /*->1727*/
/*  1669*/        OPC_CheckChild1Type, MVT::v2i64,
/*  1671*/        OPC_RecordChild2, // #2 = $dst
/*  1672*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1674*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1676*/        OPC_Scope, 14, /*->1692*/ // 3 children in Scope
/*  1678*/          OPC_CheckPatternPredicate, 2, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*  1680*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1683*/          OPC_EmitMergeInputChains1_0,
/*  1684*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v2i64:{ *:[v2i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                    // Dst: (STXVD2X ?:{ *:[v2i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  1692*/        /*Scope*/ 16, /*->1709*/
/*  1693*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  1695*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  1697*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  1700*/          OPC_EmitMergeInputChains1_0,
/*  1701*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v2i64:{ *:[v2i64] }:$rS, iqaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                    // Dst: (STXV ?:{ *:[v2i64] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  1709*/        /*Scope*/ 16, /*->1726*/
/*  1710*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  1712*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  1714*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1717*/          OPC_EmitMergeInputChains1_0,
/*  1718*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v2i64:{ *:[v2i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nonQuadwOffsetStore>> - Complexity = 413
                    // Dst: (STXVX ?:{ *:[v2i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  1726*/        0, /*End of Scope*/
/*  1727*/      /*Scope*/ 73, /*->1801*/
/*  1728*/        OPC_CheckChild1Type, MVT::v4i32,
/*  1730*/        OPC_RecordChild2, // #2 = $dst
/*  1731*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1733*/        OPC_CheckPredicate, 4, // Predicate_store
/*  1735*/        OPC_Scope, 14, /*->1751*/ // 4 children in Scope
/*  1737*/          OPC_CheckPatternPredicate, 2, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*  1739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1742*/          OPC_EmitMergeInputChains1_0,
/*  1743*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVW4X), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v4i32:{ *:[v4i32] }:$XT, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                    // Dst: (STXVW4X ?:{ *:[v4i32] }:$XT, xoaddr:{ *:[iPTR] }:$dst)
/*  1751*/        /*Scope*/ 16, /*->1768*/
/*  1752*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  1754*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  1756*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  1759*/          OPC_EmitMergeInputChains1_0,
/*  1760*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v4i32:{ *:[v4i32] }:$rS, iqaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                    // Dst: (STXV ?:{ *:[v4i32] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  1768*/        /*Scope*/ 16, /*->1785*/
/*  1769*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  1771*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  1773*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1776*/          OPC_EmitMergeInputChains1_0,
/*  1777*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nonQuadwOffsetStore>> - Complexity = 413
                    // Dst: (STXVX ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  1785*/        /*Scope*/ 14, /*->1800*/
/*  1786*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  1788*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1791*/          OPC_EmitMergeInputChains1_0,
/*  1792*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STVX), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                    // Dst: (STVX ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  1800*/        0, /*End of Scope*/
/*  1801*/      /*Scope*/ 79, /*->1881*/
/*  1802*/        OPC_CheckChild1Type, MVT::v4f32,
/*  1804*/        OPC_RecordChild2, // #2 = $dst
/*  1805*/        OPC_Scope, 55, /*->1862*/ // 2 children in Scope
/*  1807*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1809*/          OPC_CheckPredicate, 4, // Predicate_store
/*  1811*/          OPC_Scope, 16, /*->1829*/ // 3 children in Scope
/*  1813*/            OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  1815*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  1817*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  1820*/            OPC_EmitMergeInputChains1_0,
/*  1821*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st v4f32:{ *:[v4f32] }:$rS, iqaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                      // Dst: (STXV ?:{ *:[v4f32] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  1829*/          /*Scope*/ 16, /*->1846*/
/*  1830*/            OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  1832*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  1834*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1837*/            OPC_EmitMergeInputChains1_0,
/*  1838*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st v4f32:{ *:[v4f32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nonQuadwOffsetStore>> - Complexity = 413
                      // Dst: (STXVX ?:{ *:[v4f32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  1846*/          /*Scope*/ 14, /*->1861*/
/*  1847*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  1849*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1852*/            OPC_EmitMergeInputChains1_0,
/*  1853*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFSXs), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st qsrc:{ *:[v4f32] }:$FRT, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (QVSTFSXs qsrc:{ *:[v4f32] }:$FRT, xoaddr:{ *:[iPTR] }:$dst)
/*  1861*/          0, /*End of Scope*/
/*  1862*/        /*Scope*/ 17, /*->1880*/
/*  1863*/          OPC_RecordChild3, // #3 = $ptroff
/*  1864*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  1866*/          OPC_CheckPredicate, 7, // Predicate_pre_store
/*  1868*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  1870*/          OPC_EmitMergeInputChains1_0,
/*  1871*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVSTFSUX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (ist:{ *:[iPTR] } v4f32:{ *:[v4f32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 4
                    // Dst: (QVSTFSUX:{ *:[iPTR] } ?:{ *:[v4f32] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  1880*/        0, /*End of Scope*/
/*  1881*/      /*Scope*/ 11|128,1/*139*/, /*->2022*/
/*  1883*/        OPC_CheckChild1Type, MVT::f32,
/*  1885*/        OPC_RecordChild2, // #2 = $dst
/*  1886*/        OPC_Scope, 98, /*->1986*/ // 2 children in Scope
/*  1888*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1890*/          OPC_CheckPredicate, 4, // Predicate_store
/*  1892*/          OPC_Scope, 14, /*->1908*/ // 4 children in Scope
/*  1894*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  1896*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  1899*/            OPC_EmitMergeInputChains1_0,
/*  1900*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf32), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st f32:{ *:[f32] }:$XT, ixaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                      // Dst: (DFSTOREf32 f32:{ *:[f32] }:$XT, ixaddr:{ *:[iPTR] }:$dst)
/*  1908*/          /*Scope*/ 14, /*->1923*/
/*  1909*/            OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/*  1911*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1914*/            OPC_EmitMergeInputChains1_0,
/*  1915*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf32), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st f32:{ *:[f32] }:$XT, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                      // Dst: (XFSTOREf32 f32:{ *:[f32] }:$XT, xoaddr:{ *:[iPTR] }:$dst)
/*  1923*/          /*Scope*/ 30, /*->1954*/
/*  1924*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/*  1926*/            OPC_Scope, 12, /*->1940*/ // 2 children in Scope
/*  1928*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  1931*/              OPC_EmitMergeInputChains1_0,
/*  1932*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STFS), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st f32:{ *:[f32] }:$rS, iaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (STFS f32:{ *:[f32] }:$rS, iaddr:{ *:[iPTR] }:$dst)
/*  1940*/            /*Scope*/ 12, /*->1953*/
/*  1941*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  1944*/              OPC_EmitMergeInputChains1_0,
/*  1945*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STFSX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st f32:{ *:[f32] }:$frS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (STFSX f32:{ *:[f32] }:$frS, xaddr:{ *:[iPTR] }:$dst)
/*  1953*/            0, /*End of Scope*/
/*  1954*/          /*Scope*/ 30, /*->1985*/
/*  1955*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/*  1957*/            OPC_Scope, 12, /*->1971*/ // 2 children in Scope
/*  1959*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$src #3 #4
/*  1962*/              OPC_EmitMergeInputChains1_0,
/*  1963*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::SPESTW), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st f32:{ *:[f32] }:$rS, iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (SPESTW f32:{ *:[f32] }:$rS, iaddr:{ *:[iPTR] }:$src)
/*  1971*/            /*Scope*/ 12, /*->1984*/
/*  1972*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  1975*/              OPC_EmitMergeInputChains1_0,
/*  1976*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::SPESTWX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st f32:{ *:[f32] }:$rS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (SPESTWX f32:{ *:[f32] }:$rS, xaddr:{ *:[iPTR] }:$dst)
/*  1984*/            0, /*End of Scope*/
/*  1985*/          0, /*End of Scope*/
/*  1986*/        /*Scope*/ 34, /*->2021*/
/*  1987*/          OPC_RecordChild3, // #3 = $ptroff
/*  1988*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  1990*/          OPC_CheckPredicate, 7, // Predicate_pre_store
/*  1992*/          OPC_Scope, 13, /*->2007*/ // 2 children in Scope
/*  1994*/            OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  1997*/            OPC_EmitMergeInputChains1_0,
/*  1998*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::STFSU), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                      // Src: (ist:{ *:[iPTR] } f32:{ *:[f32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (STFSU:{ *:[iPTR] } ?:{ *:[f32] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2007*/          /*Scope*/ 12, /*->2020*/
/*  2008*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/*  2010*/            OPC_EmitMergeInputChains1_0,
/*  2011*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::STFSUX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (ist:{ *:[iPTR] } f32:{ *:[f32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 4
                      // Dst: (STFSUX:{ *:[iPTR] } ?:{ *:[f32] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2020*/          0, /*End of Scope*/
/*  2021*/        0, /*End of Scope*/
/*  2022*/      /*Scope*/ 11|128,1/*139*/, /*->2163*/
/*  2024*/        OPC_CheckChild1Type, MVT::f64,
/*  2026*/        OPC_RecordChild2, // #2 = $dst
/*  2027*/        OPC_Scope, 98, /*->2127*/ // 2 children in Scope
/*  2029*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2031*/          OPC_CheckPredicate, 4, // Predicate_store
/*  2033*/          OPC_Scope, 14, /*->2049*/ // 4 children in Scope
/*  2035*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  2037*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  2040*/            OPC_EmitMergeInputChains1_0,
/*  2041*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st f64:{ *:[f64] }:$XT, ixaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                      // Dst: (DFSTOREf64 f64:{ *:[f64] }:$XT, ixaddr:{ *:[iPTR] }:$dst)
/*  2049*/          /*Scope*/ 14, /*->2064*/
/*  2050*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*  2052*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2055*/            OPC_EmitMergeInputChains1_0,
/*  2056*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st f64:{ *:[f64] }:$XT, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                      // Dst: (XFSTOREf64 f64:{ *:[f64] }:$XT, xoaddr:{ *:[iPTR] }:$dst)
/*  2064*/          /*Scope*/ 30, /*->2095*/
/*  2065*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/*  2067*/            OPC_Scope, 12, /*->2081*/ // 2 children in Scope
/*  2069*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  2072*/              OPC_EmitMergeInputChains1_0,
/*  2073*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STFD), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st f64:{ *:[f64] }:$rS, iaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (STFD f64:{ *:[f64] }:$rS, iaddr:{ *:[iPTR] }:$dst)
/*  2081*/            /*Scope*/ 12, /*->2094*/
/*  2082*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2085*/              OPC_EmitMergeInputChains1_0,
/*  2086*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STFDX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st f64:{ *:[f64] }:$frS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (STFDX f64:{ *:[f64] }:$frS, xaddr:{ *:[iPTR] }:$dst)
/*  2094*/            0, /*End of Scope*/
/*  2095*/          /*Scope*/ 30, /*->2126*/
/*  2096*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/*  2098*/            OPC_Scope, 12, /*->2112*/ // 2 children in Scope
/*  2100*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  2103*/              OPC_EmitMergeInputChains1_0,
/*  2104*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::EVSTDD), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st f64:{ *:[f64] }:$RT, iaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (EVSTDD f64:{ *:[f64] }:$RT, iaddr:{ *:[iPTR] }:$dst)
/*  2112*/            /*Scope*/ 12, /*->2125*/
/*  2113*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2116*/              OPC_EmitMergeInputChains1_0,
/*  2117*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::EVSTDDX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st f64:{ *:[f64] }:$RT, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (EVSTDDX f64:{ *:[f64] }:$RT, xaddr:{ *:[iPTR] }:$dst)
/*  2125*/            0, /*End of Scope*/
/*  2126*/          0, /*End of Scope*/
/*  2127*/        /*Scope*/ 34, /*->2162*/
/*  2128*/          OPC_RecordChild3, // #3 = $ptroff
/*  2129*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  2131*/          OPC_CheckPredicate, 7, // Predicate_pre_store
/*  2133*/          OPC_Scope, 13, /*->2148*/ // 2 children in Scope
/*  2135*/            OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  2138*/            OPC_EmitMergeInputChains1_0,
/*  2139*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::STFDU), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                      // Src: (ist:{ *:[iPTR] } f64:{ *:[f64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (STFDU:{ *:[iPTR] } ?:{ *:[f64] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2148*/          /*Scope*/ 12, /*->2161*/
/*  2149*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/*  2151*/            OPC_EmitMergeInputChains1_0,
/*  2152*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::STFDUX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (ist:{ *:[iPTR] } f64:{ *:[f64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 4
                      // Dst: (STFDUX:{ *:[iPTR] } ?:{ *:[f64] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2161*/          0, /*End of Scope*/
/*  2162*/        0, /*End of Scope*/
/*  2163*/      /*Scope*/ 65, /*->2229*/
/*  2164*/        OPC_CheckChild1Type, MVT::f128,
/*  2166*/        OPC_RecordChild2, // #2 = $dst
/*  2167*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2169*/        OPC_CheckPredicate, 4, // Predicate_store
/*  2171*/        OPC_Scope, 27, /*->2200*/ // 2 children in Scope
/*  2173*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  2175*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  2177*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  2180*/          OPC_EmitMergeInputChains1_0,
/*  2181*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2184*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  2192*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 6, 3, 4, 
                    // Src: (st f128:{ *:[f128] }:$rS, iqaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                    // Dst: (STXV (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f128] }:$rS, VSRC:{ *:[i32] }), memrix16:{ *:[iPTR] }:$dst)
/*  2200*/        /*Scope*/ 27, /*->2228*/
/*  2201*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  2203*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  2205*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2208*/          OPC_EmitMergeInputChains1_0,
/*  2209*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2212*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  2220*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 6, 3, 4, 
                    // Src: (st f128:{ *:[f128] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_nonQuadwOffsetStore>> - Complexity = 413
                    // Dst: (STXVX (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f128] }:$rS, VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2228*/        0, /*End of Scope*/
/*  2229*/      /*Scope*/ 91|128,1/*219*/, /*->2450*/
/*  2231*/        OPC_CheckChild1Type, MVT::i32,
/*  2233*/        OPC_RecordChild2, // #2 = $src
/*  2234*/        OPC_Scope, 104, /*->2340*/ // 2 children in Scope
/*  2236*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2238*/          OPC_Scope, 34, /*->2274*/ // 4 children in Scope
/*  2240*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2242*/            OPC_Scope, 14, /*->2258*/ // 2 children in Scope
/*  2244*/              OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2246*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$src #3 #4
/*  2249*/              OPC_EmitMergeInputChains1_0,
/*  2250*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STB), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                        // Dst: (STB i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$src)
/*  2258*/            /*Scope*/ 14, /*->2273*/
/*  2259*/              OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  2261*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$src #3 #4
/*  2264*/              OPC_EmitMergeInputChains1_0,
/*  2265*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STH), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                        // Dst: (STH i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$src)
/*  2273*/            0, /*End of Scope*/
/*  2274*/          /*Scope*/ 14, /*->2289*/
/*  2275*/            OPC_CheckPredicate, 4, // Predicate_store
/*  2277*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$src #3 #4
/*  2280*/            OPC_EmitMergeInputChains1_0,
/*  2281*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STW), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (STW i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$src)
/*  2289*/          /*Scope*/ 34, /*->2324*/
/*  2290*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2292*/            OPC_Scope, 14, /*->2308*/ // 2 children in Scope
/*  2294*/              OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2296*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2299*/              OPC_EmitMergeInputChains1_0,
/*  2300*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STBX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i32:{ *:[i32] }:$rS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                        // Dst: (STBX i32:{ *:[i32] }:$rS, xaddr:{ *:[iPTR] }:$dst)
/*  2308*/            /*Scope*/ 14, /*->2323*/
/*  2309*/              OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  2311*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2314*/              OPC_EmitMergeInputChains1_0,
/*  2315*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STHX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i32:{ *:[i32] }:$rS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                        // Dst: (STHX i32:{ *:[i32] }:$rS, xaddr:{ *:[iPTR] }:$dst)
/*  2323*/            0, /*End of Scope*/
/*  2324*/          /*Scope*/ 14, /*->2339*/
/*  2325*/            OPC_CheckPredicate, 4, // Predicate_store
/*  2327*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2330*/            OPC_EmitMergeInputChains1_0,
/*  2331*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st i32:{ *:[i32] }:$rS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (STWX i32:{ *:[i32] }:$rS, xaddr:{ *:[iPTR] }:$dst)
/*  2339*/          0, /*End of Scope*/
/*  2340*/        /*Scope*/ 108, /*->2449*/
/*  2341*/          OPC_RecordChild3, // #3 = $ptroff
/*  2342*/          OPC_Scope, 38, /*->2382*/ // 4 children in Scope
/*  2344*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  2346*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  2348*/            OPC_Scope, 15, /*->2365*/ // 2 children in Scope
/*  2350*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti8
/*  2352*/              OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  2355*/              OPC_EmitMergeInputChains1_0,
/*  2356*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STBU), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                        // Src: (ist:{ *:[iPTR] } i32:{ *:[i32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 10
                        // Dst: (STBU:{ *:[iPTR] } ?:{ *:[i32] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2365*/            /*Scope*/ 15, /*->2381*/
/*  2366*/              OPC_CheckPredicate, 3, // Predicate_pre_truncsti16
/*  2368*/              OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  2371*/              OPC_EmitMergeInputChains1_0,
/*  2372*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STHU), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                        // Src: (ist:{ *:[iPTR] } i32:{ *:[i32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti16>> - Complexity = 10
                        // Dst: (STHU:{ *:[iPTR] } ?:{ *:[i32] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2381*/            0, /*End of Scope*/
/*  2382*/          /*Scope*/ 17, /*->2400*/
/*  2383*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  2385*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  2387*/            OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  2390*/            OPC_EmitMergeInputChains1_0,
/*  2391*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::STWU), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                      // Src: (ist:{ *:[iPTR] } i32:{ *:[i32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (STWU:{ *:[iPTR] } ?:{ *:[i32] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2400*/          /*Scope*/ 32, /*->2433*/
/*  2401*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  2403*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  2405*/            OPC_Scope, 12, /*->2419*/ // 2 children in Scope
/*  2407*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti8
/*  2409*/              OPC_EmitMergeInputChains1_0,
/*  2410*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STBUX), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (ist:{ *:[iPTR] } i32:{ *:[i32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 4
                        // Dst: (STBUX:{ *:[iPTR] } ?:{ *:[i32] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2419*/            /*Scope*/ 12, /*->2432*/
/*  2420*/              OPC_CheckPredicate, 3, // Predicate_pre_truncsti16
/*  2422*/              OPC_EmitMergeInputChains1_0,
/*  2423*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STHUX), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (ist:{ *:[iPTR] } i32:{ *:[i32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti16>> - Complexity = 4
                        // Dst: (STHUX:{ *:[iPTR] } ?:{ *:[i32] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2432*/            0, /*End of Scope*/
/*  2433*/          /*Scope*/ 14, /*->2448*/
/*  2434*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  2436*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  2438*/            OPC_EmitMergeInputChains1_0,
/*  2439*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::STWUX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (ist:{ *:[iPTR] } i32:{ *:[i32] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 4
                      // Dst: (STWUX:{ *:[iPTR] } ?:{ *:[i32] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2448*/          0, /*End of Scope*/
/*  2449*/        0, /*End of Scope*/
/*  2450*/      /*Scope*/ 39|128,2/*295*/, /*->2747*/
/*  2452*/        OPC_CheckChild1Type, MVT::i64,
/*  2454*/        OPC_RecordChild2, // #2 = $src
/*  2455*/        OPC_Scope, 19|128,1/*147*/, /*->2605*/ // 2 children in Scope
/*  2458*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2460*/          OPC_Scope, 94, /*->2556*/ // 2 children in Scope
/*  2462*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2464*/            OPC_Scope, 14, /*->2480*/ // 6 children in Scope
/*  2466*/              OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2468*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$src #3 #4
/*  2471*/              OPC_EmitMergeInputChains1_0,
/*  2472*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STB8), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                        // Dst: (STB8 i64:{ *:[i64] }:$rS, iaddr:{ *:[iPTR] }:$src)
/*  2480*/            /*Scope*/ 14, /*->2495*/
/*  2481*/              OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  2483*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$src #3 #4
/*  2486*/              OPC_EmitMergeInputChains1_0,
/*  2487*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STH8), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                        // Dst: (STH8 i64:{ *:[i64] }:$rS, iaddr:{ *:[iPTR] }:$src)
/*  2495*/            /*Scope*/ 14, /*->2510*/
/*  2496*/              OPC_CheckPredicate, 8, // Predicate_truncstorei32
/*  2498*/              OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$src #3 #4
/*  2501*/              OPC_EmitMergeInputChains1_0,
/*  2502*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STW8), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 13
                        // Dst: (STW8 i64:{ *:[i64] }:$rS, iaddr:{ *:[iPTR] }:$src)
/*  2510*/            /*Scope*/ 14, /*->2525*/
/*  2511*/              OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2513*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2516*/              OPC_EmitMergeInputChains1_0,
/*  2517*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STBX8), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                        // Dst: (STBX8 i64:{ *:[i64] }:$rS, xaddr:{ *:[iPTR] }:$dst)
/*  2525*/            /*Scope*/ 14, /*->2540*/
/*  2526*/              OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  2528*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2531*/              OPC_EmitMergeInputChains1_0,
/*  2532*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STHX8), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                        // Dst: (STHX8 i64:{ *:[i64] }:$rS, xaddr:{ *:[iPTR] }:$dst)
/*  2540*/            /*Scope*/ 14, /*->2555*/
/*  2541*/              OPC_CheckPredicate, 8, // Predicate_truncstorei32
/*  2543*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2546*/              OPC_EmitMergeInputChains1_0,
/*  2547*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STWX8), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 13
                        // Dst: (STWX8 i64:{ *:[i64] }:$rS, xaddr:{ *:[iPTR] }:$dst)
/*  2555*/            0, /*End of Scope*/
/*  2556*/          /*Scope*/ 47, /*->2604*/
/*  2557*/            OPC_CheckPredicate, 4, // Predicate_store
/*  2559*/            OPC_Scope, 14, /*->2575*/ // 3 children in Scope
/*  2561*/              OPC_CheckPredicate, 9, // Predicate_aligned4store
/*  2563*/              OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  2566*/              OPC_EmitMergeInputChains1_0,
/*  2567*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STD), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, ixaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_aligned4store>> - Complexity = 13
                        // Dst: (STD i64:{ *:[i64] }:$rS, ixaddr:{ *:[iPTR] }:$dst)
/*  2575*/            /*Scope*/ 12, /*->2588*/
/*  2576*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2579*/              OPC_EmitMergeInputChains1_0,
/*  2580*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STDX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, xaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (STDX i64:{ *:[i64] }:$rS, xaddr:{ *:[iPTR] }:$dst)
/*  2588*/            /*Scope*/ 14, /*->2603*/
/*  2589*/              OPC_CheckPredicate, 10, // Predicate_unaligned4store
/*  2591*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2594*/              OPC_EmitMergeInputChains1_0,
/*  2595*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STDX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_unaligned4store>> - Complexity = 13
                        // Dst: (STDX ?:{ *:[i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  2603*/            0, /*End of Scope*/
/*  2604*/          0, /*End of Scope*/
/*  2605*/        /*Scope*/ 11|128,1/*139*/, /*->2746*/
/*  2607*/          OPC_RecordChild3, // #3 = $ptroff
/*  2608*/          OPC_Scope, 54, /*->2664*/ // 4 children in Scope
/*  2610*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  2612*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  2614*/            OPC_Scope, 15, /*->2631*/ // 3 children in Scope
/*  2616*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti8
/*  2618*/              OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  2621*/              OPC_EmitMergeInputChains1_0,
/*  2622*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STBU8), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                        // Src: (ist:{ *:[iPTR] } i64:{ *:[i64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 10
                        // Dst: (STBU8:{ *:[iPTR] } ?:{ *:[i64] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2631*/            /*Scope*/ 15, /*->2647*/
/*  2632*/              OPC_CheckPredicate, 3, // Predicate_pre_truncsti16
/*  2634*/              OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  2637*/              OPC_EmitMergeInputChains1_0,
/*  2638*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STHU8), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                        // Src: (ist:{ *:[iPTR] } i64:{ *:[i64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti16>> - Complexity = 10
                        // Dst: (STHU8:{ *:[iPTR] } ?:{ *:[i64] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2647*/            /*Scope*/ 15, /*->2663*/
/*  2648*/              OPC_CheckPredicate, 8, // Predicate_pre_truncsti32
/*  2650*/              OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  2653*/              OPC_EmitMergeInputChains1_0,
/*  2654*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STWU8), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                        // Src: (ist:{ *:[iPTR] } i64:{ *:[i64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti32>> - Complexity = 10
                        // Dst: (STWU8:{ *:[iPTR] } ?:{ *:[i64] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2663*/            0, /*End of Scope*/
/*  2664*/          /*Scope*/ 19, /*->2684*/
/*  2665*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  2667*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  2669*/            OPC_CheckPredicate, 9, // Predicate_aligned4pre_store
/*  2671*/            OPC_CheckComplexPat, /*CP*/5, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  2674*/            OPC_EmitMergeInputChains1_0,
/*  2675*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::STDU), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 4, 2, 
                      // Src: (ist:{ *:[iPTR] } i64:{ *:[i64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iaddroff:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned4pre_store>> - Complexity = 10
                      // Dst: (STDU:{ *:[iPTR] } ?:{ *:[i64] }:$rS, iaddroff:{ *:[iPTR] }:$ptroff, ?:{ *:[iPTR] }:$ptrreg)
/*  2684*/          /*Scope*/ 45, /*->2730*/
/*  2685*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  2687*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  2689*/            OPC_Scope, 12, /*->2703*/ // 3 children in Scope
/*  2691*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti8
/*  2693*/              OPC_EmitMergeInputChains1_0,
/*  2694*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STBUX8), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (ist:{ *:[iPTR] } i64:{ *:[i64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti8>> - Complexity = 4
                        // Dst: (STBUX8:{ *:[iPTR] } ?:{ *:[i64] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2703*/            /*Scope*/ 12, /*->2716*/
/*  2704*/              OPC_CheckPredicate, 3, // Predicate_pre_truncsti16
/*  2706*/              OPC_EmitMergeInputChains1_0,
/*  2707*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STHUX8), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (ist:{ *:[iPTR] } i64:{ *:[i64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti16>> - Complexity = 4
                        // Dst: (STHUX8:{ *:[iPTR] } ?:{ *:[i64] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2716*/            /*Scope*/ 12, /*->2729*/
/*  2717*/              OPC_CheckPredicate, 8, // Predicate_pre_truncsti32
/*  2719*/              OPC_EmitMergeInputChains1_0,
/*  2720*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::STWUX8), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (ist:{ *:[iPTR] } i64:{ *:[i64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncsti32>> - Complexity = 4
                        // Dst: (STWUX8:{ *:[iPTR] } ?:{ *:[i64] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2729*/            0, /*End of Scope*/
/*  2730*/          /*Scope*/ 14, /*->2745*/
/*  2731*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  2733*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  2735*/            OPC_EmitMergeInputChains1_0,
/*  2736*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::STDUX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (ist:{ *:[iPTR] } i64:{ *:[i64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 4
                      // Dst: (STDUX:{ *:[iPTR] } ?:{ *:[i64] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2745*/          0, /*End of Scope*/
/*  2746*/        0, /*End of Scope*/
/*  2747*/      /*Scope*/ 86, /*->2834*/
/*  2748*/        OPC_CheckChild1Type, MVT::v4f64,
/*  2750*/        OPC_RecordChild2, // #2 = $dst
/*  2751*/        OPC_Scope, 40, /*->2793*/ // 2 children in Scope
/*  2753*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2755*/          OPC_Scope, 16, /*->2773*/ // 2 children in Scope
/*  2757*/            OPC_CheckPredicate, 4, // Predicate_store
/*  2759*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  2761*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2764*/            OPC_EmitMergeInputChains1_0,
/*  2765*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFDX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st qfrc:{ *:[v4f64] }:$FRT, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (QVSTFDX qfrc:{ *:[v4f64] }:$FRT, xoaddr:{ *:[iPTR] }:$dst)
/*  2773*/          /*Scope*/ 18, /*->2792*/
/*  2774*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2776*/            OPC_CheckPredicate, 11, // Predicate_truncstorev4f32
/*  2778*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  2780*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2783*/            OPC_EmitMergeInputChains1_0,
/*  2784*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFSX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st qfrc:{ *:[v4f64] }:$FRT, xoaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorev4f32>> - Complexity = 13
                      // Dst: (QVSTFSX qfrc:{ *:[v4f64] }:$FRT, xoaddr:{ *:[iPTR] }:$dst)
/*  2792*/          0, /*End of Scope*/
/*  2793*/        /*Scope*/ 39, /*->2833*/
/*  2794*/          OPC_RecordChild3, // #3 = $ptroff
/*  2795*/          OPC_Scope, 16, /*->2813*/ // 2 children in Scope
/*  2797*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  2799*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  2801*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  2803*/            OPC_EmitMergeInputChains1_0,
/*  2804*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::QVSTFDUX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (ist:{ *:[iPTR] } v4f64:{ *:[v4f64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 4
                      // Dst: (QVSTFDUX:{ *:[iPTR] } ?:{ *:[v4f64] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2813*/          /*Scope*/ 18, /*->2832*/
/*  2814*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  2816*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  2818*/            OPC_CheckPredicate, 11, // Predicate_pre_truncstv4f32
/*  2820*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  2822*/            OPC_EmitMergeInputChains1_0,
/*  2823*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::QVSTFSUXs), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::iPTR, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (ist:{ *:[iPTR] } v4f64:{ *:[v4f64] }:$rS, iPTR:{ *:[iPTR] }:$ptrreg, iPTR:{ *:[iPTR] }:$ptroff)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncstv4f32>> - Complexity = 4
                      // Dst: (QVSTFSUXs:{ *:[iPTR] } ?:{ *:[v4f64] }:$rS, ?:{ *:[iPTR] }:$ptrreg, ?:{ *:[iPTR] }:$ptroff)
/*  2832*/          0, /*End of Scope*/
/*  2833*/        0, /*End of Scope*/
/*  2834*/      0, /*End of Scope*/
/*  2835*/    0, /*End of Scope*/
/*  2836*/  /*SwitchOpcode*/ 44|128,5/*684*/, TARGET_VAL(PPCISD::ST_VSR_SCAL_INT),// ->3524
/*  2840*/    OPC_RecordNode, // #0 = 'PPCstore_scal_int_from_vsr' chained node
/*  2841*/    OPC_MoveChild1,
/*  2842*/    OPC_SwitchOpcode /*2 cases */, 80|128,2/*336*/, TARGET_VAL(PPCISD::FP_TO_SINT_IN_VSR),// ->3183
/*  2847*/      OPC_RecordChild0, // #1 = $src
/*  2848*/      OPC_Scope, 21|128,1/*149*/, /*->3000*/ // 2 children in Scope
/*  2851*/        OPC_CheckChild0Type, MVT::f64,
/*  2853*/        OPC_MoveParent,
/*  2854*/        OPC_RecordChild2, // #2 = $dst
/*  2855*/        OPC_Scope, 23, /*->2880*/ // 4 children in Scope
/*  2857*/          OPC_CheckChild3Integer, 4, 
/*  2859*/          OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/*  2861*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2864*/          OPC_EmitMergeInputChains1_0,
/*  2865*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  2872*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain,
                        3/*#Ops*/, 5, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst, 4:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STIWX (XSCVDPSXWS:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst)
/*  2880*/        /*Scope*/ 70, /*->2951*/
/*  2881*/          OPC_CheckChild3Integer, 8, 
/*  2883*/          OPC_Scope, 21, /*->2906*/ // 3 children in Scope
/*  2885*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  2887*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  2890*/            OPC_EmitMergeInputChains1_0,
/*  2891*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  2898*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSD), 0|OPFL_Chain,
                          3/*#Ops*/, 5, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), ixaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSD (XSCVDPSXDS:{ *:[f64] } f64:{ *:[f64] }:$src), ixaddr:{ *:[iPTR] }:$dst)
/*  2906*/          /*Scope*/ 21, /*->2928*/
/*  2907*/            OPC_CheckPatternPredicate, 10, // (!PPCSubTarget->hasP9Vector())
/*  2909*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2912*/            OPC_EmitMergeInputChains1_0,
/*  2913*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  2920*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSDX), 0|OPFL_Chain,
                          3/*#Ops*/, 5, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (XSCVDPSXDS:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst)
/*  2928*/          /*Scope*/ 21, /*->2950*/
/*  2929*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  2931*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  2934*/            OPC_EmitMergeInputChains1_0,
/*  2935*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  2942*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSDX), 0|OPFL_Chain,
                          3/*#Ops*/, 5, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (XSCVDPSXDS:{ *:[f64] } f64:{ *:[f64] }:$src), xaddr:{ *:[iPTR] }:$dst)
/*  2950*/          0, /*End of Scope*/
/*  2951*/        /*Scope*/ 23, /*->2975*/
/*  2952*/          OPC_CheckChild3Integer, 2, 
/*  2954*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  2956*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2959*/          OPC_EmitMergeInputChains1_0,
/*  2960*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  2967*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHX), 0|OPFL_Chain,
                        3/*#Ops*/, 5, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst, 2:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIHX (XSCVDPSXWS:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst)
/*  2975*/        /*Scope*/ 23, /*->2999*/
/*  2976*/          OPC_CheckChild3Integer, 1, 
/*  2978*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  2980*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2983*/          OPC_EmitMergeInputChains1_0,
/*  2984*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  2991*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBX), 0|OPFL_Chain,
                        3/*#Ops*/, 5, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst, 1:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIBX (XSCVDPSXWS:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst)
/*  2999*/        0, /*End of Scope*/
/*  3000*/      /*Scope*/ 52|128,1/*180*/, /*->3182*/
/*  3002*/        OPC_CheckChild0Type, MVT::f128,
/*  3004*/        OPC_MoveParent,
/*  3005*/        OPC_RecordChild2, // #2 = $dst
/*  3006*/        OPC_Scope, 68, /*->3076*/ // 4 children in Scope
/*  3008*/          OPC_CheckChild3Integer, 8, 
/*  3010*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3012*/          OPC_Scope, 30, /*->3044*/ // 2 children in Scope
/*  3014*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  3017*/            OPC_EmitMergeInputChains1_0,
/*  3018*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSDZ), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3025*/            OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3028*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3036*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSD), 0|OPFL_Chain,
                          3/*#Ops*/, 7, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), ixaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSD (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPSDZ:{ *:[f128] } f128:{ *:[f128] }:$src), VFRC:{ *:[i32] }), ixaddr:{ *:[iPTR] }:$dst)
/*  3044*/          /*Scope*/ 30, /*->3075*/
/*  3045*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  3048*/            OPC_EmitMergeInputChains1_0,
/*  3049*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSDZ), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3056*/            OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3059*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3067*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSDX), 0|OPFL_Chain,
                          3/*#Ops*/, 7, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), xaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPSDZ:{ *:[f128] } f128:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xaddr:{ *:[iPTR] }:$dst)
/*  3075*/          0, /*End of Scope*/
/*  3076*/        /*Scope*/ 34, /*->3111*/
/*  3077*/          OPC_CheckChild3Integer, 4, 
/*  3079*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3081*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3084*/          OPC_EmitMergeInputChains1_0,
/*  3085*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3092*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3095*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3103*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIWX), 0|OPFL_Chain,
                        3/*#Ops*/, 7, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), xoaddr:{ *:[iPTR] }:$dst, 4:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIWX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPSWZ:{ *:[f128] } ?:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3111*/        /*Scope*/ 34, /*->3146*/
/*  3112*/          OPC_CheckChild3Integer, 2, 
/*  3114*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3116*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3119*/          OPC_EmitMergeInputChains1_0,
/*  3120*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3127*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3130*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3138*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHX), 0|OPFL_Chain,
                        3/*#Ops*/, 7, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), xoaddr:{ *:[iPTR] }:$dst, 2:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIHX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPSWZ:{ *:[f128] } ?:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3146*/        /*Scope*/ 34, /*->3181*/
/*  3147*/          OPC_CheckChild3Integer, 1, 
/*  3149*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3151*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3154*/          OPC_EmitMergeInputChains1_0,
/*  3155*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3162*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3165*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3173*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBX), 0|OPFL_Chain,
                        3/*#Ops*/, 7, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_sint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), xoaddr:{ *:[iPTR] }:$dst, 1:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIBX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPSWZ:{ *:[f128] } ?:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3181*/        0, /*End of Scope*/
/*  3182*/      0, /*End of Scope*/
/*  3183*/    /*SwitchOpcode*/ 80|128,2/*336*/, TARGET_VAL(PPCISD::FP_TO_UINT_IN_VSR),// ->3523
/*  3187*/      OPC_RecordChild0, // #1 = $src
/*  3188*/      OPC_Scope, 21|128,1/*149*/, /*->3340*/ // 2 children in Scope
/*  3191*/        OPC_CheckChild0Type, MVT::f64,
/*  3193*/        OPC_MoveParent,
/*  3194*/        OPC_RecordChild2, // #2 = $dst
/*  3195*/        OPC_Scope, 23, /*->3220*/ // 4 children in Scope
/*  3197*/          OPC_CheckChild3Integer, 4, 
/*  3199*/          OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/*  3201*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3204*/          OPC_EmitMergeInputChains1_0,
/*  3205*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  3212*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain,
                        3/*#Ops*/, 5, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst, 4:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STIWX (XSCVDPUXWS:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst)
/*  3220*/        /*Scope*/ 70, /*->3291*/
/*  3221*/          OPC_CheckChild3Integer, 8, 
/*  3223*/          OPC_Scope, 21, /*->3246*/ // 3 children in Scope
/*  3225*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3227*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  3230*/            OPC_EmitMergeInputChains1_0,
/*  3231*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  3238*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSD), 0|OPFL_Chain,
                          3/*#Ops*/, 5, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), ixaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSD (XSCVDPUXDS:{ *:[f64] } f64:{ *:[f64] }:$src), ixaddr:{ *:[iPTR] }:$dst)
/*  3246*/          /*Scope*/ 21, /*->3268*/
/*  3247*/            OPC_CheckPatternPredicate, 10, // (!PPCSubTarget->hasP9Vector())
/*  3249*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3252*/            OPC_EmitMergeInputChains1_0,
/*  3253*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  3260*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSDX), 0|OPFL_Chain,
                          3/*#Ops*/, 5, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (XSCVDPUXDS:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst)
/*  3268*/          /*Scope*/ 21, /*->3290*/
/*  3269*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3271*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  3274*/            OPC_EmitMergeInputChains1_0,
/*  3275*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  3282*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSDX), 0|OPFL_Chain,
                          3/*#Ops*/, 5, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (XSCVDPUXDS:{ *:[f64] } f64:{ *:[f64] }:$src), xaddr:{ *:[iPTR] }:$dst)
/*  3290*/          0, /*End of Scope*/
/*  3291*/        /*Scope*/ 23, /*->3315*/
/*  3292*/          OPC_CheckChild3Integer, 2, 
/*  3294*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3296*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3299*/          OPC_EmitMergeInputChains1_0,
/*  3300*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  3307*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHX), 0|OPFL_Chain,
                        3/*#Ops*/, 5, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst, 2:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIHX (XSCVDPUXWS:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst)
/*  3315*/        /*Scope*/ 23, /*->3339*/
/*  3316*/          OPC_CheckChild3Integer, 1, 
/*  3318*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3320*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3323*/          OPC_EmitMergeInputChains1_0,
/*  3324*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  3331*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBX), 0|OPFL_Chain,
                        3/*#Ops*/, 5, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst, 1:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIBX (XSCVDPUXWS:{ *:[f64] } f64:{ *:[f64] }:$src), xoaddr:{ *:[iPTR] }:$dst)
/*  3339*/        0, /*End of Scope*/
/*  3340*/      /*Scope*/ 52|128,1/*180*/, /*->3522*/
/*  3342*/        OPC_CheckChild0Type, MVT::f128,
/*  3344*/        OPC_MoveParent,
/*  3345*/        OPC_RecordChild2, // #2 = $dst
/*  3346*/        OPC_Scope, 68, /*->3416*/ // 4 children in Scope
/*  3348*/          OPC_CheckChild3Integer, 8, 
/*  3350*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3352*/          OPC_Scope, 30, /*->3384*/ // 2 children in Scope
/*  3354*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  3357*/            OPC_EmitMergeInputChains1_0,
/*  3358*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUDZ), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3365*/            OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3368*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3376*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSD), 0|OPFL_Chain,
                          3/*#Ops*/, 7, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), ixaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSD (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPUDZ:{ *:[f128] } f128:{ *:[f128] }:$src), VFRC:{ *:[i32] }), ixaddr:{ *:[iPTR] }:$dst)
/*  3384*/          /*Scope*/ 30, /*->3415*/
/*  3385*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  3388*/            OPC_EmitMergeInputChains1_0,
/*  3389*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUDZ), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3396*/            OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3399*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3407*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSDX), 0|OPFL_Chain,
                          3/*#Ops*/, 7, 3, 4, 
                      // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), xaddr:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPUDZ:{ *:[f128] } f128:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xaddr:{ *:[iPTR] }:$dst)
/*  3415*/          0, /*End of Scope*/
/*  3416*/        /*Scope*/ 34, /*->3451*/
/*  3417*/          OPC_CheckChild3Integer, 4, 
/*  3419*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3421*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3424*/          OPC_EmitMergeInputChains1_0,
/*  3425*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3432*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3435*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3443*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIWX), 0|OPFL_Chain,
                        3/*#Ops*/, 7, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), xoaddr:{ *:[iPTR] }:$dst, 4:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIWX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPUWZ:{ *:[f128] } ?:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3451*/        /*Scope*/ 34, /*->3486*/
/*  3452*/          OPC_CheckChild3Integer, 2, 
/*  3454*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3456*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3459*/          OPC_EmitMergeInputChains1_0,
/*  3460*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3467*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3470*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3478*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHX), 0|OPFL_Chain,
                        3/*#Ops*/, 7, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), xoaddr:{ *:[iPTR] }:$dst, 2:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIHX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPUWZ:{ *:[f128] } ?:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3486*/        /*Scope*/ 34, /*->3521*/
/*  3487*/          OPC_CheckChild3Integer, 1, 
/*  3489*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3491*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3494*/          OPC_EmitMergeInputChains1_0,
/*  3495*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  3502*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  3505*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  3513*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBX), 0|OPFL_Chain,
                        3/*#Ops*/, 7, 3, 4, 
                    // Src: (PPCstore_scal_int_from_vsr (PPCcv_fp_to_uint_in_vsr:{ *:[f64] } f128:{ *:[f128] }:$src), xoaddr:{ *:[iPTR] }:$dst, 1:{ *:[iPTR] }) - Complexity = 420
                    // Dst: (STXSIBX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPUWZ:{ *:[f128] } ?:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3521*/        0, /*End of Scope*/
/*  3522*/      0, /*End of Scope*/
/*  3523*/    0, // EndSwitchOpcode
/*  3524*/  /*SwitchOpcode*/ 29|128,8/*1053*/, TARGET_VAL(ISD::INTRINSIC_VOID),// ->4581
/*  3528*/    OPC_RecordNode, // #0 = 'intrinsic_void' chained node
/*  3529*/    OPC_Scope, 53, /*->3584*/ // 43 children in Scope
/*  3531*/      OPC_CheckChild1Integer, 74|128,39/*5066*/, 
/*  3534*/      OPC_RecordChild2, // #1 = $rS
/*  3535*/      OPC_RecordChild3, // #2 = $dst
/*  3536*/      OPC_Scope, 14, /*->3552*/ // 2 children in Scope
/*  3538*/        OPC_CheckPatternPredicate, 11, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/*  3540*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3543*/        OPC_EmitMergeInputChains1_0,
/*  3544*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (intrinsic_void 5066:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                  // Dst: (STXVD2X ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3552*/      /*Scope*/ 30, /*->3583*/
/*  3553*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3555*/        OPC_Scope, 12, /*->3569*/ // 2 children in Scope
/*  3557*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  3560*/          OPC_EmitMergeInputChains1_0,
/*  3561*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (intrinsic_void 5066:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$rS, iqaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                    // Dst: (STXV ?:{ *:[v2f64] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  3569*/        /*Scope*/ 12, /*->3582*/
/*  3570*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3573*/          OPC_EmitMergeInputChains1_0,
/*  3574*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (intrinsic_void 5066:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                    // Dst: (STXVX ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3582*/        0, /*End of Scope*/
/*  3583*/      0, /*End of Scope*/
/*  3584*/    /*Scope*/ 19, /*->3604*/
/*  3585*/      OPC_CheckChild1Integer, 75|128,39/*5067*/, 
/*  3588*/      OPC_RecordChild2, // #1 = $rS
/*  3589*/      OPC_RecordChild3, // #2 = $dst
/*  3590*/      OPC_CheckPatternPredicate, 11, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/*  3592*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3595*/      OPC_EmitMergeInputChains1_0,
/*  3596*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5067:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                // Dst: (STXVD2X ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3604*/    /*Scope*/ 19, /*->3624*/
/*  3605*/      OPC_CheckChild1Integer, 79|128,39/*5071*/, 
/*  3608*/      OPC_RecordChild2, // #1 = $rS
/*  3609*/      OPC_RecordChild3, // #2 = $dst
/*  3610*/      OPC_CheckPatternPredicate, 11, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/*  3612*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3615*/      OPC_EmitMergeInputChains1_0,
/*  3616*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVW4X), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5071:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                // Dst: (STXVW4X ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3624*/    /*Scope*/ 53, /*->3678*/
/*  3625*/      OPC_CheckChild1Integer, 78|128,39/*5070*/, 
/*  3628*/      OPC_RecordChild2, // #1 = $rS
/*  3629*/      OPC_RecordChild3, // #2 = $dst
/*  3630*/      OPC_Scope, 14, /*->3646*/ // 2 children in Scope
/*  3632*/        OPC_CheckPatternPredicate, 2, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*  3634*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3637*/        OPC_EmitMergeInputChains1_0,
/*  3638*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVW4X), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (intrinsic_void 5070:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                  // Dst: (STXVW4X ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3646*/      /*Scope*/ 30, /*->3677*/
/*  3647*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3649*/        OPC_Scope, 12, /*->3663*/ // 2 children in Scope
/*  3651*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  3654*/          OPC_EmitMergeInputChains1_0,
/*  3655*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (intrinsic_void 5070:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, iqaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                    // Dst: (STXV ?:{ *:[v4i32] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  3663*/        /*Scope*/ 12, /*->3676*/
/*  3664*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3667*/          OPC_EmitMergeInputChains1_0,
/*  3668*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (intrinsic_void 5070:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                    // Dst: (STXVX ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3676*/        0, /*End of Scope*/
/*  3677*/      0, /*End of Scope*/
/*  3678*/    /*Scope*/ 20, /*->3699*/
/*  3679*/      OPC_CheckChild1Integer, 76|128,39/*5068*/, 
/*  3682*/      OPC_RecordChild2, // #1 = $XT
/*  3683*/      OPC_RecordChild3, // #2 = $dst
/*  3684*/      OPC_RecordChild4, // #3 = $rB
/*  3685*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3687*/      OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddr:$dst #4
/*  3690*/      OPC_EmitMergeInputChains1_0,
/*  3691*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVL), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 4, 3, 
                // Src: (intrinsic_void 5068:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XT, addr:{ *:[iPTR] }:$dst, i64:{ *:[i64] }:$rB) - Complexity = 414
                // Dst: (STXVL v4i32:{ *:[v4i32] }:$XT, addr:{ *:[iPTR] }:$dst, i64:{ *:[i64] }:$rB)
/*  3699*/    /*Scope*/ 20, /*->3720*/
/*  3700*/      OPC_CheckChild1Integer, 77|128,39/*5069*/, 
/*  3703*/      OPC_RecordChild2, // #1 = $XT
/*  3704*/      OPC_RecordChild3, // #2 = $dst
/*  3705*/      OPC_RecordChild4, // #3 = $rB
/*  3706*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  3708*/      OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddr:$dst #4
/*  3711*/      OPC_EmitMergeInputChains1_0,
/*  3712*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVLL), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 4, 3, 
                // Src: (intrinsic_void 5069:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XT, addr:{ *:[iPTR] }:$dst, i64:{ *:[i64] }:$rB) - Complexity = 414
                // Dst: (STXVLL v4i32:{ *:[v4i32] }:$XT, addr:{ *:[iPTR] }:$dst, i64:{ *:[i64] }:$rB)
/*  3720*/    /*Scope*/ 15, /*->3736*/
/*  3721*/      OPC_CheckChild1Integer, 68|128,38/*4932*/, 
/*  3724*/      OPC_RecordChild2, // #1 = $dst
/*  3725*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  3728*/      OPC_EmitMergeInputChains1_0,
/*  3729*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBA), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 4932:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBA xoaddr:{ *:[iPTR] }:$dst)
/*  3736*/    /*Scope*/ 15, /*->3752*/
/*  3737*/      OPC_CheckChild1Integer, 70|128,38/*4934*/, 
/*  3740*/      OPC_RecordChild2, // #1 = $dst
/*  3741*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  3744*/      OPC_EmitMergeInputChains1_0,
/*  3745*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBI), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 4934:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBI xoaddr:{ *:[iPTR] }:$dst)
/*  3752*/    /*Scope*/ 15, /*->3768*/
/*  3753*/      OPC_CheckChild1Integer, 71|128,38/*4935*/, 
/*  3756*/      OPC_RecordChild2, // #1 = $dst
/*  3757*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  3760*/      OPC_EmitMergeInputChains1_0,
/*  3761*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBST), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 4935:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBST xoaddr:{ *:[iPTR] }:$dst)
/*  3768*/    /*Scope*/ 15, /*->3784*/
/*  3769*/      OPC_CheckChild1Integer, 74|128,38/*4938*/, 
/*  3772*/      OPC_RecordChild2, // #1 = $dst
/*  3773*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  3776*/      OPC_EmitMergeInputChains1_0,
/*  3777*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBZ), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 4938:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBZ xoaddr:{ *:[iPTR] }:$dst)
/*  3784*/    /*Scope*/ 15, /*->3800*/
/*  3785*/      OPC_CheckChild1Integer, 75|128,38/*4939*/, 
/*  3788*/      OPC_RecordChild2, // #1 = $dst
/*  3789*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  3792*/      OPC_EmitMergeInputChains1_0,
/*  3793*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBZL), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 4939:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBZL xoaddr:{ *:[iPTR] }:$dst)
/*  3800*/    /*Scope*/ 19, /*->3820*/
/*  3801*/      OPC_CheckChild1Integer, 72|128,38/*4936*/, 
/*  3804*/      OPC_RecordChild2, // #1 = $dst
/*  3805*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  3808*/      OPC_EmitMergeInputChains1_0,
/*  3809*/      OPC_EmitInteger, MVT::i32, 0, 
/*  3812*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBT), 0|OPFL_Chain,
                    3/*#Ops*/, 4, 2, 3, 
                // Src: (intrinsic_void 4936:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBT 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/*  3820*/    /*Scope*/ 19, /*->3840*/
/*  3821*/      OPC_CheckChild1Integer, 73|128,38/*4937*/, 
/*  3824*/      OPC_RecordChild2, // #1 = $dst
/*  3825*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  3828*/      OPC_EmitMergeInputChains1_0,
/*  3829*/      OPC_EmitInteger, MVT::i32, 0, 
/*  3832*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBTST), 0|OPFL_Chain,
                    3/*#Ops*/, 4, 2, 3, 
                // Src: (intrinsic_void 4937:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBTST 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/*  3840*/    /*Scope*/ 19, /*->3860*/
/*  3841*/      OPC_CheckChild1Integer, 69|128,38/*4933*/, 
/*  3844*/      OPC_RecordChild2, // #1 = $dst
/*  3845*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  3848*/      OPC_EmitMergeInputChains1_0,
/*  3849*/      OPC_EmitInteger, MVT::i32, 0, 
/*  3852*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBF), 0|OPFL_Chain,
                    3/*#Ops*/, 4, 2, 3, 
                // Src: (intrinsic_void 4933:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBF 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/*  3860*/    /*Scope*/ 19, /*->3880*/
/*  3861*/      OPC_CheckChild1Integer, 8|128,37/*4744*/, 
/*  3864*/      OPC_RecordChild2, // #1 = $rS
/*  3865*/      OPC_RecordChild3, // #2 = $dst
/*  3866*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  3868*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3871*/      OPC_EmitMergeInputChains1_0,
/*  3872*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVEBX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 4744:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVEBX v16i8:{ *:[v16i8] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3880*/    /*Scope*/ 19, /*->3900*/
/*  3881*/      OPC_CheckChild1Integer, 9|128,37/*4745*/, 
/*  3884*/      OPC_RecordChild2, // #1 = $rS
/*  3885*/      OPC_RecordChild3, // #2 = $dst
/*  3886*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  3888*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3891*/      OPC_EmitMergeInputChains1_0,
/*  3892*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVEHX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 4745:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVEHX v8i16:{ *:[v8i16] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3900*/    /*Scope*/ 19, /*->3920*/
/*  3901*/      OPC_CheckChild1Integer, 10|128,37/*4746*/, 
/*  3904*/      OPC_RecordChild2, // #1 = $rS
/*  3905*/      OPC_RecordChild3, // #2 = $dst
/*  3906*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  3908*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3911*/      OPC_EmitMergeInputChains1_0,
/*  3912*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVEWX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 4746:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVEWX v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3920*/    /*Scope*/ 19, /*->3940*/
/*  3921*/      OPC_CheckChild1Integer, 11|128,37/*4747*/, 
/*  3924*/      OPC_RecordChild2, // #1 = $rS
/*  3925*/      OPC_RecordChild3, // #2 = $dst
/*  3926*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  3928*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3931*/      OPC_EmitMergeInputChains1_0,
/*  3932*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 4747:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVX v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3940*/    /*Scope*/ 19, /*->3960*/
/*  3941*/      OPC_CheckChild1Integer, 12|128,37/*4748*/, 
/*  3944*/      OPC_RecordChild2, // #1 = $rS
/*  3945*/      OPC_RecordChild3, // #2 = $dst
/*  3946*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  3948*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3951*/      OPC_EmitMergeInputChains1_0,
/*  3952*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVXL), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 4748:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVXL v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  3960*/    /*Scope*/ 19, /*->3980*/
/*  3961*/      OPC_CheckChild1Integer, 39|128,39/*5031*/, 
/*  3964*/      OPC_RecordChild2, // #1 = $T
/*  3965*/      OPC_RecordChild3, // #2 = $dst
/*  3966*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  3968*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3971*/      OPC_EmitMergeInputChains1_0,
/*  3972*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFDX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5031:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFDX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  3980*/    /*Scope*/ 19, /*->4000*/
/*  3981*/      OPC_CheckChild1Integer, 43|128,39/*5035*/, 
/*  3984*/      OPC_RecordChild2, // #1 = $T
/*  3985*/      OPC_RecordChild3, // #2 = $dst
/*  3986*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  3988*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3991*/      OPC_EmitMergeInputChains1_0,
/*  3992*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFSX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5035:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFSX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4000*/    /*Scope*/ 19, /*->4020*/
/*  4001*/      OPC_CheckChild1Integer, 36|128,39/*5028*/, 
/*  4004*/      OPC_RecordChild2, // #1 = $T
/*  4005*/      OPC_RecordChild3, // #2 = $dst
/*  4006*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  4008*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4011*/      OPC_EmitMergeInputChains1_0,
/*  4012*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFCDXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5028:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFCDXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4020*/    /*Scope*/ 19, /*->4040*/
/*  4021*/      OPC_CheckChild1Integer, 35|128,39/*5027*/, 
/*  4024*/      OPC_RecordChild2, // #1 = $T
/*  4025*/      OPC_RecordChild3, // #2 = $dst
/*  4026*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  4028*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4031*/      OPC_EmitMergeInputChains1_0,
/*  4032*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFCDX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5027:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFCDX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4040*/    /*Scope*/ 19, /*->4060*/
/*  4041*/      OPC_CheckChild1Integer, 38|128,39/*5030*/, 
/*  4044*/      OPC_RecordChild2, // #1 = $T
/*  4045*/      OPC_RecordChild3, // #2 = $dst
/*  4046*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  4048*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4051*/      OPC_EmitMergeInputChains1_0,
/*  4052*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFCSXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5030:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFCSXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4060*/    /*Scope*/ 19, /*->4080*/
/*  4061*/      OPC_CheckChild1Integer, 37|128,39/*5029*/, 
/*  4064*/      OPC_RecordChild2, // #1 = $T
/*  4065*/      OPC_RecordChild3, // #2 = $dst
/*  4066*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  4068*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4071*/      OPC_EmitMergeInputChains1_0,
/*  4072*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFCSX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5029:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFCSX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4080*/    /*Scope*/ 19, /*->4100*/
/*  4081*/      OPC_CheckChild1Integer, 40|128,39/*5032*/, 
/*  4084*/      OPC_RecordChild2, // #1 = $T
/*  4085*/      OPC_RecordChild3, // #2 = $dst
/*  4086*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  4088*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4091*/      OPC_EmitMergeInputChains1_0,
/*  4092*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFDXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5032:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFDXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4100*/    /*Scope*/ 19, /*->4120*/
/*  4101*/      OPC_CheckChild1Integer, 42|128,39/*5034*/, 
/*  4104*/      OPC_RecordChild2, // #1 = $T
/*  4105*/      OPC_RecordChild3, // #2 = $dst
/*  4106*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  4108*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4111*/      OPC_EmitMergeInputChains1_0,
/*  4112*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFIWXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5034:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFIWXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4120*/    /*Scope*/ 19, /*->4140*/
/*  4121*/      OPC_CheckChild1Integer, 41|128,39/*5033*/, 
/*  4124*/      OPC_RecordChild2, // #1 = $T
/*  4125*/      OPC_RecordChild3, // #2 = $dst
/*  4126*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  4128*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4131*/      OPC_EmitMergeInputChains1_0,
/*  4132*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFIWX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5033:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFIWX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4140*/    /*Scope*/ 19, /*->4160*/
/*  4141*/      OPC_CheckChild1Integer, 44|128,39/*5036*/, 
/*  4144*/      OPC_RecordChild2, // #1 = $T
/*  4145*/      OPC_RecordChild3, // #2 = $dst
/*  4146*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*  4148*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4151*/      OPC_EmitMergeInputChains1_0,
/*  4152*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFSXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5036:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFSXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  4160*/    /*Scope*/ 20, /*->4181*/
/*  4161*/      OPC_CheckChild1Integer, 121|128,36/*4729*/, 
/*  4164*/      OPC_RecordChild2, // #1 = $STRM
/*  4165*/      OPC_MoveChild2,
/*  4166*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4169*/      OPC_MoveParent,
/*  4170*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4172*/      OPC_EmitMergeInputChains1_0,
/*  4173*/      OPC_EmitConvertToTarget, 1,
/*  4175*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DSS), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (intrinsic_void 4729:{ *:[iPTR] }, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                // Dst: (DSS (imm:{ *:[i32] }):$STRM)
/*  4181*/    /*Scope*/ 52, /*->4234*/
/*  4182*/      OPC_CheckChild1Integer, 123|128,36/*4731*/, 
/*  4185*/      OPC_RecordChild2, // #1 = $rA
/*  4186*/      OPC_Scope, 22, /*->4210*/ // 2 children in Scope
/*  4188*/        OPC_CheckChild2Type, MVT::i32,
/*  4190*/        OPC_RecordChild3, // #2 = $rB
/*  4191*/        OPC_RecordChild4, // #3 = $STRM
/*  4192*/        OPC_MoveChild4,
/*  4193*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4196*/        OPC_MoveParent,
/*  4197*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4199*/        OPC_EmitMergeInputChains1_0,
/*  4200*/        OPC_EmitConvertToTarget, 3,
/*  4202*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DST), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 4731:{ *:[iPTR] }, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DST (imm:{ *:[i32] }):$STRM, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/*  4210*/      /*Scope*/ 22, /*->4233*/
/*  4211*/        OPC_CheckChild2Type, MVT::i64,
/*  4213*/        OPC_RecordChild3, // #2 = $rB
/*  4214*/        OPC_RecordChild4, // #3 = $STRM
/*  4215*/        OPC_MoveChild4,
/*  4216*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4219*/        OPC_MoveParent,
/*  4220*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4222*/        OPC_EmitMergeInputChains1_0,
/*  4223*/        OPC_EmitConvertToTarget, 3,
/*  4225*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DST64), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 4731:{ *:[iPTR] }, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DST64 (imm:{ *:[i32] }):$STRM, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB)
/*  4233*/      0, /*End of Scope*/
/*  4234*/    /*Scope*/ 52, /*->4287*/
/*  4235*/      OPC_CheckChild1Integer, 126|128,36/*4734*/, 
/*  4238*/      OPC_RecordChild2, // #1 = $rA
/*  4239*/      OPC_Scope, 22, /*->4263*/ // 2 children in Scope
/*  4241*/        OPC_CheckChild2Type, MVT::i32,
/*  4243*/        OPC_RecordChild3, // #2 = $rB
/*  4244*/        OPC_RecordChild4, // #3 = $STRM
/*  4245*/        OPC_MoveChild4,
/*  4246*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4249*/        OPC_MoveParent,
/*  4250*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4252*/        OPC_EmitMergeInputChains1_0,
/*  4253*/        OPC_EmitConvertToTarget, 3,
/*  4255*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTT), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 4734:{ *:[iPTR] }, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTT (imm:{ *:[i32] }):$STRM, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/*  4263*/      /*Scope*/ 22, /*->4286*/
/*  4264*/        OPC_CheckChild2Type, MVT::i64,
/*  4266*/        OPC_RecordChild3, // #2 = $rB
/*  4267*/        OPC_RecordChild4, // #3 = $STRM
/*  4268*/        OPC_MoveChild4,
/*  4269*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4272*/        OPC_MoveParent,
/*  4273*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4275*/        OPC_EmitMergeInputChains1_0,
/*  4276*/        OPC_EmitConvertToTarget, 3,
/*  4278*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTT64), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 4734:{ *:[iPTR] }, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTT64 (imm:{ *:[i32] }):$STRM, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB)
/*  4286*/      0, /*End of Scope*/
/*  4287*/    /*Scope*/ 52, /*->4340*/
/*  4288*/      OPC_CheckChild1Integer, 124|128,36/*4732*/, 
/*  4291*/      OPC_RecordChild2, // #1 = $rA
/*  4292*/      OPC_Scope, 22, /*->4316*/ // 2 children in Scope
/*  4294*/        OPC_CheckChild2Type, MVT::i32,
/*  4296*/        OPC_RecordChild3, // #2 = $rB
/*  4297*/        OPC_RecordChild4, // #3 = $STRM
/*  4298*/        OPC_MoveChild4,
/*  4299*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4302*/        OPC_MoveParent,
/*  4303*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4305*/        OPC_EmitMergeInputChains1_0,
/*  4306*/        OPC_EmitConvertToTarget, 3,
/*  4308*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTST), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 4732:{ *:[iPTR] }, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTST (imm:{ *:[i32] }):$STRM, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/*  4316*/      /*Scope*/ 22, /*->4339*/
/*  4317*/        OPC_CheckChild2Type, MVT::i64,
/*  4319*/        OPC_RecordChild3, // #2 = $rB
/*  4320*/        OPC_RecordChild4, // #3 = $STRM
/*  4321*/        OPC_MoveChild4,
/*  4322*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4325*/        OPC_MoveParent,
/*  4326*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4328*/        OPC_EmitMergeInputChains1_0,
/*  4329*/        OPC_EmitConvertToTarget, 3,
/*  4331*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTST64), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 4732:{ *:[iPTR] }, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTST64 (imm:{ *:[i32] }):$STRM, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB)
/*  4339*/      0, /*End of Scope*/
/*  4340*/    /*Scope*/ 52, /*->4393*/
/*  4341*/      OPC_CheckChild1Integer, 125|128,36/*4733*/, 
/*  4344*/      OPC_RecordChild2, // #1 = $rA
/*  4345*/      OPC_Scope, 22, /*->4369*/ // 2 children in Scope
/*  4347*/        OPC_CheckChild2Type, MVT::i32,
/*  4349*/        OPC_RecordChild3, // #2 = $rB
/*  4350*/        OPC_RecordChild4, // #3 = $STRM
/*  4351*/        OPC_MoveChild4,
/*  4352*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4355*/        OPC_MoveParent,
/*  4356*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4358*/        OPC_EmitMergeInputChains1_0,
/*  4359*/        OPC_EmitConvertToTarget, 3,
/*  4361*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTSTT), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 4733:{ *:[iPTR] }, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTSTT (imm:{ *:[i32] }):$STRM, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/*  4369*/      /*Scope*/ 22, /*->4392*/
/*  4370*/        OPC_CheckChild2Type, MVT::i64,
/*  4372*/        OPC_RecordChild3, // #2 = $rB
/*  4373*/        OPC_RecordChild4, // #3 = $STRM
/*  4374*/        OPC_MoveChild4,
/*  4375*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4378*/        OPC_MoveParent,
/*  4379*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4381*/        OPC_EmitMergeInputChains1_0,
/*  4382*/        OPC_EmitConvertToTarget, 3,
/*  4384*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTSTT64), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 4733:{ *:[iPTR] }, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTSTT64 (imm:{ *:[i32] }):$STRM, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB)
/*  4392*/      0, /*End of Scope*/
/*  4393*/    /*Scope*/ 27, /*->4421*/
/*  4394*/      OPC_CheckChild1Integer, 51|128,39/*5043*/, 
/*  4397*/      OPC_Scope, 12, /*->4411*/ // 2 children in Scope
/*  4399*/        OPC_CheckPatternPredicate, 12, // (!PPCSubTarget->hasOnlyMSYNC())
/*  4401*/        OPC_EmitMergeInputChains1_0,
/*  4402*/        OPC_EmitInteger, MVT::i32, 0, 
/*  4405*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 5043:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (SYNC 0:{ *:[i32] })
/*  4411*/      /*Scope*/ 8, /*->4420*/
/*  4412*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasOnlyMSYNC())
/*  4414*/        OPC_EmitMergeInputChains1_0,
/*  4415*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::MSYNC), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 5043:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (MSYNC)
/*  4420*/      0, /*End of Scope*/
/*  4421*/    /*Scope*/ 27, /*->4449*/
/*  4422*/      OPC_CheckChild1Integer, 87|128,38/*4951*/, 
/*  4425*/      OPC_Scope, 12, /*->4439*/ // 2 children in Scope
/*  4427*/        OPC_CheckPatternPredicate, 12, // (!PPCSubTarget->hasOnlyMSYNC())
/*  4429*/        OPC_EmitMergeInputChains1_0,
/*  4430*/        OPC_EmitInteger, MVT::i32, 1, 
/*  4433*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 4951:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (SYNC 1:{ *:[i32] })
/*  4439*/      /*Scope*/ 8, /*->4448*/
/*  4440*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasOnlyMSYNC())
/*  4442*/        OPC_EmitMergeInputChains1_0,
/*  4443*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::MSYNC), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 4951:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (MSYNC)
/*  4448*/      0, /*End of Scope*/
/*  4449*/    /*Scope*/ 28, /*->4478*/
/*  4450*/      OPC_CheckChild1Integer, 88|128,38/*4952*/, 
/*  4453*/      OPC_RecordChild2, // #1 = $rS
/*  4454*/      OPC_Scope, 10, /*->4466*/ // 2 children in Scope
/*  4456*/        OPC_CheckChild2Type, MVT::i32,
/*  4458*/        OPC_EmitMergeInputChains1_0,
/*  4459*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MTCTRloop), 0|OPFL_Chain,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 4952:{ *:[iPTR] }, i32:{ *:[i32] }:$rS) - Complexity = 8
                  // Dst: (MTCTRloop:{ *:[i32] } i32:{ *:[i32] }:$rS)
/*  4466*/      /*Scope*/ 10, /*->4477*/
/*  4467*/        OPC_CheckChild2Type, MVT::i64,
/*  4469*/        OPC_EmitMergeInputChains1_0,
/*  4470*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MTCTR8loop), 0|OPFL_Chain,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 4952:{ *:[iPTR] }, i64:{ *:[i64] }:$rS) - Complexity = 8
                  // Dst: (MTCTR8loop:{ *:[i64] } i64:{ *:[i64] }:$rS)
/*  4477*/      0, /*End of Scope*/
/*  4478*/    /*Scope*/ 11, /*->4490*/
/*  4479*/      OPC_CheckChild1Integer, 122|128,36/*4730*/, 
/*  4482*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4484*/      OPC_EmitMergeInputChains1_0,
/*  4485*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DSSALL), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 4730:{ *:[iPTR] }) - Complexity = 8
                // Dst: (DSSALL)
/*  4490*/    /*Scope*/ 13, /*->4504*/
/*  4491*/      OPC_CheckChild1Integer, 7|128,37/*4743*/, 
/*  4494*/      OPC_RecordChild2, // #1 = $vB
/*  4495*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*  4497*/      OPC_EmitMergeInputChains1_0,
/*  4498*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTVSCR), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 4743:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (MTVSCR v4i32:{ *:[v4i32] }:$vB)
/*  4504*/    /*Scope*/ 18, /*->4523*/
/*  4505*/      OPC_CheckChild1Integer, 45|128,39/*5037*/, 
/*  4508*/      OPC_RecordChild2, // #1 = $V
/*  4509*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/*  4511*/      OPC_EmitMergeInputChains1_0,
/*  4512*/      OPC_EmitInteger, MVT::i32, 2|128,1/*130*/, 
/*  4516*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTSPR8), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 1, 
                // Src: (intrinsic_void 5037:{ *:[iPTR] }, i64:{ *:[i64] }:$V) - Complexity = 8
                // Dst: (MTSPR8 130:{ *:[i32] }, ?:{ *:[i64] }:$V)
/*  4523*/    /*Scope*/ 18, /*->4542*/
/*  4524*/      OPC_CheckChild1Integer, 46|128,39/*5038*/, 
/*  4527*/      OPC_RecordChild2, // #1 = $V
/*  4528*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/*  4530*/      OPC_EmitMergeInputChains1_0,
/*  4531*/      OPC_EmitInteger, MVT::i32, 3|128,1/*131*/, 
/*  4535*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTSPR8), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 1, 
                // Src: (intrinsic_void 5038:{ *:[iPTR] }, i64:{ *:[i64] }:$V) - Complexity = 8
                // Dst: (MTSPR8 131:{ *:[i32] }, ?:{ *:[i64] }:$V)
/*  4542*/    /*Scope*/ 18, /*->4561*/
/*  4543*/      OPC_CheckChild1Integer, 47|128,39/*5039*/, 
/*  4546*/      OPC_RecordChild2, // #1 = $V
/*  4547*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/*  4549*/      OPC_EmitMergeInputChains1_0,
/*  4550*/      OPC_EmitInteger, MVT::i32, 0|128,1/*128*/, 
/*  4554*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTSPR8), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 1, 
                // Src: (intrinsic_void 5039:{ *:[iPTR] }, i64:{ *:[i64] }:$V) - Complexity = 8
                // Dst: (MTSPR8 128:{ *:[i32] }, ?:{ *:[i64] }:$V)
/*  4561*/    /*Scope*/ 18, /*->4580*/
/*  4562*/      OPC_CheckChild1Integer, 48|128,39/*5040*/, 
/*  4565*/      OPC_RecordChild2, // #1 = $V
/*  4566*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/*  4568*/      OPC_EmitMergeInputChains1_0,
/*  4569*/      OPC_EmitInteger, MVT::i32, 1|128,1/*129*/, 
/*  4573*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTSPR8), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 1, 
                // Src: (intrinsic_void 5040:{ *:[iPTR] }, i64:{ *:[i64] }:$V) - Complexity = 8
                // Dst: (MTSPR8 129:{ *:[i32] }, ?:{ *:[i64] }:$V)
/*  4580*/    0, /*End of Scope*/
/*  4581*/  /*SwitchOpcode*/ 39, TARGET_VAL(PPCISD::STXSIX),// ->4623
/*  4584*/    OPC_RecordNode, // #0 = 'PPCstxsix' chained node
/*  4585*/    OPC_RecordChild1, // #1 = $XT
/*  4586*/    OPC_RecordChild2, // #2 = $dst
/*  4587*/    OPC_Scope, 16, /*->4605*/ // 2 children in Scope
/*  4589*/      OPC_CheckChild3Integer, 1, 
/*  4591*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  4593*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4596*/      OPC_EmitMergeInputChains1_0,
/*  4597*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCstxsix f64:{ *:[f64] }:$XT, xoaddr:{ *:[iPTR] }:$dst, 1:{ *:[iPTR] }) - Complexity = 417
                // Dst: (STXSIBX f64:{ *:[f64] }:$XT, xoaddr:{ *:[iPTR] }:$dst)
/*  4605*/    /*Scope*/ 16, /*->4622*/
/*  4606*/      OPC_CheckChild3Integer, 2, 
/*  4608*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*  4610*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4613*/      OPC_EmitMergeInputChains1_0,
/*  4614*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCstxsix f64:{ *:[f64] }:$XT, xoaddr:{ *:[iPTR] }:$dst, 2:{ *:[iPTR] }) - Complexity = 417
                // Dst: (STXSIHX f64:{ *:[f64] }:$XT, xoaddr:{ *:[iPTR] }:$dst)
/*  4622*/    0, /*End of Scope*/
/*  4623*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::STXVD2X),// ->4643
/*  4626*/    OPC_RecordNode, // #0 = 'PPCstxvd2x' chained node
/*  4627*/    OPC_RecordChild1, // #1 = $rS
/*  4628*/    OPC_RecordChild2, // #2 = $dst
/*  4629*/    OPC_CheckPatternPredicate, 11, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/*  4631*/    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4634*/    OPC_EmitMergeInputChains1_0,
/*  4635*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain,
                  3/*#Ops*/, 1, 3, 4, 
              // Src: (PPCstxvd2x v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 412
              // Dst: (STXVD2X ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  4643*/  /*SwitchOpcode*/ 35, TARGET_VAL(PPCISD::STFIWX),// ->4681
/*  4646*/    OPC_RecordNode, // #0 = 'PPCstfiwx' chained node
/*  4647*/    OPC_RecordChild1, // #1 = $XT
/*  4648*/    OPC_RecordChild2, // #2 = $dst
/*  4649*/    OPC_Scope, 14, /*->4665*/ // 2 children in Scope
/*  4651*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/*  4653*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4656*/      OPC_EmitMergeInputChains1_0,
/*  4657*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCstfiwx f64:{ *:[f64] }:$XT, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 412
                // Dst: (STIWX f64:{ *:[f64] }:$XT, xoaddr:{ *:[iPTR] }:$dst)
/*  4665*/    /*Scope*/ 14, /*->4680*/
/*  4666*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/*  4668*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4671*/      OPC_EmitMergeInputChains1_0,
/*  4672*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STFIWX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCstfiwx f64:{ *:[f64] }:$frS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 12
                // Dst: (STFIWX f64:{ *:[f64] }:$frS, xoaddr:{ *:[iPTR] }:$dst)
/*  4680*/    0, /*End of Scope*/
/*  4681*/  /*SwitchOpcode*/ 115|128,78/*10099*/, TARGET_VAL(ISD::ANY_EXTEND),// ->14784
/*  4685*/    OPC_Scope, 19|128,78/*10003*/, /*->14691*/ // 2 children in Scope
/*  4688*/      OPC_MoveChild0,
/*  4689*/      OPC_SwitchOpcode /*2 cases */, 1|128,4/*513*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->5207
/*  4694*/        OPC_RecordChild0, // #0 = $S
/*  4695*/        OPC_CheckType, MVT::i32,
/*  4697*/        OPC_Scope, 89|128,3/*473*/, /*->5173*/ // 2 children in Scope
/*  4700*/          OPC_CheckChild0Type, MVT::v8i16,
/*  4702*/          OPC_Scope, 49, /*->4753*/ // 9 children in Scope
/*  4704*/            OPC_CheckChild1Integer, 0, 
/*  4706*/            OPC_MoveParent,
/*  4707*/            OPC_CheckType, MVT::i64,
/*  4709*/            OPC_Scope, 20, /*->4731*/ // 2 children in Scope
/*  4711*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  4713*/              OPC_EmitInteger, MVT::i64, 0, 
/*  4716*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4723*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4731*/            /*Scope*/ 20, /*->4752*/
/*  4732*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  4734*/              OPC_EmitInteger, MVT::i64, 0, 
/*  4737*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4744*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4752*/            0, /*End of Scope*/
/*  4753*/          /*Scope*/ 49, /*->4803*/
/*  4754*/            OPC_CheckChild1Integer, 1, 
/*  4756*/            OPC_MoveParent,
/*  4757*/            OPC_CheckType, MVT::i64,
/*  4759*/            OPC_Scope, 20, /*->4781*/ // 2 children in Scope
/*  4761*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  4763*/              OPC_EmitInteger, MVT::i64, 2, 
/*  4766*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4773*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 2:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4781*/            /*Scope*/ 20, /*->4802*/
/*  4782*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  4784*/              OPC_EmitInteger, MVT::i64, 2, 
/*  4787*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4794*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 2:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4802*/            0, /*End of Scope*/
/*  4803*/          /*Scope*/ 49, /*->4853*/
/*  4804*/            OPC_CheckChild1Integer, 2, 
/*  4806*/            OPC_MoveParent,
/*  4807*/            OPC_CheckType, MVT::i64,
/*  4809*/            OPC_Scope, 20, /*->4831*/ // 2 children in Scope
/*  4811*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  4813*/              OPC_EmitInteger, MVT::i64, 4, 
/*  4816*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4823*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 2:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4831*/            /*Scope*/ 20, /*->4852*/
/*  4832*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  4834*/              OPC_EmitInteger, MVT::i64, 4, 
/*  4837*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4844*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 2:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4852*/            0, /*End of Scope*/
/*  4853*/          /*Scope*/ 49, /*->4903*/
/*  4854*/            OPC_CheckChild1Integer, 3, 
/*  4856*/            OPC_MoveParent,
/*  4857*/            OPC_CheckType, MVT::i64,
/*  4859*/            OPC_Scope, 20, /*->4881*/ // 2 children in Scope
/*  4861*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  4863*/              OPC_EmitInteger, MVT::i64, 6, 
/*  4866*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4873*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 3:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 6:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4881*/            /*Scope*/ 20, /*->4902*/
/*  4882*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  4884*/              OPC_EmitInteger, MVT::i64, 6, 
/*  4887*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4894*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 3:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 6:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4902*/            0, /*End of Scope*/
/*  4903*/          /*Scope*/ 49, /*->4953*/
/*  4904*/            OPC_CheckChild1Integer, 4, 
/*  4906*/            OPC_MoveParent,
/*  4907*/            OPC_CheckType, MVT::i64,
/*  4909*/            OPC_Scope, 20, /*->4931*/ // 2 children in Scope
/*  4911*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  4913*/              OPC_EmitInteger, MVT::i64, 8, 
/*  4916*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4923*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 4:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4931*/            /*Scope*/ 20, /*->4952*/
/*  4932*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  4934*/              OPC_EmitInteger, MVT::i64, 8, 
/*  4937*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4944*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 4:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4952*/            0, /*End of Scope*/
/*  4953*/          /*Scope*/ 49, /*->5003*/
/*  4954*/            OPC_CheckChild1Integer, 5, 
/*  4956*/            OPC_MoveParent,
/*  4957*/            OPC_CheckType, MVT::i64,
/*  4959*/            OPC_Scope, 20, /*->4981*/ // 2 children in Scope
/*  4961*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  4963*/              OPC_EmitInteger, MVT::i64, 10, 
/*  4966*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4973*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 5:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 10:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  4981*/            /*Scope*/ 20, /*->5002*/
/*  4982*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  4984*/              OPC_EmitInteger, MVT::i64, 10, 
/*  4987*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  4994*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 5:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 10:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  5002*/            0, /*End of Scope*/
/*  5003*/          /*Scope*/ 49, /*->5053*/
/*  5004*/            OPC_CheckChild1Integer, 6, 
/*  5006*/            OPC_MoveParent,
/*  5007*/            OPC_CheckType, MVT::i64,
/*  5009*/            OPC_Scope, 20, /*->5031*/ // 2 children in Scope
/*  5011*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  5013*/              OPC_EmitInteger, MVT::i64, 12, 
/*  5016*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  5023*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  5031*/            /*Scope*/ 20, /*->5052*/
/*  5032*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  5034*/              OPC_EmitInteger, MVT::i64, 12, 
/*  5037*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  5044*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  5052*/            0, /*End of Scope*/
/*  5053*/          /*Scope*/ 49, /*->5103*/
/*  5054*/            OPC_CheckChild1Integer, 7, 
/*  5056*/            OPC_MoveParent,
/*  5057*/            OPC_CheckType, MVT::i64,
/*  5059*/            OPC_Scope, 20, /*->5081*/ // 2 children in Scope
/*  5061*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  5063*/              OPC_EmitInteger, MVT::i64, 14, 
/*  5066*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  5073*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 7:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 14:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  5081*/            /*Scope*/ 20, /*->5102*/
/*  5082*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  5084*/              OPC_EmitInteger, MVT::i64, 14, 
/*  5087*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  5094*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 2, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 7:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 14:{ *:[i64] }), ?:{ *:[v8i16] }:$S)
/*  5102*/            0, /*End of Scope*/
/*  5103*/          /*Scope*/ 68, /*->5172*/
/*  5104*/            OPC_RecordChild1, // #1 = $Idx
/*  5105*/            OPC_CheckChild1Type, MVT::i64,
/*  5107*/            OPC_MoveParent,
/*  5108*/            OPC_CheckType, MVT::i64,
/*  5110*/            OPC_Scope, 29, /*->5141*/ // 2 children in Scope
/*  5112*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  5114*/              OPC_EmitInteger, MVT::i32, 1, 
/*  5117*/              OPC_EmitInteger, MVT::i32, 28, 
/*  5120*/              OPC_EmitInteger, MVT::i32, 30, 
/*  5123*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                            MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*  5133*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHRX), 0,
                            MVT::i64, 2/*#Ops*/, 5, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, i64:{ *:[i64] }:$Idx)) - Complexity = 406
                        // Dst: (VEXTUHRX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 1:{ *:[i32] }, 28:{ *:[i32] }, 30:{ *:[i32] }), ?:{ *:[v8i16] }:$S)
/*  5141*/            /*Scope*/ 29, /*->5171*/
/*  5142*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  5144*/              OPC_EmitInteger, MVT::i32, 1, 
/*  5147*/              OPC_EmitInteger, MVT::i32, 28, 
/*  5150*/              OPC_EmitInteger, MVT::i32, 30, 
/*  5153*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                            MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*  5163*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUHLX), 0,
                            MVT::i64, 2/*#Ops*/, 5, 0, 
                        // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, i64:{ *:[i64] }:$Idx)) - Complexity = 406
                        // Dst: (VEXTUHLX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 1:{ *:[i32] }, 28:{ *:[i32] }, 30:{ *:[i32] }), ?:{ *:[v8i16] }:$S)
/*  5171*/            0, /*End of Scope*/
/*  5172*/          0, /*End of Scope*/
/*  5173*/        /*Scope*/ 32, /*->5206*/
/*  5174*/          OPC_CheckChild0Type, MVT::v16i8,
/*  5176*/          OPC_RecordChild1, // #1 = $Idx
/*  5177*/          OPC_CheckChild1Type, MVT::i64,
/*  5179*/          OPC_MoveParent,
/*  5180*/          OPC_CheckType, MVT::i64,
/*  5182*/          OPC_Scope, 10, /*->5194*/ // 2 children in Scope
/*  5184*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  5186*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUBRX), 0,
                          MVT::i64, 2/*#Ops*/, 1, 0, 
                      // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, i64:{ *:[i64] }:$Idx)) - Complexity = 406
                      // Dst: (VEXTUBRX:{ *:[i64] } ?:{ *:[i64] }:$Idx, ?:{ *:[v16i8] }:$S)
/*  5194*/          /*Scope*/ 10, /*->5205*/
/*  5195*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  5197*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUBLX), 0,
                          MVT::i64, 2/*#Ops*/, 1, 0, 
                      // Src: (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, i64:{ *:[i64] }:$Idx)) - Complexity = 406
                      // Dst: (VEXTUBLX:{ *:[i64] } ?:{ *:[i64] }:$Idx, ?:{ *:[v16i8] }:$S)
/*  5205*/          0, /*End of Scope*/
/*  5206*/        0, /*End of Scope*/
/*  5207*/      /*SwitchOpcode*/ 7|128,74/*9479*/, TARGET_VAL(ISD::SETCC),// ->14690
/*  5211*/        OPC_Scope, 22|128,7/*918*/, /*->6132*/ // 2 children in Scope
/*  5214*/          OPC_MoveChild0,
/*  5215*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  5218*/          OPC_Scope, 91, /*->5311*/ // 8 children in Scope
/*  5220*/            OPC_RecordChild0, // #0 = $s1
/*  5221*/            OPC_MoveChild1,
/*  5222*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  5225*/            OPC_CheckChild0Integer, 1, 
/*  5227*/            OPC_RecordChild1, // #1 = $sa
/*  5228*/            OPC_CheckChild1Type, MVT::i32,
/*  5230*/            OPC_MoveParent,
/*  5231*/            OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->5272
/*  5234*/              OPC_MoveParent,
/*  5235*/              OPC_CheckChild1Integer, 0, 
/*  5237*/              OPC_MoveChild2,
/*  5238*/              OPC_CheckCondCode, ISD::SETNE,
/*  5240*/              OPC_MoveParent,
/*  5241*/              OPC_MoveParent,
/*  5242*/              OPC_CheckType, MVT::i32,
/*  5244*/              OPC_EmitInteger, MVT::i32, 32, 
/*  5247*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/*  5256*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5259*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5262*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 0, 3, 5, 6, 
                        // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i32] } i32:{ *:[i32] }:$s1, (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] })
/*  5272*/            /*SwitchType*/ 36, MVT::i64,// ->5310
/*  5274*/              OPC_MoveParent,
/*  5275*/              OPC_CheckChild1Integer, 0, 
/*  5277*/              OPC_MoveChild2,
/*  5278*/              OPC_CheckCondCode, ISD::SETNE,
/*  5280*/              OPC_MoveParent,
/*  5281*/              OPC_CheckType, MVT::i1,
/*  5283*/              OPC_MoveParent,
/*  5284*/              OPC_CheckType, MVT::i64,
/*  5286*/              OPC_EmitInteger, MVT::i32, 64, 
/*  5289*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/*  5298*/              OPC_EmitInteger, MVT::i32, 63, 
/*  5301*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 0, 3, 5, 
                        // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i64] } i64:{ *:[i64] }:$s1, (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] })
/*  5310*/            0, // EndSwitchType
/*  5311*/          /*Scope*/ 91, /*->5403*/
/*  5312*/            OPC_MoveChild0,
/*  5313*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  5316*/            OPC_CheckChild0Integer, 1, 
/*  5318*/            OPC_RecordChild1, // #0 = $sa
/*  5319*/            OPC_CheckChild1Type, MVT::i32,
/*  5321*/            OPC_MoveParent,
/*  5322*/            OPC_RecordChild1, // #1 = $s1
/*  5323*/            OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->5364
/*  5326*/              OPC_MoveParent,
/*  5327*/              OPC_CheckChild1Integer, 0, 
/*  5329*/              OPC_MoveChild2,
/*  5330*/              OPC_CheckCondCode, ISD::SETNE,
/*  5332*/              OPC_MoveParent,
/*  5333*/              OPC_MoveParent,
/*  5334*/              OPC_CheckType, MVT::i32,
/*  5336*/              OPC_EmitInteger, MVT::i32, 32, 
/*  5339*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/*  5348*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5351*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5354*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 1, 3, 5, 6, 
                        // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa), i32:{ *:[i32] }:$s1), 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] })
/*  5364*/            /*SwitchType*/ 36, MVT::i64,// ->5402
/*  5366*/              OPC_MoveParent,
/*  5367*/              OPC_CheckChild1Integer, 0, 
/*  5369*/              OPC_MoveChild2,
/*  5370*/              OPC_CheckCondCode, ISD::SETNE,
/*  5372*/              OPC_MoveParent,
/*  5373*/              OPC_CheckType, MVT::i1,
/*  5375*/              OPC_MoveParent,
/*  5376*/              OPC_CheckType, MVT::i64,
/*  5378*/              OPC_EmitInteger, MVT::i32, 64, 
/*  5381*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/*  5390*/              OPC_EmitInteger, MVT::i32, 63, 
/*  5393*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 1, 3, 5, 
                        // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa), i64:{ *:[i64] }:$s1), 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] })
/*  5402*/            0, // EndSwitchType
/*  5403*/          /*Scope*/ 24|128,1/*152*/, /*->5557*/
/*  5405*/            OPC_RecordChild0, // #0 = $s1
/*  5406*/            OPC_MoveChild1,
/*  5407*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  5410*/            OPC_CheckChild0Integer, 1, 
/*  5412*/            OPC_RecordChild1, // #1 = $sa
/*  5413*/            OPC_CheckChild1Type, MVT::i32,
/*  5415*/            OPC_MoveParent,
/*  5416*/            OPC_SwitchType /*2 cases */, 89, MVT::i64,// ->5508
/*  5419*/              OPC_MoveParent,
/*  5420*/              OPC_CheckChild1Integer, 0, 
/*  5422*/              OPC_MoveChild2,
/*  5423*/              OPC_Scope, 41, /*->5466*/ // 2 children in Scope
/*  5425*/                OPC_CheckCondCode, ISD::SETNE,
/*  5427*/                OPC_MoveParent,
/*  5428*/                OPC_MoveParent,
/*  5429*/                OPC_CheckType, MVT::i32,
/*  5431*/                OPC_EmitInteger, MVT::i32, 64, 
/*  5434*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/*  5443*/                OPC_EmitInteger, MVT::i32, 63, 
/*  5446*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 3, 5,  // Results = #6
/*  5455*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  5458*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i64] } i64:{ *:[i64] }:$s1, (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 22
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  5466*/              /*Scope*/ 40, /*->5507*/
/*  5467*/                OPC_CheckCondCode, ISD::SETEQ,
/*  5469*/                OPC_MoveParent,
/*  5470*/                OPC_CheckType, MVT::i1,
/*  5472*/                OPC_MoveParent,
/*  5473*/                OPC_CheckType, MVT::i64,
/*  5475*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #2
/*  5483*/                OPC_EmitInteger, MVT::i32, 64, 
/*  5486*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/*  5495*/                OPC_EmitInteger, MVT::i32, 63, 
/*  5498*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 4, 6, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i64] } i64:{ *:[i64] }:$s1, (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 22
                          // Dst: (RLDCL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] })
/*  5507*/              0, /*End of Scope*/
/*  5508*/            /*SwitchType*/ 46, MVT::i32,// ->5556
/*  5510*/              OPC_MoveParent,
/*  5511*/              OPC_CheckChild1Integer, 0, 
/*  5513*/              OPC_MoveChild2,
/*  5514*/              OPC_CheckCondCode, ISD::SETEQ,
/*  5516*/              OPC_MoveParent,
/*  5517*/              OPC_MoveParent,
/*  5518*/              OPC_CheckType, MVT::i32,
/*  5520*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                            MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/*  5528*/              OPC_EmitInteger, MVT::i32, 32, 
/*  5531*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/*  5540*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5543*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5546*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 2, 4, 6, 7, 
                        // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i32] } i32:{ *:[i32] }:$s1, (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLWNM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] })
/*  5556*/            0, // EndSwitchType
/*  5557*/          /*Scope*/ 24|128,1/*152*/, /*->5711*/
/*  5559*/            OPC_MoveChild0,
/*  5560*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  5563*/            OPC_CheckChild0Integer, 1, 
/*  5565*/            OPC_RecordChild1, // #0 = $sa
/*  5566*/            OPC_CheckChild1Type, MVT::i32,
/*  5568*/            OPC_MoveParent,
/*  5569*/            OPC_RecordChild1, // #1 = $s1
/*  5570*/            OPC_SwitchType /*2 cases */, 89, MVT::i64,// ->5662
/*  5573*/              OPC_MoveParent,
/*  5574*/              OPC_CheckChild1Integer, 0, 
/*  5576*/              OPC_MoveChild2,
/*  5577*/              OPC_Scope, 41, /*->5620*/ // 2 children in Scope
/*  5579*/                OPC_CheckCondCode, ISD::SETNE,
/*  5581*/                OPC_MoveParent,
/*  5582*/                OPC_MoveParent,
/*  5583*/                OPC_CheckType, MVT::i32,
/*  5585*/                OPC_EmitInteger, MVT::i32, 64, 
/*  5588*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/*  5597*/                OPC_EmitInteger, MVT::i32, 63, 
/*  5600*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 3, 5,  // Results = #6
/*  5609*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  5612*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa), i64:{ *:[i64] }:$s1), 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 22
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  5620*/              /*Scope*/ 40, /*->5661*/
/*  5621*/                OPC_CheckCondCode, ISD::SETEQ,
/*  5623*/                OPC_MoveParent,
/*  5624*/                OPC_CheckType, MVT::i1,
/*  5626*/                OPC_MoveParent,
/*  5627*/                OPC_CheckType, MVT::i64,
/*  5629*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 1,  // Results = #2
/*  5637*/                OPC_EmitInteger, MVT::i32, 64, 
/*  5640*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/*  5649*/                OPC_EmitInteger, MVT::i32, 63, 
/*  5652*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 4, 6, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa), i64:{ *:[i64] }:$s1), 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 22
                          // Dst: (RLDCL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] })
/*  5661*/              0, /*End of Scope*/
/*  5662*/            /*SwitchType*/ 46, MVT::i32,// ->5710
/*  5664*/              OPC_MoveParent,
/*  5665*/              OPC_CheckChild1Integer, 0, 
/*  5667*/              OPC_MoveChild2,
/*  5668*/              OPC_CheckCondCode, ISD::SETEQ,
/*  5670*/              OPC_MoveParent,
/*  5671*/              OPC_MoveParent,
/*  5672*/              OPC_CheckType, MVT::i32,
/*  5674*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                            MVT::i32, 2/*#Ops*/, 1, 1,  // Results = #2
/*  5682*/              OPC_EmitInteger, MVT::i32, 32, 
/*  5685*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/*  5694*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5697*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5700*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 2, 4, 6, 7, 
                        // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa), i32:{ *:[i32] }:$s1), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLWNM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] })
/*  5710*/            0, // EndSwitchType
/*  5711*/          /*Scope*/ 0|128,1/*128*/, /*->5841*/
/*  5713*/            OPC_RecordChild0, // #0 = $s1
/*  5714*/            OPC_MoveChild1,
/*  5715*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  5718*/            OPC_CheckChild0Integer, 1, 
/*  5720*/            OPC_RecordChild1, // #1 = $sa
/*  5721*/            OPC_CheckChild1Type, MVT::i32,
/*  5723*/            OPC_MoveParent,
/*  5724*/            OPC_SwitchType /*2 cases */, 58, MVT::i32,// ->5785
/*  5727*/              OPC_MoveParent,
/*  5728*/              OPC_CheckChild1Integer, 0, 
/*  5730*/              OPC_MoveChild2,
/*  5731*/              OPC_CheckCondCode, ISD::SETNE,
/*  5733*/              OPC_MoveParent,
/*  5734*/              OPC_CheckType, MVT::i1,
/*  5736*/              OPC_MoveParent,
/*  5737*/              OPC_CheckType, MVT::i64,
/*  5739*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/*  5745*/              OPC_EmitInteger, MVT::i32, 32, 
/*  5748*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/*  5757*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5760*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5763*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 0, 4, 6, 7,  // Results = #8
/*  5773*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  5776*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 8, 9, 
                        // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i32] } i32:{ *:[i32] }:$s1, (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  5785*/            /*SwitchType*/ 53, MVT::i64,// ->5840
/*  5787*/              OPC_MoveParent,
/*  5788*/              OPC_CheckChild1Integer, 0, 
/*  5790*/              OPC_MoveChild2,
/*  5791*/              OPC_CheckCondCode, ISD::SETEQ,
/*  5793*/              OPC_MoveParent,
/*  5794*/              OPC_MoveParent,
/*  5795*/              OPC_CheckType, MVT::i32,
/*  5797*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                            MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #2
/*  5805*/              OPC_EmitInteger, MVT::i32, 64, 
/*  5808*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/*  5817*/              OPC_EmitInteger, MVT::i32, 63, 
/*  5820*/              OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 2, 4, 6,  // Results = #7
/*  5829*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  5832*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 7, 8, 
                        // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i64] } i64:{ *:[i64] }:$s1, (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 22
                        // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDCL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  5840*/            0, // EndSwitchType
/*  5841*/          /*Scope*/ 0|128,1/*128*/, /*->5971*/
/*  5843*/            OPC_MoveChild0,
/*  5844*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  5847*/            OPC_CheckChild0Integer, 1, 
/*  5849*/            OPC_RecordChild1, // #0 = $sa
/*  5850*/            OPC_CheckChild1Type, MVT::i32,
/*  5852*/            OPC_MoveParent,
/*  5853*/            OPC_RecordChild1, // #1 = $s1
/*  5854*/            OPC_SwitchType /*2 cases */, 58, MVT::i32,// ->5915
/*  5857*/              OPC_MoveParent,
/*  5858*/              OPC_CheckChild1Integer, 0, 
/*  5860*/              OPC_MoveChild2,
/*  5861*/              OPC_CheckCondCode, ISD::SETNE,
/*  5863*/              OPC_MoveParent,
/*  5864*/              OPC_CheckType, MVT::i1,
/*  5866*/              OPC_MoveParent,
/*  5867*/              OPC_CheckType, MVT::i64,
/*  5869*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/*  5875*/              OPC_EmitInteger, MVT::i32, 32, 
/*  5878*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/*  5887*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5890*/              OPC_EmitInteger, MVT::i32, 31, 
/*  5893*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 1, 4, 6, 7,  // Results = #8
/*  5903*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  5906*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 8, 9, 
                        // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa), i32:{ *:[i32] }:$s1), 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  5915*/            /*SwitchType*/ 53, MVT::i64,// ->5970
/*  5917*/              OPC_MoveParent,
/*  5918*/              OPC_CheckChild1Integer, 0, 
/*  5920*/              OPC_MoveChild2,
/*  5921*/              OPC_CheckCondCode, ISD::SETEQ,
/*  5923*/              OPC_MoveParent,
/*  5924*/              OPC_MoveParent,
/*  5925*/              OPC_CheckType, MVT::i32,
/*  5927*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                            MVT::i64, 2/*#Ops*/, 1, 1,  // Results = #2
/*  5935*/              OPC_EmitInteger, MVT::i32, 64, 
/*  5938*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/*  5947*/              OPC_EmitInteger, MVT::i32, 63, 
/*  5950*/              OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 2, 4, 6,  // Results = #7
/*  5959*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  5962*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 7, 8, 
                        // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa), i64:{ *:[i64] }:$s1), 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 22
                        // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDCL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  5970*/            0, // EndSwitchType
/*  5971*/          /*Scope*/ 79, /*->6051*/
/*  5972*/            OPC_RecordChild0, // #0 = $s1
/*  5973*/            OPC_MoveChild1,
/*  5974*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  5977*/            OPC_CheckChild0Integer, 1, 
/*  5979*/            OPC_RecordChild1, // #1 = $sa
/*  5980*/            OPC_CheckChild1Type, MVT::i32,
/*  5982*/            OPC_MoveParent,
/*  5983*/            OPC_CheckType, MVT::i32,
/*  5985*/            OPC_MoveParent,
/*  5986*/            OPC_CheckChild1Integer, 0, 
/*  5988*/            OPC_MoveChild2,
/*  5989*/            OPC_CheckCondCode, ISD::SETEQ,
/*  5991*/            OPC_MoveParent,
/*  5992*/            OPC_CheckType, MVT::i1,
/*  5994*/            OPC_MoveParent,
/*  5995*/            OPC_CheckType, MVT::i64,
/*  5997*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*  6003*/            OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                          MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #3
/*  6011*/            OPC_EmitInteger, MVT::i32, 32, 
/*  6014*/            OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5 #6
/*  6023*/            OPC_EmitInteger, MVT::i32, 31, 
/*  6026*/            OPC_EmitInteger, MVT::i32, 31, 
/*  6029*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                          MVT::i32, 4/*#Ops*/, 3, 5, 7, 8,  // Results = #9
/*  6039*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6042*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 9, 10, 
                      // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i32] } i32:{ *:[i32] }:$s1, (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 22
                      // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWNM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6051*/          /*Scope*/ 79, /*->6131*/
/*  6052*/            OPC_MoveChild0,
/*  6053*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  6056*/            OPC_CheckChild0Integer, 1, 
/*  6058*/            OPC_RecordChild1, // #0 = $sa
/*  6059*/            OPC_CheckChild1Type, MVT::i32,
/*  6061*/            OPC_MoveParent,
/*  6062*/            OPC_RecordChild1, // #1 = $s1
/*  6063*/            OPC_CheckType, MVT::i32,
/*  6065*/            OPC_MoveParent,
/*  6066*/            OPC_CheckChild1Integer, 0, 
/*  6068*/            OPC_MoveChild2,
/*  6069*/            OPC_CheckCondCode, ISD::SETEQ,
/*  6071*/            OPC_MoveParent,
/*  6072*/            OPC_CheckType, MVT::i1,
/*  6074*/            OPC_MoveParent,
/*  6075*/            OPC_CheckType, MVT::i64,
/*  6077*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*  6083*/            OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                          MVT::i32, 2/*#Ops*/, 1, 1,  // Results = #3
/*  6091*/            OPC_EmitInteger, MVT::i32, 32, 
/*  6094*/            OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4,  // Results = #5 #6
/*  6103*/            OPC_EmitInteger, MVT::i32, 31, 
/*  6106*/            OPC_EmitInteger, MVT::i32, 31, 
/*  6109*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                          MVT::i32, 4/*#Ops*/, 3, 5, 7, 8,  // Results = #9
/*  6119*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6122*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 9, 10, 
                      // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa), i32:{ *:[i32] }:$s1), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 22
                      // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWNM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6131*/          0, /*End of Scope*/
/*  6132*/        /*Scope*/ 107|128,66/*8555*/, /*->14689*/
/*  6134*/          OPC_RecordChild0, // #0 = $s1
/*  6135*/          OPC_Scope, 118|128,18/*2422*/, /*->8560*/ // 5 children in Scope
/*  6138*/            OPC_CheckChild0Type, MVT::i32,
/*  6140*/            OPC_Scope, 59|128,4/*571*/, /*->6714*/ // 3 children in Scope
/*  6143*/              OPC_CheckChild1Integer, 0, 
/*  6145*/              OPC_MoveChild2,
/*  6146*/              OPC_Scope, 25, /*->6173*/ // 12 children in Scope
/*  6148*/                OPC_CheckCondCode, ISD::SETLT,
/*  6150*/                OPC_MoveParent,
/*  6151*/                OPC_MoveParent,
/*  6152*/                OPC_CheckType, MVT::i32,
/*  6154*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6157*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6160*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6163*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6173*/              /*Scope*/ 32, /*->6206*/
/*  6174*/                OPC_CheckCondCode, ISD::SETEQ,
/*  6176*/                OPC_MoveParent,
/*  6177*/                OPC_MoveParent,
/*  6178*/                OPC_CheckType, MVT::i32,
/*  6180*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*  6187*/                OPC_EmitInteger, MVT::i32, 27, 
/*  6190*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6193*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6196*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1), 27:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6206*/              /*Scope*/ 33, /*->6240*/
/*  6207*/                OPC_CheckCondCode, ISD::SETGE,
/*  6209*/                OPC_MoveParent,
/*  6210*/                OPC_MoveParent,
/*  6211*/                OPC_CheckType, MVT::i32,
/*  6213*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #1
/*  6221*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6224*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6227*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6230*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6240*/              /*Scope*/ 45, /*->6286*/
/*  6241*/                OPC_CheckCondCode, ISD::SETLT,
/*  6243*/                OPC_MoveParent,
/*  6244*/                OPC_CheckType, MVT::i1,
/*  6246*/                OPC_MoveParent,
/*  6247*/                OPC_CheckType, MVT::i64,
/*  6249*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6255*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6258*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6261*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6264*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*  6274*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6277*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 5, 6, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6286*/              /*Scope*/ 40, /*->6327*/
/*  6287*/                OPC_CheckCondCode, ISD::SETGT,
/*  6289*/                OPC_MoveParent,
/*  6290*/                OPC_MoveParent,
/*  6291*/                OPC_CheckType, MVT::i32,
/*  6293*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*  6300*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC), 0,
                              MVT::i32, 2/*#Ops*/, 1, 0,  // Results = #2
/*  6308*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6311*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6314*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6317*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (ANDC:{ *:[i32] } (NEG:{ *:[i32] } ?:{ *:[i32] }:$s1), ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6327*/              /*Scope*/ 40, /*->6368*/
/*  6328*/                OPC_CheckCondCode, ISD::SETLE,
/*  6330*/                OPC_MoveParent,
/*  6331*/                OPC_MoveParent,
/*  6332*/                OPC_CheckType, MVT::i32,
/*  6334*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*  6341*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  6349*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6352*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6355*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6358*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (ORC:{ *:[i32] } ?:{ *:[i32] }:$s1, (NEG:{ *:[i32] } ?:{ *:[i32] }:$s1)), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6368*/              /*Scope*/ 52, /*->6421*/
/*  6369*/                OPC_CheckCondCode, ISD::SETEQ,
/*  6371*/                OPC_MoveParent,
/*  6372*/                OPC_CheckType, MVT::i1,
/*  6374*/                OPC_MoveParent,
/*  6375*/                OPC_CheckType, MVT::i64,
/*  6377*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6383*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  6390*/                OPC_EmitInteger, MVT::i32, 27, 
/*  6393*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6396*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6399*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*  6409*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6412*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1), 27:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6421*/              /*Scope*/ 47, /*->6469*/
/*  6422*/                OPC_CheckCondCode, ISD::SETNE,
/*  6424*/                OPC_MoveParent,
/*  6425*/                OPC_MoveParent,
/*  6426*/                OPC_CheckType, MVT::i32,
/*  6428*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*  6435*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  6442*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*  6450*/                OPC_EmitInteger, MVT::i32, 27, 
/*  6453*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6456*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6459*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1), (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1)), 27:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6469*/              /*Scope*/ 53, /*->6523*/
/*  6470*/                OPC_CheckCondCode, ISD::SETGE,
/*  6472*/                OPC_MoveParent,
/*  6473*/                OPC_CheckType, MVT::i1,
/*  6475*/                OPC_MoveParent,
/*  6476*/                OPC_CheckType, MVT::i64,
/*  6478*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6484*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/*  6492*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6495*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6498*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6501*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*  6511*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6514*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6523*/              /*Scope*/ 60, /*->6584*/
/*  6524*/                OPC_CheckCondCode, ISD::SETGT,
/*  6526*/                OPC_MoveParent,
/*  6527*/                OPC_CheckType, MVT::i1,
/*  6529*/                OPC_MoveParent,
/*  6530*/                OPC_CheckType, MVT::i64,
/*  6532*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6538*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  6545*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC), 0,
                              MVT::i32, 2/*#Ops*/, 2, 0,  // Results = #3
/*  6553*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6556*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6559*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6562*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6,  // Results = #7
/*  6572*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6575*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 7, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (ANDC:{ *:[i32] } (NEG:{ *:[i32] } ?:{ *:[i32] }:$s1), ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6584*/              /*Scope*/ 60, /*->6645*/
/*  6585*/                OPC_CheckCondCode, ISD::SETLE,
/*  6587*/                OPC_MoveParent,
/*  6588*/                OPC_CheckType, MVT::i1,
/*  6590*/                OPC_MoveParent,
/*  6591*/                OPC_CheckType, MVT::i64,
/*  6593*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6599*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  6606*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  6614*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6617*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6620*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6623*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6,  // Results = #7
/*  6633*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6636*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 7, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (ORC:{ *:[i32] } ?:{ *:[i32] }:$s1, (NEG:{ *:[i32] } ?:{ *:[i32] }:$s1)), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6645*/              /*Scope*/ 67, /*->6713*/
/*  6646*/                OPC_CheckCondCode, ISD::SETNE,
/*  6648*/                OPC_MoveParent,
/*  6649*/                OPC_CheckType, MVT::i1,
/*  6651*/                OPC_MoveParent,
/*  6652*/                OPC_CheckType, MVT::i64,
/*  6654*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6660*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  6667*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #3
/*  6674*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*  6682*/                OPC_EmitInteger, MVT::i32, 27, 
/*  6685*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6688*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6691*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*  6701*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6704*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 8, 9, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1), (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1)), 27:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6713*/              0, /*End of Scope*/
/*  6714*/            /*Scope*/ 10|128,3/*394*/, /*->7110*/
/*  6716*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  6727*/              OPC_MoveChild2,
/*  6728*/              OPC_Scope, 25, /*->6755*/ // 8 children in Scope
/*  6730*/                OPC_CheckCondCode, ISD::SETLE,
/*  6732*/                OPC_MoveParent,
/*  6733*/                OPC_MoveParent,
/*  6734*/                OPC_CheckType, MVT::i32,
/*  6736*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6739*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6742*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6745*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6755*/              /*Scope*/ 33, /*->6789*/
/*  6756*/                OPC_CheckCondCode, ISD::SETGT,
/*  6758*/                OPC_MoveParent,
/*  6759*/                OPC_MoveParent,
/*  6760*/                OPC_CheckType, MVT::i32,
/*  6762*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #1
/*  6770*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6773*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6776*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6779*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6789*/              /*Scope*/ 44, /*->6834*/
/*  6790*/                OPC_CheckCondCode, ISD::SETLT,
/*  6792*/                OPC_MoveParent,
/*  6793*/                OPC_MoveParent,
/*  6794*/                OPC_CheckType, MVT::i32,
/*  6796*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6799*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  6807*/                OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  6815*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6818*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6821*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6824*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (AND:{ *:[i32] } ?:{ *:[i32] }:$s1, (ADDI:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] })), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6834*/              /*Scope*/ 44, /*->6879*/
/*  6835*/                OPC_CheckCondCode, ISD::SETGE,
/*  6837*/                OPC_MoveParent,
/*  6838*/                OPC_MoveParent,
/*  6839*/                OPC_CheckType, MVT::i32,
/*  6841*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6844*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  6852*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  6860*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6863*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6866*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6869*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (NAND:{ *:[i32] } ?:{ *:[i32] }:$s1, (ADDI:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] })), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/*  6879*/              /*Scope*/ 45, /*->6925*/
/*  6880*/                OPC_CheckCondCode, ISD::SETLE,
/*  6882*/                OPC_MoveParent,
/*  6883*/                OPC_CheckType, MVT::i1,
/*  6885*/                OPC_MoveParent,
/*  6886*/                OPC_CheckType, MVT::i64,
/*  6888*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6894*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6897*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6900*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6903*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*  6913*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6916*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 5, 6, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6925*/              /*Scope*/ 53, /*->6979*/
/*  6926*/                OPC_CheckCondCode, ISD::SETGT,
/*  6928*/                OPC_MoveParent,
/*  6929*/                OPC_CheckType, MVT::i1,
/*  6931*/                OPC_MoveParent,
/*  6932*/                OPC_CheckType, MVT::i64,
/*  6934*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6940*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/*  6948*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6951*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6954*/                OPC_EmitInteger, MVT::i32, 31, 
/*  6957*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*  6967*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  6970*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  6979*/              /*Scope*/ 64, /*->7044*/
/*  6980*/                OPC_CheckCondCode, ISD::SETLT,
/*  6982*/                OPC_MoveParent,
/*  6983*/                OPC_CheckType, MVT::i1,
/*  6985*/                OPC_MoveParent,
/*  6986*/                OPC_CheckType, MVT::i64,
/*  6988*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  6994*/                OPC_EmitInteger, MVT::i32, 1, 
/*  6997*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7005*/                OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*  7013*/                OPC_EmitInteger, MVT::i32, 1, 
/*  7016*/                OPC_EmitInteger, MVT::i32, 31, 
/*  7019*/                OPC_EmitInteger, MVT::i32, 31, 
/*  7022*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*  7032*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  7035*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 8, 9, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (AND:{ *:[i32] } ?:{ *:[i32] }:$s1, (ADDI:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] })), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  7044*/              /*Scope*/ 64, /*->7109*/
/*  7045*/                OPC_CheckCondCode, ISD::SETGE,
/*  7047*/                OPC_MoveParent,
/*  7048*/                OPC_CheckType, MVT::i1,
/*  7050*/                OPC_MoveParent,
/*  7051*/                OPC_CheckType, MVT::i64,
/*  7053*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  7059*/                OPC_EmitInteger, MVT::i32, 1, 
/*  7062*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7070*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*  7078*/                OPC_EmitInteger, MVT::i32, 1, 
/*  7081*/                OPC_EmitInteger, MVT::i32, 31, 
/*  7084*/                OPC_EmitInteger, MVT::i32, 31, 
/*  7087*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*  7097*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  7100*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 8, 9, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (NAND:{ *:[i32] } ?:{ *:[i32] }:$s1, (ADDI:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] })), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/*  7109*/              0, /*End of Scope*/
/*  7110*/            /*Scope*/ 39|128,11/*1447*/, /*->8559*/
/*  7112*/              OPC_RecordChild1, // #1 = $imm
/*  7113*/              OPC_Scope, 109|128,6/*877*/, /*->7993*/ // 2 children in Scope
/*  7116*/                OPC_MoveChild1,
/*  7117*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7120*/                OPC_Scope, 119, /*->7241*/ // 6 children in Scope
/*  7122*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  7124*/                  OPC_MoveParent,
/*  7125*/                  OPC_MoveChild2,
/*  7126*/                  OPC_CheckCondCode, ISD::SETUGE,
/*  7128*/                  OPC_MoveParent,
/*  7129*/                  OPC_Scope, 53, /*->7184*/ // 2 children in Scope
/*  7131*/                    OPC_MoveParent,
/*  7132*/                    OPC_CheckType, MVT::i32,
/*  7134*/                    OPC_EmitConvertToTarget, 1,
/*  7136*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7144*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  7147*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7155*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  7158*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  7165*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  7168*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  7175*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  7184*/                  /*Scope*/ 55, /*->7240*/
/*  7185*/                    OPC_CheckType, MVT::i1,
/*  7187*/                    OPC_MoveParent,
/*  7188*/                    OPC_CheckType, MVT::i64,
/*  7190*/                    OPC_EmitConvertToTarget, 1,
/*  7192*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7200*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  7203*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7211*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  7214*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  7221*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  7224*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  7231*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  7240*/                  0, /*End of Scope*/
/*  7241*/                /*Scope*/ 119, /*->7361*/
/*  7242*/                  OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*  7244*/                  OPC_MoveParent,
/*  7245*/                  OPC_MoveChild2,
/*  7246*/                  OPC_CheckCondCode, ISD::SETGE,
/*  7248*/                  OPC_MoveParent,
/*  7249*/                  OPC_Scope, 53, /*->7304*/ // 2 children in Scope
/*  7251*/                    OPC_MoveParent,
/*  7252*/                    OPC_CheckType, MVT::i32,
/*  7254*/                    OPC_EmitConvertToTarget, 1,
/*  7256*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7264*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  7267*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7275*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  7278*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  7285*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  7288*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  7295*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  7304*/                  /*Scope*/ 55, /*->7360*/
/*  7305*/                    OPC_CheckType, MVT::i1,
/*  7307*/                    OPC_MoveParent,
/*  7308*/                    OPC_CheckType, MVT::i64,
/*  7310*/                    OPC_EmitConvertToTarget, 1,
/*  7312*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7320*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  7323*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7331*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  7334*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  7341*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  7344*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  7351*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  7360*/                  0, /*End of Scope*/
/*  7361*/                /*Scope*/ 119, /*->7481*/
/*  7362*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  7364*/                  OPC_MoveParent,
/*  7365*/                  OPC_MoveChild2,
/*  7366*/                  OPC_CheckCondCode, ISD::SETULE,
/*  7368*/                  OPC_MoveParent,
/*  7369*/                  OPC_Scope, 53, /*->7424*/ // 2 children in Scope
/*  7371*/                    OPC_MoveParent,
/*  7372*/                    OPC_CheckType, MVT::i32,
/*  7374*/                    OPC_EmitConvertToTarget, 1,
/*  7376*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7384*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  7387*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7395*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  7398*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  7405*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  7408*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  7415*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  7424*/                  /*Scope*/ 55, /*->7480*/
/*  7425*/                    OPC_CheckType, MVT::i1,
/*  7427*/                    OPC_MoveParent,
/*  7428*/                    OPC_CheckType, MVT::i64,
/*  7430*/                    OPC_EmitConvertToTarget, 1,
/*  7432*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7440*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  7443*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7451*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  7454*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  7461*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  7464*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  7471*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  7480*/                  0, /*End of Scope*/
/*  7481*/                /*Scope*/ 110|128,1/*238*/, /*->7721*/
/*  7483*/                  OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*  7485*/                  OPC_MoveParent,
/*  7486*/                  OPC_MoveChild2,
/*  7487*/                  OPC_Scope, 115, /*->7604*/ // 2 children in Scope
/*  7489*/                    OPC_CheckCondCode, ISD::SETLE,
/*  7491*/                    OPC_MoveParent,
/*  7492*/                    OPC_Scope, 53, /*->7547*/ // 2 children in Scope
/*  7494*/                      OPC_MoveParent,
/*  7495*/                      OPC_CheckType, MVT::i32,
/*  7497*/                      OPC_EmitConvertToTarget, 1,
/*  7499*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7507*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  7510*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7518*/                      OPC_EmitInteger, MVT::i32, 0, 
/*  7521*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  7528*/                      OPC_EmitInteger, MVT::i32, 1, 
/*  7531*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  7538*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                    MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  7547*/                    /*Scope*/ 55, /*->7603*/
/*  7548*/                      OPC_CheckType, MVT::i1,
/*  7550*/                      OPC_MoveParent,
/*  7551*/                      OPC_CheckType, MVT::i64,
/*  7553*/                      OPC_EmitConvertToTarget, 1,
/*  7555*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7563*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  7566*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7574*/                      OPC_EmitInteger, MVT::i64, 0, 
/*  7577*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  7584*/                      OPC_EmitInteger, MVT::i64, 1, 
/*  7587*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  7594*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                    MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  7603*/                    0, /*End of Scope*/
/*  7604*/                  /*Scope*/ 115, /*->7720*/
/*  7605*/                    OPC_CheckCondCode, ISD::SETNE,
/*  7607*/                    OPC_MoveParent,
/*  7608*/                    OPC_Scope, 53, /*->7663*/ // 2 children in Scope
/*  7610*/                      OPC_MoveParent,
/*  7611*/                      OPC_CheckType, MVT::i32,
/*  7613*/                      OPC_EmitConvertToTarget, 1,
/*  7615*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7623*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  7626*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7634*/                      OPC_EmitInteger, MVT::i32, 0, 
/*  7637*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  7644*/                      OPC_EmitInteger, MVT::i32, 1, 
/*  7647*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  7654*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                    MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  7663*/                    /*Scope*/ 55, /*->7719*/
/*  7664*/                      OPC_CheckType, MVT::i1,
/*  7666*/                      OPC_MoveParent,
/*  7667*/                      OPC_CheckType, MVT::i64,
/*  7669*/                      OPC_EmitConvertToTarget, 1,
/*  7671*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7679*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  7682*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7690*/                      OPC_EmitInteger, MVT::i64, 0, 
/*  7693*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  7700*/                      OPC_EmitInteger, MVT::i64, 1, 
/*  7703*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  7710*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                    MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  7719*/                    0, /*End of Scope*/
/*  7720*/                  0, /*End of Scope*/
/*  7721*/                /*Scope*/ 119, /*->7841*/
/*  7722*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  7724*/                  OPC_MoveParent,
/*  7725*/                  OPC_MoveChild2,
/*  7726*/                  OPC_CheckCondCode, ISD::SETNE,
/*  7728*/                  OPC_MoveParent,
/*  7729*/                  OPC_Scope, 53, /*->7784*/ // 2 children in Scope
/*  7731*/                    OPC_MoveParent,
/*  7732*/                    OPC_CheckType, MVT::i32,
/*  7734*/                    OPC_EmitConvertToTarget, 1,
/*  7736*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7744*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  7747*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7755*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  7758*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  7765*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  7768*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  7775*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  7784*/                  /*Scope*/ 55, /*->7840*/
/*  7785*/                    OPC_CheckType, MVT::i1,
/*  7787*/                    OPC_MoveParent,
/*  7788*/                    OPC_CheckType, MVT::i64,
/*  7790*/                    OPC_EmitConvertToTarget, 1,
/*  7792*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  7800*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  7803*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  7811*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  7814*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  7821*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  7824*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  7831*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  7840*/                  0, /*End of Scope*/
/*  7841*/                /*Scope*/ 21|128,1/*149*/, /*->7992*/
/*  7843*/                  OPC_MoveParent,
/*  7844*/                  OPC_MoveChild2,
/*  7845*/                  OPC_CheckCondCode, ISD::SETNE,
/*  7847*/                  OPC_MoveParent,
/*  7848*/                  OPC_Scope, 69, /*->7919*/ // 2 children in Scope
/*  7850*/                    OPC_MoveParent,
/*  7851*/                    OPC_CheckType, MVT::i32,
/*  7853*/                    OPC_EmitConvertToTarget, 1,
/*  7855*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/*  7858*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*  7866*/                    OPC_EmitConvertToTarget, 1,
/*  7868*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/*  7871*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/*  7879*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  7882*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/*  7890*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  7893*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/*  7900*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  7903*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/*  7910*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 9, 11, 13, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETNE:{ *:[Other] })) - Complexity = 9
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  7919*/                  /*Scope*/ 71, /*->7991*/
/*  7920*/                    OPC_CheckType, MVT::i1,
/*  7922*/                    OPC_MoveParent,
/*  7923*/                    OPC_CheckType, MVT::i64,
/*  7925*/                    OPC_EmitConvertToTarget, 1,
/*  7927*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/*  7930*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*  7938*/                    OPC_EmitConvertToTarget, 1,
/*  7940*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/*  7943*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/*  7951*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  7954*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/*  7962*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  7965*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/*  7972*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  7975*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/*  7982*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 9, 11, 13, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETNE:{ *:[Other] })) - Complexity = 9
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  7991*/                  0, /*End of Scope*/
/*  7992*/                0, /*End of Scope*/
/*  7993*/              /*Scope*/ 51|128,4/*563*/, /*->8558*/
/*  7995*/                OPC_MoveChild2,
/*  7996*/                OPC_Scope, 111, /*->8109*/ // 5 children in Scope
/*  7998*/                  OPC_CheckCondCode, ISD::SETUGE,
/*  8000*/                  OPC_MoveParent,
/*  8001*/                  OPC_Scope, 51, /*->8054*/ // 2 children in Scope
/*  8003*/                    OPC_MoveParent,
/*  8004*/                    OPC_CheckType, MVT::i32,
/*  8006*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8014*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  8017*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8025*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  8028*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/*  8035*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  8038*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/*  8045*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  8054*/                  /*Scope*/ 53, /*->8108*/
/*  8055*/                    OPC_CheckType, MVT::i1,
/*  8057*/                    OPC_MoveParent,
/*  8058*/                    OPC_CheckType, MVT::i64,
/*  8060*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8068*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  8071*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8079*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  8082*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/*  8089*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  8092*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/*  8099*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  8108*/                  0, /*End of Scope*/
/*  8109*/                /*Scope*/ 111, /*->8221*/
/*  8110*/                  OPC_CheckCondCode, ISD::SETGE,
/*  8112*/                  OPC_MoveParent,
/*  8113*/                  OPC_Scope, 51, /*->8166*/ // 2 children in Scope
/*  8115*/                    OPC_MoveParent,
/*  8116*/                    OPC_CheckType, MVT::i32,
/*  8118*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8126*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  8129*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8137*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  8140*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/*  8147*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  8150*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/*  8157*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  8166*/                  /*Scope*/ 53, /*->8220*/
/*  8167*/                    OPC_CheckType, MVT::i1,
/*  8169*/                    OPC_MoveParent,
/*  8170*/                    OPC_CheckType, MVT::i64,
/*  8172*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8180*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  8183*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8191*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  8194*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/*  8201*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  8204*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/*  8211*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  8220*/                  0, /*End of Scope*/
/*  8221*/                /*Scope*/ 111, /*->8333*/
/*  8222*/                  OPC_CheckCondCode, ISD::SETULE,
/*  8224*/                  OPC_MoveParent,
/*  8225*/                  OPC_Scope, 51, /*->8278*/ // 2 children in Scope
/*  8227*/                    OPC_MoveParent,
/*  8228*/                    OPC_CheckType, MVT::i32,
/*  8230*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8238*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  8241*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8249*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  8252*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/*  8259*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  8262*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/*  8269*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  8278*/                  /*Scope*/ 53, /*->8332*/
/*  8279*/                    OPC_CheckType, MVT::i1,
/*  8281*/                    OPC_MoveParent,
/*  8282*/                    OPC_CheckType, MVT::i64,
/*  8284*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8292*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  8295*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8303*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  8306*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/*  8313*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  8316*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/*  8323*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  8332*/                  0, /*End of Scope*/
/*  8333*/                /*Scope*/ 111, /*->8445*/
/*  8334*/                  OPC_CheckCondCode, ISD::SETLE,
/*  8336*/                  OPC_MoveParent,
/*  8337*/                  OPC_Scope, 51, /*->8390*/ // 2 children in Scope
/*  8339*/                    OPC_MoveParent,
/*  8340*/                    OPC_CheckType, MVT::i32,
/*  8342*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8350*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  8353*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8361*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  8364*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/*  8371*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  8374*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/*  8381*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  8390*/                  /*Scope*/ 53, /*->8444*/
/*  8391*/                    OPC_CheckType, MVT::i1,
/*  8393*/                    OPC_MoveParent,
/*  8394*/                    OPC_CheckType, MVT::i64,
/*  8396*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8404*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  8407*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8415*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  8418*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/*  8425*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  8428*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/*  8435*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  8444*/                  0, /*End of Scope*/
/*  8445*/                /*Scope*/ 111, /*->8557*/
/*  8446*/                  OPC_CheckCondCode, ISD::SETNE,
/*  8448*/                  OPC_MoveParent,
/*  8449*/                  OPC_Scope, 51, /*->8502*/ // 2 children in Scope
/*  8451*/                    OPC_MoveParent,
/*  8452*/                    OPC_CheckType, MVT::i32,
/*  8454*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8462*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  8465*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8473*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  8476*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/*  8483*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  8486*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/*  8493*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  8502*/                  /*Scope*/ 53, /*->8556*/
/*  8503*/                    OPC_CheckType, MVT::i1,
/*  8505*/                    OPC_MoveParent,
/*  8506*/                    OPC_CheckType, MVT::i64,
/*  8508*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8516*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  8519*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8527*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  8530*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/*  8537*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  8540*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/*  8547*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  8556*/                  0, /*End of Scope*/
/*  8557*/                0, /*End of Scope*/
/*  8558*/              0, /*End of Scope*/
/*  8559*/            0, /*End of Scope*/
/*  8560*/          /*Scope*/ 98|128,17/*2274*/, /*->10836*/
/*  8562*/            OPC_CheckChild0Type, MVT::i64,
/*  8564*/            OPC_Scope, 97|128,3/*481*/, /*->9048*/ // 3 children in Scope
/*  8567*/              OPC_CheckChild1Integer, 0, 
/*  8569*/              OPC_MoveChild2,
/*  8570*/              OPC_Scope, 23, /*->8595*/ // 12 children in Scope
/*  8572*/                OPC_CheckCondCode, ISD::SETLT,
/*  8574*/                OPC_MoveParent,
/*  8575*/                OPC_CheckType, MVT::i1,
/*  8577*/                OPC_MoveParent,
/*  8578*/                OPC_CheckType, MVT::i64,
/*  8580*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8583*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8586*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i32] }, 63:{ *:[i32] })
/*  8595*/              /*Scope*/ 30, /*->8626*/
/*  8596*/                OPC_CheckCondCode, ISD::SETEQ,
/*  8598*/                OPC_MoveParent,
/*  8599*/                OPC_CheckType, MVT::i1,
/*  8601*/                OPC_MoveParent,
/*  8602*/                OPC_CheckType, MVT::i64,
/*  8604*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*  8611*/                OPC_EmitInteger, MVT::i32, 58, 
/*  8614*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8617*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1), 58:{ *:[i32] }, 63:{ *:[i32] })
/*  8626*/              /*Scope*/ 32, /*->8659*/
/*  8627*/                OPC_CheckCondCode, ISD::SETLT,
/*  8629*/                OPC_MoveParent,
/*  8630*/                OPC_MoveParent,
/*  8631*/                OPC_CheckType, MVT::i32,
/*  8633*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8636*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8639*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*  8648*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8651*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 3, 4, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  8659*/              /*Scope*/ 31, /*->8691*/
/*  8660*/                OPC_CheckCondCode, ISD::SETGE,
/*  8662*/                OPC_MoveParent,
/*  8663*/                OPC_CheckType, MVT::i1,
/*  8665*/                OPC_MoveParent,
/*  8666*/                OPC_CheckType, MVT::i64,
/*  8668*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*  8676*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8679*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8682*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] })
/*  8691*/              /*Scope*/ 39, /*->8731*/
/*  8692*/                OPC_CheckCondCode, ISD::SETEQ,
/*  8694*/                OPC_MoveParent,
/*  8695*/                OPC_MoveParent,
/*  8696*/                OPC_CheckType, MVT::i32,
/*  8698*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*  8705*/                OPC_EmitInteger, MVT::i32, 58, 
/*  8708*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8711*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/*  8720*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8723*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1), 58:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  8731*/              /*Scope*/ 40, /*->8772*/
/*  8732*/                OPC_CheckCondCode, ISD::SETGE,
/*  8734*/                OPC_MoveParent,
/*  8735*/                OPC_MoveParent,
/*  8736*/                OPC_CheckType, MVT::i32,
/*  8738*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*  8746*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8749*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8752*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/*  8761*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8764*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  8772*/              /*Scope*/ 38, /*->8811*/
/*  8773*/                OPC_CheckCondCode, ISD::SETGT,
/*  8775*/                OPC_MoveParent,
/*  8776*/                OPC_CheckType, MVT::i1,
/*  8778*/                OPC_MoveParent,
/*  8779*/                OPC_CheckType, MVT::i64,
/*  8781*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*  8788*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/*  8796*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8799*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8802*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (ANDC8:{ *:[i64] } (NEG8:{ *:[i64] } ?:{ *:[i64] }:$s1), ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] })
/*  8811*/              /*Scope*/ 38, /*->8850*/
/*  8812*/                OPC_CheckCondCode, ISD::SETLE,
/*  8814*/                OPC_MoveParent,
/*  8815*/                OPC_CheckType, MVT::i1,
/*  8817*/                OPC_MoveParent,
/*  8818*/                OPC_CheckType, MVT::i64,
/*  8820*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*  8827*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8835*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8838*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8841*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (ORC8:{ *:[i64] } ?:{ *:[i64] }:$s1, (NEG8:{ *:[i64] } ?:{ *:[i64] }:$s1)), 1:{ *:[i32] }, 63:{ *:[i32] })
/*  8850*/              /*Scope*/ 45, /*->8896*/
/*  8851*/                OPC_CheckCondCode, ISD::SETNE,
/*  8853*/                OPC_MoveParent,
/*  8854*/                OPC_CheckType, MVT::i1,
/*  8856*/                OPC_MoveParent,
/*  8857*/                OPC_CheckType, MVT::i64,
/*  8859*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*  8866*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/*  8873*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/*  8881*/                OPC_EmitInteger, MVT::i32, 58, 
/*  8884*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8887*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1), (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1)), 58:{ *:[i32] }, 63:{ *:[i32] })
/*  8896*/              /*Scope*/ 47, /*->8944*/
/*  8897*/                OPC_CheckCondCode, ISD::SETGT,
/*  8899*/                OPC_MoveParent,
/*  8900*/                OPC_MoveParent,
/*  8901*/                OPC_CheckType, MVT::i32,
/*  8903*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*  8910*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/*  8918*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8921*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8924*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*  8933*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8936*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 5, 6, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (ANDC8:{ *:[i64] } (NEG8:{ *:[i64] } ?:{ *:[i64] }:$s1), ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  8944*/              /*Scope*/ 47, /*->8992*/
/*  8945*/                OPC_CheckCondCode, ISD::SETLE,
/*  8947*/                OPC_MoveParent,
/*  8948*/                OPC_MoveParent,
/*  8949*/                OPC_CheckType, MVT::i32,
/*  8951*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*  8958*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8966*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8969*/                OPC_EmitInteger, MVT::i32, 63, 
/*  8972*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*  8981*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8984*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 5, 6, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (ORC8:{ *:[i64] } ?:{ *:[i64] }:$s1, (NEG8:{ *:[i64] } ?:{ *:[i64] }:$s1)), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  8992*/              /*Scope*/ 54, /*->9047*/
/*  8993*/                OPC_CheckCondCode, ISD::SETNE,
/*  8995*/                OPC_MoveParent,
/*  8996*/                OPC_MoveParent,
/*  8997*/                OPC_CheckType, MVT::i32,
/*  8999*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*  9006*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/*  9013*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/*  9021*/                OPC_EmitInteger, MVT::i32, 58, 
/*  9024*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9027*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/*  9036*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9039*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1), (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1)), 58:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  9047*/              0, /*End of Scope*/
/*  9048*/            /*Scope*/ 78|128,2/*334*/, /*->9384*/
/*  9050*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  9061*/              OPC_MoveChild2,
/*  9062*/              OPC_Scope, 23, /*->9087*/ // 8 children in Scope
/*  9064*/                OPC_CheckCondCode, ISD::SETLE,
/*  9066*/                OPC_MoveParent,
/*  9067*/                OPC_CheckType, MVT::i1,
/*  9069*/                OPC_MoveParent,
/*  9070*/                OPC_CheckType, MVT::i64,
/*  9072*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9075*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9078*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i32] }, 63:{ *:[i32] })
/*  9087*/              /*Scope*/ 31, /*->9119*/
/*  9088*/                OPC_CheckCondCode, ISD::SETGT,
/*  9090*/                OPC_MoveParent,
/*  9091*/                OPC_CheckType, MVT::i1,
/*  9093*/                OPC_MoveParent,
/*  9094*/                OPC_CheckType, MVT::i64,
/*  9096*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*  9104*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9107*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9110*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] })
/*  9119*/              /*Scope*/ 32, /*->9152*/
/*  9120*/                OPC_CheckCondCode, ISD::SETLE,
/*  9122*/                OPC_MoveParent,
/*  9123*/                OPC_MoveParent,
/*  9124*/                OPC_CheckType, MVT::i32,
/*  9126*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9129*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9132*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*  9141*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9144*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 3, 4, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  9152*/              /*Scope*/ 42, /*->9195*/
/*  9153*/                OPC_CheckCondCode, ISD::SETLT,
/*  9155*/                OPC_MoveParent,
/*  9156*/                OPC_CheckType, MVT::i1,
/*  9158*/                OPC_MoveParent,
/*  9159*/                OPC_CheckType, MVT::i64,
/*  9161*/                OPC_EmitInteger, MVT::i64, 1, 
/*  9164*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*  9172*/                OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9180*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9183*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9186*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (AND8:{ *:[i64] } ?:{ *:[i64] }:$s1, (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i64] })), 1:{ *:[i32] }, 63:{ *:[i32] })
/*  9195*/              /*Scope*/ 42, /*->9238*/
/*  9196*/                OPC_CheckCondCode, ISD::SETGE,
/*  9198*/                OPC_MoveParent,
/*  9199*/                OPC_CheckType, MVT::i1,
/*  9201*/                OPC_MoveParent,
/*  9202*/                OPC_CheckType, MVT::i64,
/*  9204*/                OPC_EmitInteger, MVT::i64, 1, 
/*  9207*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*  9215*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9223*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9226*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9229*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (NAND8:{ *:[i64] } ?:{ *:[i64] }:$s1, (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i64] })), 1:{ *:[i32] }, 63:{ *:[i32] })
/*  9238*/              /*Scope*/ 40, /*->9279*/
/*  9239*/                OPC_CheckCondCode, ISD::SETGT,
/*  9241*/                OPC_MoveParent,
/*  9242*/                OPC_MoveParent,
/*  9243*/                OPC_CheckType, MVT::i32,
/*  9245*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*  9253*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9256*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9259*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/*  9268*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9271*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  9279*/              /*Scope*/ 51, /*->9331*/
/*  9280*/                OPC_CheckCondCode, ISD::SETLT,
/*  9282*/                OPC_MoveParent,
/*  9283*/                OPC_MoveParent,
/*  9284*/                OPC_CheckType, MVT::i32,
/*  9286*/                OPC_EmitInteger, MVT::i64, 1, 
/*  9289*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*  9297*/                OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9305*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9308*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9311*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/*  9320*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9323*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (AND8:{ *:[i64] } ?:{ *:[i64] }:$s1, (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i64] })), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  9331*/              /*Scope*/ 51, /*->9383*/
/*  9332*/                OPC_CheckCondCode, ISD::SETGE,
/*  9334*/                OPC_MoveParent,
/*  9335*/                OPC_MoveParent,
/*  9336*/                OPC_CheckType, MVT::i32,
/*  9338*/                OPC_EmitInteger, MVT::i64, 1, 
/*  9341*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*  9349*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9357*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9360*/                OPC_EmitInteger, MVT::i32, 63, 
/*  9363*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/*  9372*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9375*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (NAND8:{ *:[i64] } ?:{ *:[i64] }:$s1, (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i64] })), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/*  9383*/              0, /*End of Scope*/
/*  9384*/            /*Scope*/ 41|128,11/*1449*/, /*->10835*/
/*  9386*/              OPC_RecordChild1, // #1 = $imm
/*  9387*/              OPC_Scope, 111|128,6/*879*/, /*->10269*/ // 2 children in Scope
/*  9390*/                OPC_MoveChild1,
/*  9391*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9394*/                OPC_Scope, 119, /*->9515*/ // 6 children in Scope
/*  9396*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  9398*/                  OPC_MoveParent,
/*  9399*/                  OPC_MoveChild2,
/*  9400*/                  OPC_CheckCondCode, ISD::SETUGE,
/*  9402*/                  OPC_MoveParent,
/*  9403*/                  OPC_Scope, 53, /*->9458*/ // 2 children in Scope
/*  9405*/                    OPC_MoveParent,
/*  9406*/                    OPC_CheckType, MVT::i32,
/*  9408*/                    OPC_EmitConvertToTarget, 1,
/*  9410*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9418*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  9421*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9429*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  9432*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9439*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  9442*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9449*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  9458*/                  /*Scope*/ 55, /*->9514*/
/*  9459*/                    OPC_CheckType, MVT::i1,
/*  9461*/                    OPC_MoveParent,
/*  9462*/                    OPC_CheckType, MVT::i64,
/*  9464*/                    OPC_EmitConvertToTarget, 1,
/*  9466*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9474*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  9477*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9485*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  9488*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9495*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  9498*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9505*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  9514*/                  0, /*End of Scope*/
/*  9515*/                /*Scope*/ 119, /*->9635*/
/*  9516*/                  OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/*  9518*/                  OPC_MoveParent,
/*  9519*/                  OPC_MoveChild2,
/*  9520*/                  OPC_CheckCondCode, ISD::SETGE,
/*  9522*/                  OPC_MoveParent,
/*  9523*/                  OPC_Scope, 53, /*->9578*/ // 2 children in Scope
/*  9525*/                    OPC_MoveParent,
/*  9526*/                    OPC_CheckType, MVT::i32,
/*  9528*/                    OPC_EmitConvertToTarget, 1,
/*  9530*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9538*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  9541*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9549*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  9552*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9559*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  9562*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9569*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  9578*/                  /*Scope*/ 55, /*->9634*/
/*  9579*/                    OPC_CheckType, MVT::i1,
/*  9581*/                    OPC_MoveParent,
/*  9582*/                    OPC_CheckType, MVT::i64,
/*  9584*/                    OPC_EmitConvertToTarget, 1,
/*  9586*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9594*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  9597*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9605*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  9608*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9615*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  9618*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9625*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  9634*/                  0, /*End of Scope*/
/*  9635*/                /*Scope*/ 119, /*->9755*/
/*  9636*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  9638*/                  OPC_MoveParent,
/*  9639*/                  OPC_MoveChild2,
/*  9640*/                  OPC_CheckCondCode, ISD::SETULE,
/*  9642*/                  OPC_MoveParent,
/*  9643*/                  OPC_Scope, 53, /*->9698*/ // 2 children in Scope
/*  9645*/                    OPC_MoveParent,
/*  9646*/                    OPC_CheckType, MVT::i32,
/*  9648*/                    OPC_EmitConvertToTarget, 1,
/*  9650*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9658*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  9661*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9669*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  9672*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9679*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  9682*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9689*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  9698*/                  /*Scope*/ 55, /*->9754*/
/*  9699*/                    OPC_CheckType, MVT::i1,
/*  9701*/                    OPC_MoveParent,
/*  9702*/                    OPC_CheckType, MVT::i64,
/*  9704*/                    OPC_EmitConvertToTarget, 1,
/*  9706*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9714*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  9717*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9725*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  9728*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9735*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  9738*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9745*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  9754*/                  0, /*End of Scope*/
/*  9755*/                /*Scope*/ 110|128,1/*238*/, /*->9995*/
/*  9757*/                  OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/*  9759*/                  OPC_MoveParent,
/*  9760*/                  OPC_MoveChild2,
/*  9761*/                  OPC_Scope, 115, /*->9878*/ // 2 children in Scope
/*  9763*/                    OPC_CheckCondCode, ISD::SETLE,
/*  9765*/                    OPC_MoveParent,
/*  9766*/                    OPC_Scope, 53, /*->9821*/ // 2 children in Scope
/*  9768*/                      OPC_MoveParent,
/*  9769*/                      OPC_CheckType, MVT::i32,
/*  9771*/                      OPC_EmitConvertToTarget, 1,
/*  9773*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9781*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  9784*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9792*/                      OPC_EmitInteger, MVT::i32, 0, 
/*  9795*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9802*/                      OPC_EmitInteger, MVT::i32, 1, 
/*  9805*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9812*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                    MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  9821*/                    /*Scope*/ 55, /*->9877*/
/*  9822*/                      OPC_CheckType, MVT::i1,
/*  9824*/                      OPC_MoveParent,
/*  9825*/                      OPC_CheckType, MVT::i64,
/*  9827*/                      OPC_EmitConvertToTarget, 1,
/*  9829*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9837*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  9840*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9848*/                      OPC_EmitInteger, MVT::i64, 0, 
/*  9851*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9858*/                      OPC_EmitInteger, MVT::i64, 1, 
/*  9861*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9868*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                    MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  9877*/                    0, /*End of Scope*/
/*  9878*/                  /*Scope*/ 115, /*->9994*/
/*  9879*/                    OPC_CheckCondCode, ISD::SETNE,
/*  9881*/                    OPC_MoveParent,
/*  9882*/                    OPC_Scope, 53, /*->9937*/ // 2 children in Scope
/*  9884*/                      OPC_MoveParent,
/*  9885*/                      OPC_CheckType, MVT::i32,
/*  9887*/                      OPC_EmitConvertToTarget, 1,
/*  9889*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9897*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  9900*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9908*/                      OPC_EmitInteger, MVT::i32, 0, 
/*  9911*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9918*/                      OPC_EmitInteger, MVT::i32, 1, 
/*  9921*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9928*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                    MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/*  9937*/                    /*Scope*/ 55, /*->9993*/
/*  9938*/                      OPC_CheckType, MVT::i1,
/*  9940*/                      OPC_MoveParent,
/*  9941*/                      OPC_CheckType, MVT::i64,
/*  9943*/                      OPC_EmitConvertToTarget, 1,
/*  9945*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9953*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  9956*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9964*/                      OPC_EmitInteger, MVT::i64, 0, 
/*  9967*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9974*/                      OPC_EmitInteger, MVT::i64, 1, 
/*  9977*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9984*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                    MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/*  9993*/                    0, /*End of Scope*/
/*  9994*/                  0, /*End of Scope*/
/*  9995*/                /*Scope*/ 119, /*->10115*/
/*  9996*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  9998*/                  OPC_MoveParent,
/*  9999*/                  OPC_MoveChild2,
/* 10000*/                  OPC_CheckCondCode, ISD::SETNE,
/* 10002*/                  OPC_MoveParent,
/* 10003*/                  OPC_Scope, 53, /*->10058*/ // 2 children in Scope
/* 10005*/                    OPC_MoveParent,
/* 10006*/                    OPC_CheckType, MVT::i32,
/* 10008*/                    OPC_EmitConvertToTarget, 1,
/* 10010*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 10018*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10021*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 10029*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 10032*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 10039*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 10042*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 10049*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 10058*/                  /*Scope*/ 55, /*->10114*/
/* 10059*/                    OPC_CheckType, MVT::i1,
/* 10061*/                    OPC_MoveParent,
/* 10062*/                    OPC_CheckType, MVT::i64,
/* 10064*/                    OPC_EmitConvertToTarget, 1,
/* 10066*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 10074*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10077*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 10085*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10088*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 10095*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10098*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 10105*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 10114*/                  0, /*End of Scope*/
/* 10115*/                /*Scope*/ 23|128,1/*151*/, /*->10268*/
/* 10117*/                  OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 10119*/                  OPC_MoveParent,
/* 10120*/                  OPC_MoveChild2,
/* 10121*/                  OPC_CheckCondCode, ISD::SETNE,
/* 10123*/                  OPC_MoveParent,
/* 10124*/                  OPC_Scope, 69, /*->10195*/ // 2 children in Scope
/* 10126*/                    OPC_MoveParent,
/* 10127*/                    OPC_CheckType, MVT::i32,
/* 10129*/                    OPC_EmitConvertToTarget, 1,
/* 10131*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 10134*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                                  MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 10142*/                    OPC_EmitConvertToTarget, 1,
/* 10144*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 10147*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 10155*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10158*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 10166*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 10169*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 10176*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 10179*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 10186*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 9, 11, 13, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 10195*/                  /*Scope*/ 71, /*->10267*/
/* 10196*/                    OPC_CheckType, MVT::i1,
/* 10198*/                    OPC_MoveParent,
/* 10199*/                    OPC_CheckType, MVT::i64,
/* 10201*/                    OPC_EmitConvertToTarget, 1,
/* 10203*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 10206*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                                  MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 10214*/                    OPC_EmitConvertToTarget, 1,
/* 10216*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 10219*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 10227*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10230*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 10238*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10241*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 10248*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10251*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 10258*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 9, 11, 13, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 10267*/                  0, /*End of Scope*/
/* 10268*/                0, /*End of Scope*/
/* 10269*/              /*Scope*/ 51|128,4/*563*/, /*->10834*/
/* 10271*/                OPC_MoveChild2,
/* 10272*/                OPC_Scope, 111, /*->10385*/ // 5 children in Scope
/* 10274*/                  OPC_CheckCondCode, ISD::SETUGE,
/* 10276*/                  OPC_MoveParent,
/* 10277*/                  OPC_Scope, 51, /*->10330*/ // 2 children in Scope
/* 10279*/                    OPC_MoveParent,
/* 10280*/                    OPC_CheckType, MVT::i32,
/* 10282*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10290*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10293*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10301*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 10304*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10311*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 10314*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10321*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 10330*/                  /*Scope*/ 53, /*->10384*/
/* 10331*/                    OPC_CheckType, MVT::i1,
/* 10333*/                    OPC_MoveParent,
/* 10334*/                    OPC_CheckType, MVT::i64,
/* 10336*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10344*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10347*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10355*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10358*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10365*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10368*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10375*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 10384*/                  0, /*End of Scope*/
/* 10385*/                /*Scope*/ 111, /*->10497*/
/* 10386*/                  OPC_CheckCondCode, ISD::SETGE,
/* 10388*/                  OPC_MoveParent,
/* 10389*/                  OPC_Scope, 51, /*->10442*/ // 2 children in Scope
/* 10391*/                    OPC_MoveParent,
/* 10392*/                    OPC_CheckType, MVT::i32,
/* 10394*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10402*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10405*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10413*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 10416*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10423*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 10426*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10433*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 10442*/                  /*Scope*/ 53, /*->10496*/
/* 10443*/                    OPC_CheckType, MVT::i1,
/* 10445*/                    OPC_MoveParent,
/* 10446*/                    OPC_CheckType, MVT::i64,
/* 10448*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10456*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10459*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10467*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10470*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10477*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10480*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10487*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 10496*/                  0, /*End of Scope*/
/* 10497*/                /*Scope*/ 111, /*->10609*/
/* 10498*/                  OPC_CheckCondCode, ISD::SETULE,
/* 10500*/                  OPC_MoveParent,
/* 10501*/                  OPC_Scope, 51, /*->10554*/ // 2 children in Scope
/* 10503*/                    OPC_MoveParent,
/* 10504*/                    OPC_CheckType, MVT::i32,
/* 10506*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10514*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 10517*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10525*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 10528*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10535*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 10538*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10545*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 10554*/                  /*Scope*/ 53, /*->10608*/
/* 10555*/                    OPC_CheckType, MVT::i1,
/* 10557*/                    OPC_MoveParent,
/* 10558*/                    OPC_CheckType, MVT::i64,
/* 10560*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10568*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 10571*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10579*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10582*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10589*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10592*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10599*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 10608*/                  0, /*End of Scope*/
/* 10609*/                /*Scope*/ 111, /*->10721*/
/* 10610*/                  OPC_CheckCondCode, ISD::SETLE,
/* 10612*/                  OPC_MoveParent,
/* 10613*/                  OPC_Scope, 51, /*->10666*/ // 2 children in Scope
/* 10615*/                    OPC_MoveParent,
/* 10616*/                    OPC_CheckType, MVT::i32,
/* 10618*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10626*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 10629*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10637*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 10640*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10647*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 10650*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10657*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 10666*/                  /*Scope*/ 53, /*->10720*/
/* 10667*/                    OPC_CheckType, MVT::i1,
/* 10669*/                    OPC_MoveParent,
/* 10670*/                    OPC_CheckType, MVT::i64,
/* 10672*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10680*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 10683*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10691*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10694*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10701*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10704*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10711*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 10720*/                  0, /*End of Scope*/
/* 10721*/                /*Scope*/ 111, /*->10833*/
/* 10722*/                  OPC_CheckCondCode, ISD::SETNE,
/* 10724*/                  OPC_MoveParent,
/* 10725*/                  OPC_Scope, 51, /*->10778*/ // 2 children in Scope
/* 10727*/                    OPC_MoveParent,
/* 10728*/                    OPC_CheckType, MVT::i32,
/* 10730*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10738*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10741*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10749*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 10752*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10759*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 10762*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10769*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 10778*/                  /*Scope*/ 53, /*->10832*/
/* 10779*/                    OPC_CheckType, MVT::i1,
/* 10781*/                    OPC_MoveParent,
/* 10782*/                    OPC_CheckType, MVT::i64,
/* 10784*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10792*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10795*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10803*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10806*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10813*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10816*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10823*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 10832*/                  0, /*End of Scope*/
/* 10833*/                0, /*End of Scope*/
/* 10834*/              0, /*End of Scope*/
/* 10835*/            0, /*End of Scope*/
/* 10836*/          /*Scope*/ 106|128,11/*1514*/, /*->12352*/
/* 10838*/            OPC_CheckChild0Type, MVT::f32,
/* 10840*/            OPC_RecordChild1, // #1 = $s2
/* 10841*/            OPC_MoveChild2,
/* 10842*/            OPC_Scope, 115, /*->10959*/ // 13 children in Scope
/* 10844*/              OPC_CheckCondCode, ISD::SETUGE,
/* 10846*/              OPC_MoveParent,
/* 10847*/              OPC_Scope, 53, /*->10902*/ // 2 children in Scope
/* 10849*/                OPC_MoveParent,
/* 10850*/                OPC_CheckType, MVT::i32,
/* 10852*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 10854*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10862*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10865*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10873*/                OPC_EmitInteger, MVT::i32, 0, 
/* 10876*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10883*/                OPC_EmitInteger, MVT::i32, 1, 
/* 10886*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10893*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 10902*/              /*Scope*/ 55, /*->10958*/
/* 10903*/                OPC_CheckType, MVT::i1,
/* 10905*/                OPC_MoveParent,
/* 10906*/                OPC_CheckType, MVT::i64,
/* 10908*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 10910*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10918*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10921*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10929*/                OPC_EmitInteger, MVT::i64, 0, 
/* 10932*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10939*/                OPC_EmitInteger, MVT::i64, 1, 
/* 10942*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10949*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 10958*/              0, /*End of Scope*/
/* 10959*/            /*Scope*/ 115, /*->11075*/
/* 10960*/              OPC_CheckCondCode, ISD::SETGE,
/* 10962*/              OPC_MoveParent,
/* 10963*/              OPC_Scope, 53, /*->11018*/ // 2 children in Scope
/* 10965*/                OPC_MoveParent,
/* 10966*/                OPC_CheckType, MVT::i32,
/* 10968*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 10970*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10978*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10981*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10989*/                OPC_EmitInteger, MVT::i32, 0, 
/* 10992*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10999*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11002*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11009*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11018*/              /*Scope*/ 55, /*->11074*/
/* 11019*/                OPC_CheckType, MVT::i1,
/* 11021*/                OPC_MoveParent,
/* 11022*/                OPC_CheckType, MVT::i64,
/* 11024*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11026*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11034*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 11037*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11045*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11048*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11055*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11058*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11065*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 11074*/              0, /*End of Scope*/
/* 11075*/            /*Scope*/ 115, /*->11191*/
/* 11076*/              OPC_CheckCondCode, ISD::SETULE,
/* 11078*/              OPC_MoveParent,
/* 11079*/              OPC_Scope, 53, /*->11134*/ // 2 children in Scope
/* 11081*/                OPC_MoveParent,
/* 11082*/                OPC_CheckType, MVT::i32,
/* 11084*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11086*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11094*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11097*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11105*/                OPC_EmitInteger, MVT::i32, 0, 
/* 11108*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 11115*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11118*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11125*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11134*/              /*Scope*/ 55, /*->11190*/
/* 11135*/                OPC_CheckType, MVT::i1,
/* 11137*/                OPC_MoveParent,
/* 11138*/                OPC_CheckType, MVT::i64,
/* 11140*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11142*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11150*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11153*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11161*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11164*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11171*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11174*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11181*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 11190*/              0, /*End of Scope*/
/* 11191*/            /*Scope*/ 115, /*->11307*/
/* 11192*/              OPC_CheckCondCode, ISD::SETLE,
/* 11194*/              OPC_MoveParent,
/* 11195*/              OPC_Scope, 53, /*->11250*/ // 2 children in Scope
/* 11197*/                OPC_MoveParent,
/* 11198*/                OPC_CheckType, MVT::i32,
/* 11200*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11202*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11210*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11213*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11221*/                OPC_EmitInteger, MVT::i32, 0, 
/* 11224*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 11231*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11234*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11241*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11250*/              /*Scope*/ 55, /*->11306*/
/* 11251*/                OPC_CheckType, MVT::i1,
/* 11253*/                OPC_MoveParent,
/* 11254*/                OPC_CheckType, MVT::i64,
/* 11256*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11258*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11266*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11269*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11277*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11280*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11287*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11290*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11297*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 11306*/              0, /*End of Scope*/
/* 11307*/            /*Scope*/ 115, /*->11423*/
/* 11308*/              OPC_CheckCondCode, ISD::SETUNE,
/* 11310*/              OPC_MoveParent,
/* 11311*/              OPC_Scope, 53, /*->11366*/ // 2 children in Scope
/* 11313*/                OPC_MoveParent,
/* 11314*/                OPC_CheckType, MVT::i32,
/* 11316*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11318*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11326*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 11329*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11337*/                OPC_EmitInteger, MVT::i32, 0, 
/* 11340*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 11347*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11350*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11357*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11366*/              /*Scope*/ 55, /*->11422*/
/* 11367*/                OPC_CheckType, MVT::i1,
/* 11369*/                OPC_MoveParent,
/* 11370*/                OPC_CheckType, MVT::i64,
/* 11372*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11374*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11382*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 11385*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11393*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11396*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11403*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11406*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11413*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 11422*/              0, /*End of Scope*/
/* 11423*/            /*Scope*/ 115, /*->11539*/
/* 11424*/              OPC_CheckCondCode, ISD::SETNE,
/* 11426*/              OPC_MoveParent,
/* 11427*/              OPC_Scope, 53, /*->11482*/ // 2 children in Scope
/* 11429*/                OPC_MoveParent,
/* 11430*/                OPC_CheckType, MVT::i32,
/* 11432*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11434*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11442*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 11445*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11453*/                OPC_EmitInteger, MVT::i32, 0, 
/* 11456*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 11463*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11466*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11473*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11482*/              /*Scope*/ 55, /*->11538*/
/* 11483*/                OPC_CheckType, MVT::i1,
/* 11485*/                OPC_MoveParent,
/* 11486*/                OPC_CheckType, MVT::i64,
/* 11488*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11490*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11498*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 11501*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11509*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11512*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11519*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11522*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11529*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 11538*/              0, /*End of Scope*/
/* 11539*/            /*Scope*/ 115, /*->11655*/
/* 11540*/              OPC_CheckCondCode, ISD::SETO,
/* 11542*/              OPC_MoveParent,
/* 11543*/              OPC_Scope, 53, /*->11598*/ // 2 children in Scope
/* 11545*/                OPC_MoveParent,
/* 11546*/                OPC_CheckType, MVT::i32,
/* 11548*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11550*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11558*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 11561*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11569*/                OPC_EmitInteger, MVT::i32, 0, 
/* 11572*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 11579*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11582*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11589*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11598*/              /*Scope*/ 55, /*->11654*/
/* 11599*/                OPC_CheckType, MVT::i1,
/* 11601*/                OPC_MoveParent,
/* 11602*/                OPC_CheckType, MVT::i64,
/* 11604*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 11606*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11614*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 11617*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11625*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11628*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11635*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11638*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11645*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 11654*/              0, /*End of Scope*/
/* 11655*/            /*Scope*/ 115, /*->11771*/
/* 11656*/              OPC_CheckCondCode, ISD::SETUGE,
/* 11658*/              OPC_MoveParent,
/* 11659*/              OPC_Scope, 53, /*->11714*/ // 2 children in Scope
/* 11661*/                OPC_MoveParent,
/* 11662*/                OPC_CheckType, MVT::i32,
/* 11664*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 11666*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11674*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11677*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11685*/                OPC_EmitInteger, MVT::i32, 0, 
/* 11688*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 11695*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11698*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11705*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11714*/              /*Scope*/ 55, /*->11770*/
/* 11715*/                OPC_CheckType, MVT::i1,
/* 11717*/                OPC_MoveParent,
/* 11718*/                OPC_CheckType, MVT::i64,
/* 11720*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 11722*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11730*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11733*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11741*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11744*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11751*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11754*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11761*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 11770*/              0, /*End of Scope*/
/* 11771*/            /*Scope*/ 115, /*->11887*/
/* 11772*/              OPC_CheckCondCode, ISD::SETGE,
/* 11774*/              OPC_MoveParent,
/* 11775*/              OPC_Scope, 53, /*->11830*/ // 2 children in Scope
/* 11777*/                OPC_MoveParent,
/* 11778*/                OPC_CheckType, MVT::i32,
/* 11780*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 11782*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11790*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11793*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11801*/                OPC_EmitInteger, MVT::i32, 0, 
/* 11804*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 11811*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11814*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11821*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11830*/              /*Scope*/ 55, /*->11886*/
/* 11831*/                OPC_CheckType, MVT::i1,
/* 11833*/                OPC_MoveParent,
/* 11834*/                OPC_CheckType, MVT::i64,
/* 11836*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 11838*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11846*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11849*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11857*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11860*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11867*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11870*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11877*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 11886*/              0, /*End of Scope*/
/* 11887*/            /*Scope*/ 115, /*->12003*/
/* 11888*/              OPC_CheckCondCode, ISD::SETULE,
/* 11890*/              OPC_MoveParent,
/* 11891*/              OPC_Scope, 53, /*->11946*/ // 2 children in Scope
/* 11893*/                OPC_MoveParent,
/* 11894*/                OPC_CheckType, MVT::i32,
/* 11896*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 11898*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11906*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11909*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11917*/                OPC_EmitInteger, MVT::i32, 0, 
/* 11920*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 11927*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11930*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 11937*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 11946*/              /*Scope*/ 55, /*->12002*/
/* 11947*/                OPC_CheckType, MVT::i1,
/* 11949*/                OPC_MoveParent,
/* 11950*/                OPC_CheckType, MVT::i64,
/* 11952*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 11954*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11962*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11965*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 11973*/                OPC_EmitInteger, MVT::i64, 0, 
/* 11976*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 11983*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11986*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 11993*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12002*/              0, /*End of Scope*/
/* 12003*/            /*Scope*/ 115, /*->12119*/
/* 12004*/              OPC_CheckCondCode, ISD::SETLE,
/* 12006*/              OPC_MoveParent,
/* 12007*/              OPC_Scope, 53, /*->12062*/ // 2 children in Scope
/* 12009*/                OPC_MoveParent,
/* 12010*/                OPC_CheckType, MVT::i32,
/* 12012*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 12014*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12022*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12025*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12033*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12036*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12043*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12046*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12053*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12062*/              /*Scope*/ 55, /*->12118*/
/* 12063*/                OPC_CheckType, MVT::i1,
/* 12065*/                OPC_MoveParent,
/* 12066*/                OPC_CheckType, MVT::i64,
/* 12068*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 12070*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12078*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12081*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12089*/                OPC_EmitInteger, MVT::i64, 0, 
/* 12092*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12099*/                OPC_EmitInteger, MVT::i64, 1, 
/* 12102*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12109*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12118*/              0, /*End of Scope*/
/* 12119*/            /*Scope*/ 115, /*->12235*/
/* 12120*/              OPC_CheckCondCode, ISD::SETUNE,
/* 12122*/              OPC_MoveParent,
/* 12123*/              OPC_Scope, 53, /*->12178*/ // 2 children in Scope
/* 12125*/                OPC_MoveParent,
/* 12126*/                OPC_CheckType, MVT::i32,
/* 12128*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 12130*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12138*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12141*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12149*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12152*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12159*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12162*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12169*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12178*/              /*Scope*/ 55, /*->12234*/
/* 12179*/                OPC_CheckType, MVT::i1,
/* 12181*/                OPC_MoveParent,
/* 12182*/                OPC_CheckType, MVT::i64,
/* 12184*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 12186*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12194*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12197*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12205*/                OPC_EmitInteger, MVT::i64, 0, 
/* 12208*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12215*/                OPC_EmitInteger, MVT::i64, 1, 
/* 12218*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12225*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12234*/              0, /*End of Scope*/
/* 12235*/            /*Scope*/ 115, /*->12351*/
/* 12236*/              OPC_CheckCondCode, ISD::SETNE,
/* 12238*/              OPC_MoveParent,
/* 12239*/              OPC_Scope, 53, /*->12294*/ // 2 children in Scope
/* 12241*/                OPC_MoveParent,
/* 12242*/                OPC_CheckType, MVT::i32,
/* 12244*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 12246*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12254*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12257*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12265*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12268*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12275*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12278*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12285*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12294*/              /*Scope*/ 55, /*->12350*/
/* 12295*/                OPC_CheckType, MVT::i1,
/* 12297*/                OPC_MoveParent,
/* 12298*/                OPC_CheckType, MVT::i64,
/* 12300*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 12302*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12310*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12313*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12321*/                OPC_EmitInteger, MVT::i64, 0, 
/* 12324*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12331*/                OPC_EmitInteger, MVT::i64, 1, 
/* 12334*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12341*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12350*/              0, /*End of Scope*/
/* 12351*/            0, /*End of Scope*/
/* 12352*/          /*Scope*/ 106|128,11/*1514*/, /*->13868*/
/* 12354*/            OPC_CheckChild0Type, MVT::f64,
/* 12356*/            OPC_RecordChild1, // #1 = $s2
/* 12357*/            OPC_MoveChild2,
/* 12358*/            OPC_Scope, 115, /*->12475*/ // 13 children in Scope
/* 12360*/              OPC_CheckCondCode, ISD::SETUGE,
/* 12362*/              OPC_MoveParent,
/* 12363*/              OPC_Scope, 53, /*->12418*/ // 2 children in Scope
/* 12365*/                OPC_MoveParent,
/* 12366*/                OPC_CheckType, MVT::i32,
/* 12368*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12370*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12378*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 12381*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12389*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12392*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12399*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12402*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12409*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12418*/              /*Scope*/ 55, /*->12474*/
/* 12419*/                OPC_CheckType, MVT::i1,
/* 12421*/                OPC_MoveParent,
/* 12422*/                OPC_CheckType, MVT::i64,
/* 12424*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12426*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12434*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 12437*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12445*/                OPC_EmitInteger, MVT::i64, 0, 
/* 12448*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12455*/                OPC_EmitInteger, MVT::i64, 1, 
/* 12458*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12465*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12474*/              0, /*End of Scope*/
/* 12475*/            /*Scope*/ 115, /*->12591*/
/* 12476*/              OPC_CheckCondCode, ISD::SETGE,
/* 12478*/              OPC_MoveParent,
/* 12479*/              OPC_Scope, 53, /*->12534*/ // 2 children in Scope
/* 12481*/                OPC_MoveParent,
/* 12482*/                OPC_CheckType, MVT::i32,
/* 12484*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12486*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12494*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 12497*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12505*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12508*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12515*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12518*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12525*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12534*/              /*Scope*/ 55, /*->12590*/
/* 12535*/                OPC_CheckType, MVT::i1,
/* 12537*/                OPC_MoveParent,
/* 12538*/                OPC_CheckType, MVT::i64,
/* 12540*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12542*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12550*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 12553*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12561*/                OPC_EmitInteger, MVT::i64, 0, 
/* 12564*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12571*/                OPC_EmitInteger, MVT::i64, 1, 
/* 12574*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12581*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12590*/              0, /*End of Scope*/
/* 12591*/            /*Scope*/ 115, /*->12707*/
/* 12592*/              OPC_CheckCondCode, ISD::SETULE,
/* 12594*/              OPC_MoveParent,
/* 12595*/              OPC_Scope, 53, /*->12650*/ // 2 children in Scope
/* 12597*/                OPC_MoveParent,
/* 12598*/                OPC_CheckType, MVT::i32,
/* 12600*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12602*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12610*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12613*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12621*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12624*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12631*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12634*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12641*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12650*/              /*Scope*/ 55, /*->12706*/
/* 12651*/                OPC_CheckType, MVT::i1,
/* 12653*/                OPC_MoveParent,
/* 12654*/                OPC_CheckType, MVT::i64,
/* 12656*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12658*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12666*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12669*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12677*/                OPC_EmitInteger, MVT::i64, 0, 
/* 12680*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12687*/                OPC_EmitInteger, MVT::i64, 1, 
/* 12690*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12697*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12706*/              0, /*End of Scope*/
/* 12707*/            /*Scope*/ 115, /*->12823*/
/* 12708*/              OPC_CheckCondCode, ISD::SETLE,
/* 12710*/              OPC_MoveParent,
/* 12711*/              OPC_Scope, 53, /*->12766*/ // 2 children in Scope
/* 12713*/                OPC_MoveParent,
/* 12714*/                OPC_CheckType, MVT::i32,
/* 12716*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12718*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12726*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12729*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12737*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12740*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12747*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12750*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12757*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12766*/              /*Scope*/ 55, /*->12822*/
/* 12767*/                OPC_CheckType, MVT::i1,
/* 12769*/                OPC_MoveParent,
/* 12770*/                OPC_CheckType, MVT::i64,
/* 12772*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12774*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12782*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12785*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12793*/                OPC_EmitInteger, MVT::i64, 0, 
/* 12796*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12803*/                OPC_EmitInteger, MVT::i64, 1, 
/* 12806*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12813*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12822*/              0, /*End of Scope*/
/* 12823*/            /*Scope*/ 115, /*->12939*/
/* 12824*/              OPC_CheckCondCode, ISD::SETUNE,
/* 12826*/              OPC_MoveParent,
/* 12827*/              OPC_Scope, 53, /*->12882*/ // 2 children in Scope
/* 12829*/                OPC_MoveParent,
/* 12830*/                OPC_CheckType, MVT::i32,
/* 12832*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12834*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12842*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12845*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12853*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12856*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12863*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12866*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12873*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12882*/              /*Scope*/ 55, /*->12938*/
/* 12883*/                OPC_CheckType, MVT::i1,
/* 12885*/                OPC_MoveParent,
/* 12886*/                OPC_CheckType, MVT::i64,
/* 12888*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12890*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12898*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12901*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12909*/                OPC_EmitInteger, MVT::i64, 0, 
/* 12912*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12919*/                OPC_EmitInteger, MVT::i64, 1, 
/* 12922*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12929*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 12938*/              0, /*End of Scope*/
/* 12939*/            /*Scope*/ 115, /*->13055*/
/* 12940*/              OPC_CheckCondCode, ISD::SETNE,
/* 12942*/              OPC_MoveParent,
/* 12943*/              OPC_Scope, 53, /*->12998*/ // 2 children in Scope
/* 12945*/                OPC_MoveParent,
/* 12946*/                OPC_CheckType, MVT::i32,
/* 12948*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 12950*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12958*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12961*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12969*/                OPC_EmitInteger, MVT::i32, 0, 
/* 12972*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12979*/                OPC_EmitInteger, MVT::i32, 1, 
/* 12982*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12989*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 12998*/              /*Scope*/ 55, /*->13054*/
/* 12999*/                OPC_CheckType, MVT::i1,
/* 13001*/                OPC_MoveParent,
/* 13002*/                OPC_CheckType, MVT::i64,
/* 13004*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 13006*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13014*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 13017*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13025*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13028*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13035*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13038*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13045*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13054*/              0, /*End of Scope*/
/* 13055*/            /*Scope*/ 115, /*->13171*/
/* 13056*/              OPC_CheckCondCode, ISD::SETO,
/* 13058*/              OPC_MoveParent,
/* 13059*/              OPC_Scope, 53, /*->13114*/ // 2 children in Scope
/* 13061*/                OPC_MoveParent,
/* 13062*/                OPC_CheckType, MVT::i32,
/* 13064*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 13066*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13074*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 13077*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13085*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13088*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13095*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13098*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13105*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 13114*/              /*Scope*/ 55, /*->13170*/
/* 13115*/                OPC_CheckType, MVT::i1,
/* 13117*/                OPC_MoveParent,
/* 13118*/                OPC_CheckType, MVT::i64,
/* 13120*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 13122*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13130*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 13133*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13141*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13144*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13151*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13154*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13161*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13170*/              0, /*End of Scope*/
/* 13171*/            /*Scope*/ 115, /*->13287*/
/* 13172*/              OPC_CheckCondCode, ISD::SETUGE,
/* 13174*/              OPC_MoveParent,
/* 13175*/              OPC_Scope, 53, /*->13230*/ // 2 children in Scope
/* 13177*/                OPC_MoveParent,
/* 13178*/                OPC_CheckType, MVT::i32,
/* 13180*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13182*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13190*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13193*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13201*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13204*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13211*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13214*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13221*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 13230*/              /*Scope*/ 55, /*->13286*/
/* 13231*/                OPC_CheckType, MVT::i1,
/* 13233*/                OPC_MoveParent,
/* 13234*/                OPC_CheckType, MVT::i64,
/* 13236*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13238*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13246*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13249*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13257*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13260*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13267*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13270*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13277*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13286*/              0, /*End of Scope*/
/* 13287*/            /*Scope*/ 115, /*->13403*/
/* 13288*/              OPC_CheckCondCode, ISD::SETGE,
/* 13290*/              OPC_MoveParent,
/* 13291*/              OPC_Scope, 53, /*->13346*/ // 2 children in Scope
/* 13293*/                OPC_MoveParent,
/* 13294*/                OPC_CheckType, MVT::i32,
/* 13296*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13298*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13306*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13309*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13317*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13320*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13327*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13330*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13337*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 13346*/              /*Scope*/ 55, /*->13402*/
/* 13347*/                OPC_CheckType, MVT::i1,
/* 13349*/                OPC_MoveParent,
/* 13350*/                OPC_CheckType, MVT::i64,
/* 13352*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13354*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13362*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13365*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13373*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13376*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13383*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13386*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13393*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13402*/              0, /*End of Scope*/
/* 13403*/            /*Scope*/ 115, /*->13519*/
/* 13404*/              OPC_CheckCondCode, ISD::SETULE,
/* 13406*/              OPC_MoveParent,
/* 13407*/              OPC_Scope, 53, /*->13462*/ // 2 children in Scope
/* 13409*/                OPC_MoveParent,
/* 13410*/                OPC_CheckType, MVT::i32,
/* 13412*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13414*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13422*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13425*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13433*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13436*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13443*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13446*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13453*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 13462*/              /*Scope*/ 55, /*->13518*/
/* 13463*/                OPC_CheckType, MVT::i1,
/* 13465*/                OPC_MoveParent,
/* 13466*/                OPC_CheckType, MVT::i64,
/* 13468*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13470*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13478*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13481*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13489*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13492*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13499*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13502*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13509*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13518*/              0, /*End of Scope*/
/* 13519*/            /*Scope*/ 115, /*->13635*/
/* 13520*/              OPC_CheckCondCode, ISD::SETLE,
/* 13522*/              OPC_MoveParent,
/* 13523*/              OPC_Scope, 53, /*->13578*/ // 2 children in Scope
/* 13525*/                OPC_MoveParent,
/* 13526*/                OPC_CheckType, MVT::i32,
/* 13528*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13530*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13538*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13541*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13549*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13552*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13559*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13562*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13569*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 13578*/              /*Scope*/ 55, /*->13634*/
/* 13579*/                OPC_CheckType, MVT::i1,
/* 13581*/                OPC_MoveParent,
/* 13582*/                OPC_CheckType, MVT::i64,
/* 13584*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13586*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13594*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13597*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13605*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13608*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13615*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13618*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13625*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13634*/              0, /*End of Scope*/
/* 13635*/            /*Scope*/ 115, /*->13751*/
/* 13636*/              OPC_CheckCondCode, ISD::SETUNE,
/* 13638*/              OPC_MoveParent,
/* 13639*/              OPC_Scope, 53, /*->13694*/ // 2 children in Scope
/* 13641*/                OPC_MoveParent,
/* 13642*/                OPC_CheckType, MVT::i32,
/* 13644*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13646*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13654*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13657*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13665*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13668*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13675*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13678*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13685*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 13694*/              /*Scope*/ 55, /*->13750*/
/* 13695*/                OPC_CheckType, MVT::i1,
/* 13697*/                OPC_MoveParent,
/* 13698*/                OPC_CheckType, MVT::i64,
/* 13700*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13702*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13710*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13713*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13721*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13724*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13731*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13734*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13741*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13750*/              0, /*End of Scope*/
/* 13751*/            /*Scope*/ 115, /*->13867*/
/* 13752*/              OPC_CheckCondCode, ISD::SETNE,
/* 13754*/              OPC_MoveParent,
/* 13755*/              OPC_Scope, 53, /*->13810*/ // 2 children in Scope
/* 13757*/                OPC_MoveParent,
/* 13758*/                OPC_CheckType, MVT::i32,
/* 13760*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13762*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13770*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13773*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13781*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13784*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13791*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13794*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13801*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 13810*/              /*Scope*/ 55, /*->13866*/
/* 13811*/                OPC_CheckType, MVT::i1,
/* 13813*/                OPC_MoveParent,
/* 13814*/                OPC_CheckType, MVT::i64,
/* 13816*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 13818*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13826*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13829*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13837*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13840*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13847*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13850*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13857*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13866*/              0, /*End of Scope*/
/* 13867*/            0, /*End of Scope*/
/* 13868*/          /*Scope*/ 50|128,6/*818*/, /*->14688*/
/* 13870*/            OPC_CheckChild0Type, MVT::f128,
/* 13872*/            OPC_RecordChild1, // #1 = $s2
/* 13873*/            OPC_MoveChild2,
/* 13874*/            OPC_Scope, 115, /*->13991*/ // 7 children in Scope
/* 13876*/              OPC_CheckCondCode, ISD::SETUGE,
/* 13878*/              OPC_MoveParent,
/* 13879*/              OPC_Scope, 53, /*->13934*/ // 2 children in Scope
/* 13881*/                OPC_MoveParent,
/* 13882*/                OPC_CheckType, MVT::i32,
/* 13884*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 13886*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13894*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 13897*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13905*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13908*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13915*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13918*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13925*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 13934*/              /*Scope*/ 55, /*->13990*/
/* 13935*/                OPC_CheckType, MVT::i1,
/* 13937*/                OPC_MoveParent,
/* 13938*/                OPC_CheckType, MVT::i64,
/* 13940*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 13942*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13950*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 13953*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13961*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13964*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13971*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13974*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13981*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 13990*/              0, /*End of Scope*/
/* 13991*/            /*Scope*/ 115, /*->14107*/
/* 13992*/              OPC_CheckCondCode, ISD::SETGE,
/* 13994*/              OPC_MoveParent,
/* 13995*/              OPC_Scope, 53, /*->14050*/ // 2 children in Scope
/* 13997*/                OPC_MoveParent,
/* 13998*/                OPC_CheckType, MVT::i32,
/* 14000*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14002*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14010*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 14013*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14021*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14024*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14031*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14034*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14041*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 14050*/              /*Scope*/ 55, /*->14106*/
/* 14051*/                OPC_CheckType, MVT::i1,
/* 14053*/                OPC_MoveParent,
/* 14054*/                OPC_CheckType, MVT::i64,
/* 14056*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14058*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14066*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 14069*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14077*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14080*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14087*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14090*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14097*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 14106*/              0, /*End of Scope*/
/* 14107*/            /*Scope*/ 115, /*->14223*/
/* 14108*/              OPC_CheckCondCode, ISD::SETULE,
/* 14110*/              OPC_MoveParent,
/* 14111*/              OPC_Scope, 53, /*->14166*/ // 2 children in Scope
/* 14113*/                OPC_MoveParent,
/* 14114*/                OPC_CheckType, MVT::i32,
/* 14116*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14118*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14126*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14129*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14137*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14140*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14147*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14150*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14157*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 14166*/              /*Scope*/ 55, /*->14222*/
/* 14167*/                OPC_CheckType, MVT::i1,
/* 14169*/                OPC_MoveParent,
/* 14170*/                OPC_CheckType, MVT::i64,
/* 14172*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14174*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14182*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14185*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14193*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14196*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14203*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14206*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14213*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 14222*/              0, /*End of Scope*/
/* 14223*/            /*Scope*/ 115, /*->14339*/
/* 14224*/              OPC_CheckCondCode, ISD::SETLE,
/* 14226*/              OPC_MoveParent,
/* 14227*/              OPC_Scope, 53, /*->14282*/ // 2 children in Scope
/* 14229*/                OPC_MoveParent,
/* 14230*/                OPC_CheckType, MVT::i32,
/* 14232*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14234*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14242*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14245*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14253*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14256*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14263*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14266*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14273*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 14282*/              /*Scope*/ 55, /*->14338*/
/* 14283*/                OPC_CheckType, MVT::i1,
/* 14285*/                OPC_MoveParent,
/* 14286*/                OPC_CheckType, MVT::i64,
/* 14288*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14290*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14298*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14301*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14309*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14312*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14319*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14322*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14329*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 14338*/              0, /*End of Scope*/
/* 14339*/            /*Scope*/ 115, /*->14455*/
/* 14340*/              OPC_CheckCondCode, ISD::SETUNE,
/* 14342*/              OPC_MoveParent,
/* 14343*/              OPC_Scope, 53, /*->14398*/ // 2 children in Scope
/* 14345*/                OPC_MoveParent,
/* 14346*/                OPC_CheckType, MVT::i32,
/* 14348*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14350*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14358*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 14361*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14369*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14372*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14379*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14382*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14389*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 14398*/              /*Scope*/ 55, /*->14454*/
/* 14399*/                OPC_CheckType, MVT::i1,
/* 14401*/                OPC_MoveParent,
/* 14402*/                OPC_CheckType, MVT::i64,
/* 14404*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14406*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14414*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 14417*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14425*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14428*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14435*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14438*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14445*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 14454*/              0, /*End of Scope*/
/* 14455*/            /*Scope*/ 115, /*->14571*/
/* 14456*/              OPC_CheckCondCode, ISD::SETNE,
/* 14458*/              OPC_MoveParent,
/* 14459*/              OPC_Scope, 53, /*->14514*/ // 2 children in Scope
/* 14461*/                OPC_MoveParent,
/* 14462*/                OPC_CheckType, MVT::i32,
/* 14464*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14466*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14474*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 14477*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14485*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14488*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14495*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14498*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14505*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 14514*/              /*Scope*/ 55, /*->14570*/
/* 14515*/                OPC_CheckType, MVT::i1,
/* 14517*/                OPC_MoveParent,
/* 14518*/                OPC_CheckType, MVT::i64,
/* 14520*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14522*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14530*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 14533*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14541*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14544*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14551*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14554*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14561*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 14570*/              0, /*End of Scope*/
/* 14571*/            /*Scope*/ 115, /*->14687*/
/* 14572*/              OPC_CheckCondCode, ISD::SETO,
/* 14574*/              OPC_MoveParent,
/* 14575*/              OPC_Scope, 53, /*->14630*/ // 2 children in Scope
/* 14577*/                OPC_MoveParent,
/* 14578*/                OPC_CheckType, MVT::i32,
/* 14580*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14582*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14590*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 14593*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14601*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14604*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14611*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14614*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14621*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 14630*/              /*Scope*/ 55, /*->14686*/
/* 14631*/                OPC_CheckType, MVT::i1,
/* 14633*/                OPC_MoveParent,
/* 14634*/                OPC_CheckType, MVT::i64,
/* 14636*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 14638*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14646*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 14649*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14657*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14660*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14667*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14670*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14677*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (anyext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 14686*/              0, /*End of Scope*/
/* 14687*/            0, /*End of Scope*/
/* 14688*/          0, /*End of Scope*/
/* 14689*/        0, /*End of Scope*/
/* 14690*/      0, // EndSwitchOpcode
/* 14691*/    /*Scope*/ 91, /*->14783*/
/* 14692*/      OPC_RecordChild0, // #0 = $in
/* 14693*/      OPC_SwitchType /*2 cases */, 55, MVT::i64,// ->14751
/* 14696*/        OPC_Scope, 20, /*->14718*/ // 2 children in Scope
/* 14698*/          OPC_CheckChild0Type, MVT::i32,
/* 14700*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #1
/* 14706*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 14709*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (anyext:{ *:[i64] } i32:{ *:[i32] }:$in) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$in, sub_32:{ *:[i32] })
/* 14718*/        /*Scope*/ 31, /*->14750*/
/* 14719*/          OPC_CheckChild0Type, MVT::i1,
/* 14721*/          OPC_EmitInteger, MVT::i64, 1, 
/* 14724*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 14731*/          OPC_EmitInteger, MVT::i64, 0, 
/* 14734*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 14741*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 4, 
                    // Src: (anyext:{ *:[i64] } i1:{ *:[i1] }:$in) - Complexity = 3
                    // Dst: (SELECT_I8:{ *:[i64] } ?:{ *:[i1] }:$in, (LI8:{ *:[i64] } 1:{ *:[i64] }), (LI8:{ *:[i64] } 0:{ *:[i64] }))
/* 14750*/        0, /*End of Scope*/
/* 14751*/      /*SwitchType*/ 29, MVT::i32,// ->14782
/* 14753*/        OPC_EmitInteger, MVT::i32, 1, 
/* 14756*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #2
/* 14763*/        OPC_EmitInteger, MVT::i32, 0, 
/* 14766*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 14773*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                      MVT::i32, 3/*#Ops*/, 0, 2, 4, 
                  // Src: (anyext:{ *:[i32] } i1:{ *:[i1] }:$in) - Complexity = 3
                  // Dst: (SELECT_I4:{ *:[i32] } ?:{ *:[i1] }:$in, (LI:{ *:[i32] } 1:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }))
/* 14782*/      0, // EndSwitchType
/* 14783*/    0, /*End of Scope*/
/* 14784*/  /*SwitchOpcode*/ 79|128,77/*9935*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->24723
/* 14788*/    OPC_Scope, 96|128,76/*9824*/, /*->24615*/ // 2 children in Scope
/* 14791*/      OPC_MoveChild0,
/* 14792*/      OPC_SwitchOpcode /*2 cases */, 78|128,2/*334*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->15131
/* 14797*/        OPC_RecordChild0, // #0 = $S
/* 14798*/        OPC_CheckChild0Type, MVT::v4i32,
/* 14800*/        OPC_CheckType, MVT::i32,
/* 14802*/        OPC_Scope, 49, /*->14853*/ // 5 children in Scope
/* 14804*/          OPC_CheckChild1Integer, 0, 
/* 14806*/          OPC_MoveParent,
/* 14807*/          OPC_CheckType, MVT::i64,
/* 14809*/          OPC_Scope, 20, /*->14831*/ // 2 children in Scope
/* 14811*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 14813*/            OPC_EmitInteger, MVT::i64, 0, 
/* 14816*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 14823*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 0:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v4i32] }:$S)
/* 14831*/          /*Scope*/ 20, /*->14852*/
/* 14832*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 14834*/            OPC_EmitInteger, MVT::i64, 0, 
/* 14837*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 14844*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 0:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v4i32] }:$S)
/* 14852*/          0, /*End of Scope*/
/* 14853*/        /*Scope*/ 78, /*->14932*/
/* 14854*/          OPC_CheckChild1Integer, 1, 
/* 14856*/          OPC_MoveParent,
/* 14857*/          OPC_CheckType, MVT::i64,
/* 14859*/          OPC_Scope, 20, /*->14881*/ // 2 children in Scope
/* 14861*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 14863*/            OPC_EmitInteger, MVT::i64, 4, 
/* 14866*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 14873*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 1:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v4i32] }:$S)
/* 14881*/          /*Scope*/ 49, /*->14931*/
/* 14882*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 14884*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #1
/* 14890*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 14893*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 14901*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 14904*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 14912*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14919*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 14922*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 1:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), sub_32:{ *:[i32] })
/* 14931*/          0, /*End of Scope*/
/* 14932*/        /*Scope*/ 49, /*->14982*/
/* 14933*/          OPC_CheckChild1Integer, 3, 
/* 14935*/          OPC_MoveParent,
/* 14936*/          OPC_CheckType, MVT::i64,
/* 14938*/          OPC_Scope, 20, /*->14960*/ // 2 children in Scope
/* 14940*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 14942*/            OPC_EmitInteger, MVT::i64, 12, 
/* 14945*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 14952*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 3:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v4i32] }:$S)
/* 14960*/          /*Scope*/ 20, /*->14981*/
/* 14961*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 14963*/            OPC_EmitInteger, MVT::i64, 12, 
/* 14966*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 14973*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 3:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v4i32] }:$S)
/* 14981*/          0, /*End of Scope*/
/* 14982*/        /*Scope*/ 78, /*->15061*/
/* 14983*/          OPC_CheckChild1Integer, 2, 
/* 14985*/          OPC_MoveParent,
/* 14986*/          OPC_CheckType, MVT::i64,
/* 14988*/          OPC_Scope, 20, /*->15010*/ // 2 children in Scope
/* 14990*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 14992*/            OPC_EmitInteger, MVT::i64, 8, 
/* 14995*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 15002*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 2:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v4i32] }:$S)
/* 15010*/          /*Scope*/ 49, /*->15060*/
/* 15011*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 15013*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #1
/* 15019*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 15022*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 15030*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 15033*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 15041*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15048*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 15051*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 2:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), sub_32:{ *:[i32] })
/* 15060*/          0, /*End of Scope*/
/* 15061*/        /*Scope*/ 68, /*->15130*/
/* 15062*/          OPC_RecordChild1, // #1 = $Idx
/* 15063*/          OPC_CheckChild1Type, MVT::i64,
/* 15065*/          OPC_MoveParent,
/* 15066*/          OPC_CheckType, MVT::i64,
/* 15068*/          OPC_Scope, 29, /*->15099*/ // 2 children in Scope
/* 15070*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 15072*/            OPC_EmitInteger, MVT::i32, 2, 
/* 15075*/            OPC_EmitInteger, MVT::i32, 28, 
/* 15078*/            OPC_EmitInteger, MVT::i32, 29, 
/* 15081*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                          MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 15091*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 5, 0, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, i64:{ *:[i64] }:$Idx)) - Complexity = 406
                      // Dst: (VEXTUWRX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 2:{ *:[i32] }, 28:{ *:[i32] }, 29:{ *:[i32] }), ?:{ *:[v4i32] }:$S)
/* 15099*/          /*Scope*/ 29, /*->15129*/
/* 15100*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 15102*/            OPC_EmitInteger, MVT::i32, 2, 
/* 15105*/            OPC_EmitInteger, MVT::i32, 28, 
/* 15108*/            OPC_EmitInteger, MVT::i32, 29, 
/* 15111*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                          MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 15121*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 5, 0, 
                      // Src: (zext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, i64:{ *:[i64] }:$Idx)) - Complexity = 406
                      // Dst: (VEXTUWLX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 2:{ *:[i32] }, 28:{ *:[i32] }, 29:{ *:[i32] }), ?:{ *:[v4i32] }:$S)
/* 15129*/          0, /*End of Scope*/
/* 15130*/        0, /*End of Scope*/
/* 15131*/      /*SwitchOpcode*/ 7|128,74/*9479*/, TARGET_VAL(ISD::SETCC),// ->24614
/* 15135*/        OPC_Scope, 22|128,7/*918*/, /*->16056*/ // 2 children in Scope
/* 15138*/          OPC_MoveChild0,
/* 15139*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 15142*/          OPC_Scope, 91, /*->15235*/ // 8 children in Scope
/* 15144*/            OPC_RecordChild0, // #0 = $s1
/* 15145*/            OPC_MoveChild1,
/* 15146*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 15149*/            OPC_CheckChild0Integer, 1, 
/* 15151*/            OPC_RecordChild1, // #1 = $sa
/* 15152*/            OPC_CheckChild1Type, MVT::i32,
/* 15154*/            OPC_MoveParent,
/* 15155*/            OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->15196
/* 15158*/              OPC_MoveParent,
/* 15159*/              OPC_CheckChild1Integer, 0, 
/* 15161*/              OPC_MoveChild2,
/* 15162*/              OPC_CheckCondCode, ISD::SETNE,
/* 15164*/              OPC_MoveParent,
/* 15165*/              OPC_MoveParent,
/* 15166*/              OPC_CheckType, MVT::i32,
/* 15168*/              OPC_EmitInteger, MVT::i32, 32, 
/* 15171*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/* 15180*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15183*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15186*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 0, 3, 5, 6, 
                        // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i32] } i32:{ *:[i32] }:$s1, (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] })
/* 15196*/            /*SwitchType*/ 36, MVT::i64,// ->15234
/* 15198*/              OPC_MoveParent,
/* 15199*/              OPC_CheckChild1Integer, 0, 
/* 15201*/              OPC_MoveChild2,
/* 15202*/              OPC_CheckCondCode, ISD::SETNE,
/* 15204*/              OPC_MoveParent,
/* 15205*/              OPC_CheckType, MVT::i1,
/* 15207*/              OPC_MoveParent,
/* 15208*/              OPC_CheckType, MVT::i64,
/* 15210*/              OPC_EmitInteger, MVT::i32, 64, 
/* 15213*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/* 15222*/              OPC_EmitInteger, MVT::i32, 63, 
/* 15225*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 0, 3, 5, 
                        // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i64] } i64:{ *:[i64] }:$s1, (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] })
/* 15234*/            0, // EndSwitchType
/* 15235*/          /*Scope*/ 91, /*->15327*/
/* 15236*/            OPC_MoveChild0,
/* 15237*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 15240*/            OPC_CheckChild0Integer, 1, 
/* 15242*/            OPC_RecordChild1, // #0 = $sa
/* 15243*/            OPC_CheckChild1Type, MVT::i32,
/* 15245*/            OPC_MoveParent,
/* 15246*/            OPC_RecordChild1, // #1 = $s1
/* 15247*/            OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->15288
/* 15250*/              OPC_MoveParent,
/* 15251*/              OPC_CheckChild1Integer, 0, 
/* 15253*/              OPC_MoveChild2,
/* 15254*/              OPC_CheckCondCode, ISD::SETNE,
/* 15256*/              OPC_MoveParent,
/* 15257*/              OPC_MoveParent,
/* 15258*/              OPC_CheckType, MVT::i32,
/* 15260*/              OPC_EmitInteger, MVT::i32, 32, 
/* 15263*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/* 15272*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15275*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15278*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 1, 3, 5, 6, 
                        // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa), i32:{ *:[i32] }:$s1), 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] })
/* 15288*/            /*SwitchType*/ 36, MVT::i64,// ->15326
/* 15290*/              OPC_MoveParent,
/* 15291*/              OPC_CheckChild1Integer, 0, 
/* 15293*/              OPC_MoveChild2,
/* 15294*/              OPC_CheckCondCode, ISD::SETNE,
/* 15296*/              OPC_MoveParent,
/* 15297*/              OPC_CheckType, MVT::i1,
/* 15299*/              OPC_MoveParent,
/* 15300*/              OPC_CheckType, MVT::i64,
/* 15302*/              OPC_EmitInteger, MVT::i32, 64, 
/* 15305*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/* 15314*/              OPC_EmitInteger, MVT::i32, 63, 
/* 15317*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 1, 3, 5, 
                        // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa), i64:{ *:[i64] }:$s1), 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] })
/* 15326*/            0, // EndSwitchType
/* 15327*/          /*Scope*/ 24|128,1/*152*/, /*->15481*/
/* 15329*/            OPC_RecordChild0, // #0 = $s1
/* 15330*/            OPC_MoveChild1,
/* 15331*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 15334*/            OPC_CheckChild0Integer, 1, 
/* 15336*/            OPC_RecordChild1, // #1 = $sa
/* 15337*/            OPC_CheckChild1Type, MVT::i32,
/* 15339*/            OPC_MoveParent,
/* 15340*/            OPC_SwitchType /*2 cases */, 89, MVT::i64,// ->15432
/* 15343*/              OPC_MoveParent,
/* 15344*/              OPC_CheckChild1Integer, 0, 
/* 15346*/              OPC_MoveChild2,
/* 15347*/              OPC_Scope, 41, /*->15390*/ // 2 children in Scope
/* 15349*/                OPC_CheckCondCode, ISD::SETNE,
/* 15351*/                OPC_MoveParent,
/* 15352*/                OPC_MoveParent,
/* 15353*/                OPC_CheckType, MVT::i32,
/* 15355*/                OPC_EmitInteger, MVT::i32, 64, 
/* 15358*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/* 15367*/                OPC_EmitInteger, MVT::i32, 63, 
/* 15370*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 3, 5,  // Results = #6
/* 15379*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 15382*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i64] } i64:{ *:[i64] }:$s1, (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 22
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 15390*/              /*Scope*/ 40, /*->15431*/
/* 15391*/                OPC_CheckCondCode, ISD::SETEQ,
/* 15393*/                OPC_MoveParent,
/* 15394*/                OPC_CheckType, MVT::i1,
/* 15396*/                OPC_MoveParent,
/* 15397*/                OPC_CheckType, MVT::i64,
/* 15399*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #2
/* 15407*/                OPC_EmitInteger, MVT::i32, 64, 
/* 15410*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 15419*/                OPC_EmitInteger, MVT::i32, 63, 
/* 15422*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 4, 6, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i64] } i64:{ *:[i64] }:$s1, (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 22
                          // Dst: (RLDCL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] })
/* 15431*/              0, /*End of Scope*/
/* 15432*/            /*SwitchType*/ 46, MVT::i32,// ->15480
/* 15434*/              OPC_MoveParent,
/* 15435*/              OPC_CheckChild1Integer, 0, 
/* 15437*/              OPC_MoveChild2,
/* 15438*/              OPC_CheckCondCode, ISD::SETEQ,
/* 15440*/              OPC_MoveParent,
/* 15441*/              OPC_MoveParent,
/* 15442*/              OPC_CheckType, MVT::i32,
/* 15444*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                            MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/* 15452*/              OPC_EmitInteger, MVT::i32, 32, 
/* 15455*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 15464*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15467*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15470*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 2, 4, 6, 7, 
                        // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i32] } i32:{ *:[i32] }:$s1, (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLWNM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] })
/* 15480*/            0, // EndSwitchType
/* 15481*/          /*Scope*/ 24|128,1/*152*/, /*->15635*/
/* 15483*/            OPC_MoveChild0,
/* 15484*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 15487*/            OPC_CheckChild0Integer, 1, 
/* 15489*/            OPC_RecordChild1, // #0 = $sa
/* 15490*/            OPC_CheckChild1Type, MVT::i32,
/* 15492*/            OPC_MoveParent,
/* 15493*/            OPC_RecordChild1, // #1 = $s1
/* 15494*/            OPC_SwitchType /*2 cases */, 89, MVT::i64,// ->15586
/* 15497*/              OPC_MoveParent,
/* 15498*/              OPC_CheckChild1Integer, 0, 
/* 15500*/              OPC_MoveChild2,
/* 15501*/              OPC_Scope, 41, /*->15544*/ // 2 children in Scope
/* 15503*/                OPC_CheckCondCode, ISD::SETNE,
/* 15505*/                OPC_MoveParent,
/* 15506*/                OPC_MoveParent,
/* 15507*/                OPC_CheckType, MVT::i32,
/* 15509*/                OPC_EmitInteger, MVT::i32, 64, 
/* 15512*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/* 15521*/                OPC_EmitInteger, MVT::i32, 63, 
/* 15524*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 3, 5,  // Results = #6
/* 15533*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 15536*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa), i64:{ *:[i64] }:$s1), 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 22
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 15544*/              /*Scope*/ 40, /*->15585*/
/* 15545*/                OPC_CheckCondCode, ISD::SETEQ,
/* 15547*/                OPC_MoveParent,
/* 15548*/                OPC_CheckType, MVT::i1,
/* 15550*/                OPC_MoveParent,
/* 15551*/                OPC_CheckType, MVT::i64,
/* 15553*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 1,  // Results = #2
/* 15561*/                OPC_EmitInteger, MVT::i32, 64, 
/* 15564*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/* 15573*/                OPC_EmitInteger, MVT::i32, 63, 
/* 15576*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 4, 6, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa), i64:{ *:[i64] }:$s1), 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 22
                          // Dst: (RLDCL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] })
/* 15585*/              0, /*End of Scope*/
/* 15586*/            /*SwitchType*/ 46, MVT::i32,// ->15634
/* 15588*/              OPC_MoveParent,
/* 15589*/              OPC_CheckChild1Integer, 0, 
/* 15591*/              OPC_MoveChild2,
/* 15592*/              OPC_CheckCondCode, ISD::SETEQ,
/* 15594*/              OPC_MoveParent,
/* 15595*/              OPC_MoveParent,
/* 15596*/              OPC_CheckType, MVT::i32,
/* 15598*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                            MVT::i32, 2/*#Ops*/, 1, 1,  // Results = #2
/* 15606*/              OPC_EmitInteger, MVT::i32, 32, 
/* 15609*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/* 15618*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15621*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15624*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 2, 4, 6, 7, 
                        // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa), i32:{ *:[i32] }:$s1), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 22
                        // Dst: (RLWNM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] })
/* 15634*/            0, // EndSwitchType
/* 15635*/          /*Scope*/ 0|128,1/*128*/, /*->15765*/
/* 15637*/            OPC_RecordChild0, // #0 = $s1
/* 15638*/            OPC_MoveChild1,
/* 15639*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 15642*/            OPC_CheckChild0Integer, 1, 
/* 15644*/            OPC_RecordChild1, // #1 = $sa
/* 15645*/            OPC_CheckChild1Type, MVT::i32,
/* 15647*/            OPC_MoveParent,
/* 15648*/            OPC_SwitchType /*2 cases */, 58, MVT::i32,// ->15709
/* 15651*/              OPC_MoveParent,
/* 15652*/              OPC_CheckChild1Integer, 0, 
/* 15654*/              OPC_MoveChild2,
/* 15655*/              OPC_CheckCondCode, ISD::SETNE,
/* 15657*/              OPC_MoveParent,
/* 15658*/              OPC_CheckType, MVT::i1,
/* 15660*/              OPC_MoveParent,
/* 15661*/              OPC_CheckType, MVT::i64,
/* 15663*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 15669*/              OPC_EmitInteger, MVT::i32, 32, 
/* 15672*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 15681*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15684*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15687*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 0, 4, 6, 7,  // Results = #8
/* 15697*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 15700*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 8, 9, 
                        // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i32] } i32:{ *:[i32] }:$s1, (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 15709*/            /*SwitchType*/ 53, MVT::i64,// ->15764
/* 15711*/              OPC_MoveParent,
/* 15712*/              OPC_CheckChild1Integer, 0, 
/* 15714*/              OPC_MoveChild2,
/* 15715*/              OPC_CheckCondCode, ISD::SETEQ,
/* 15717*/              OPC_MoveParent,
/* 15718*/              OPC_MoveParent,
/* 15719*/              OPC_CheckType, MVT::i32,
/* 15721*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                            MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #2
/* 15729*/              OPC_EmitInteger, MVT::i32, 64, 
/* 15732*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 15741*/              OPC_EmitInteger, MVT::i32, 63, 
/* 15744*/              OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 2, 4, 6,  // Results = #7
/* 15753*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 15756*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 7, 8, 
                        // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i64] } i64:{ *:[i64] }:$s1, (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 22
                        // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDCL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 15764*/            0, // EndSwitchType
/* 15765*/          /*Scope*/ 0|128,1/*128*/, /*->15895*/
/* 15767*/            OPC_MoveChild0,
/* 15768*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 15771*/            OPC_CheckChild0Integer, 1, 
/* 15773*/            OPC_RecordChild1, // #0 = $sa
/* 15774*/            OPC_CheckChild1Type, MVT::i32,
/* 15776*/            OPC_MoveParent,
/* 15777*/            OPC_RecordChild1, // #1 = $s1
/* 15778*/            OPC_SwitchType /*2 cases */, 58, MVT::i32,// ->15839
/* 15781*/              OPC_MoveParent,
/* 15782*/              OPC_CheckChild1Integer, 0, 
/* 15784*/              OPC_MoveChild2,
/* 15785*/              OPC_CheckCondCode, ISD::SETNE,
/* 15787*/              OPC_MoveParent,
/* 15788*/              OPC_CheckType, MVT::i1,
/* 15790*/              OPC_MoveParent,
/* 15791*/              OPC_CheckType, MVT::i64,
/* 15793*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 15799*/              OPC_EmitInteger, MVT::i32, 32, 
/* 15802*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/* 15811*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15814*/              OPC_EmitInteger, MVT::i32, 31, 
/* 15817*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 1, 4, 6, 7,  // Results = #8
/* 15827*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 15830*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 8, 9, 
                        // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa), i32:{ *:[i32] }:$s1), 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 22
                        // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$s1, (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 15839*/            /*SwitchType*/ 53, MVT::i64,// ->15894
/* 15841*/              OPC_MoveParent,
/* 15842*/              OPC_CheckChild1Integer, 0, 
/* 15844*/              OPC_MoveChild2,
/* 15845*/              OPC_CheckCondCode, ISD::SETEQ,
/* 15847*/              OPC_MoveParent,
/* 15848*/              OPC_MoveParent,
/* 15849*/              OPC_CheckType, MVT::i32,
/* 15851*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                            MVT::i64, 2/*#Ops*/, 1, 1,  // Results = #2
/* 15859*/              OPC_EmitInteger, MVT::i32, 64, 
/* 15862*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/* 15871*/              OPC_EmitInteger, MVT::i32, 63, 
/* 15874*/              OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 2, 4, 6,  // Results = #7
/* 15883*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 15886*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i32, 2/*#Ops*/, 7, 8, 
                        // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } (and:{ *:[i64] } (shl:{ *:[i64] } 1:{ *:[i64] }, i32:{ *:[i32] }:$sa), i64:{ *:[i64] }:$s1), 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 22
                        // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDCL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 64:{ *:[i32] }), 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 15894*/            0, // EndSwitchType
/* 15895*/          /*Scope*/ 79, /*->15975*/
/* 15896*/            OPC_RecordChild0, // #0 = $s1
/* 15897*/            OPC_MoveChild1,
/* 15898*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 15901*/            OPC_CheckChild0Integer, 1, 
/* 15903*/            OPC_RecordChild1, // #1 = $sa
/* 15904*/            OPC_CheckChild1Type, MVT::i32,
/* 15906*/            OPC_MoveParent,
/* 15907*/            OPC_CheckType, MVT::i32,
/* 15909*/            OPC_MoveParent,
/* 15910*/            OPC_CheckChild1Integer, 0, 
/* 15912*/            OPC_MoveChild2,
/* 15913*/            OPC_CheckCondCode, ISD::SETEQ,
/* 15915*/            OPC_MoveParent,
/* 15916*/            OPC_CheckType, MVT::i1,
/* 15918*/            OPC_MoveParent,
/* 15919*/            OPC_CheckType, MVT::i64,
/* 15921*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/* 15927*/            OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                          MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #3
/* 15935*/            OPC_EmitInteger, MVT::i32, 32, 
/* 15938*/            OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5 #6
/* 15947*/            OPC_EmitInteger, MVT::i32, 31, 
/* 15950*/            OPC_EmitInteger, MVT::i32, 31, 
/* 15953*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                          MVT::i32, 4/*#Ops*/, 3, 5, 7, 8,  // Results = #9
/* 15963*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 15966*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 9, 10, 
                      // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i32] } i32:{ *:[i32] }:$s1, (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa)), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 22
                      // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWNM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 15975*/          /*Scope*/ 79, /*->16055*/
/* 15976*/            OPC_MoveChild0,
/* 15977*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 15980*/            OPC_CheckChild0Integer, 1, 
/* 15982*/            OPC_RecordChild1, // #0 = $sa
/* 15983*/            OPC_CheckChild1Type, MVT::i32,
/* 15985*/            OPC_MoveParent,
/* 15986*/            OPC_RecordChild1, // #1 = $s1
/* 15987*/            OPC_CheckType, MVT::i32,
/* 15989*/            OPC_MoveParent,
/* 15990*/            OPC_CheckChild1Integer, 0, 
/* 15992*/            OPC_MoveChild2,
/* 15993*/            OPC_CheckCondCode, ISD::SETEQ,
/* 15995*/            OPC_MoveParent,
/* 15996*/            OPC_CheckType, MVT::i1,
/* 15998*/            OPC_MoveParent,
/* 15999*/            OPC_CheckType, MVT::i64,
/* 16001*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/* 16007*/            OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                          MVT::i32, 2/*#Ops*/, 1, 1,  // Results = #3
/* 16015*/            OPC_EmitInteger, MVT::i32, 32, 
/* 16018*/            OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4,  // Results = #5 #6
/* 16027*/            OPC_EmitInteger, MVT::i32, 31, 
/* 16030*/            OPC_EmitInteger, MVT::i32, 31, 
/* 16033*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                          MVT::i32, 4/*#Ops*/, 3, 5, 7, 8,  // Results = #9
/* 16043*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16046*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 9, 10, 
                      // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } (and:{ *:[i32] } (shl:{ *:[i32] } 1:{ *:[i32] }, i32:{ *:[i32] }:$sa), i32:{ *:[i32] }:$s1), 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 22
                      // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWNM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$sa, 32:{ *:[i32] }), 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16055*/          0, /*End of Scope*/
/* 16056*/        /*Scope*/ 107|128,66/*8555*/, /*->24613*/
/* 16058*/          OPC_RecordChild0, // #0 = $s1
/* 16059*/          OPC_Scope, 118|128,18/*2422*/, /*->18484*/ // 5 children in Scope
/* 16062*/            OPC_CheckChild0Type, MVT::i32,
/* 16064*/            OPC_Scope, 59|128,4/*571*/, /*->16638*/ // 3 children in Scope
/* 16067*/              OPC_CheckChild1Integer, 0, 
/* 16069*/              OPC_MoveChild2,
/* 16070*/              OPC_Scope, 25, /*->16097*/ // 12 children in Scope
/* 16072*/                OPC_CheckCondCode, ISD::SETLT,
/* 16074*/                OPC_MoveParent,
/* 16075*/                OPC_MoveParent,
/* 16076*/                OPC_CheckType, MVT::i32,
/* 16078*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16081*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16084*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16087*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16097*/              /*Scope*/ 32, /*->16130*/
/* 16098*/                OPC_CheckCondCode, ISD::SETEQ,
/* 16100*/                OPC_MoveParent,
/* 16101*/                OPC_MoveParent,
/* 16102*/                OPC_CheckType, MVT::i32,
/* 16104*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 16111*/                OPC_EmitInteger, MVT::i32, 27, 
/* 16114*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16117*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16120*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1), 27:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16130*/              /*Scope*/ 33, /*->16164*/
/* 16131*/                OPC_CheckCondCode, ISD::SETGE,
/* 16133*/                OPC_MoveParent,
/* 16134*/                OPC_MoveParent,
/* 16135*/                OPC_CheckType, MVT::i32,
/* 16137*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #1
/* 16145*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16148*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16151*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16154*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16164*/              /*Scope*/ 45, /*->16210*/
/* 16165*/                OPC_CheckCondCode, ISD::SETLT,
/* 16167*/                OPC_MoveParent,
/* 16168*/                OPC_CheckType, MVT::i1,
/* 16170*/                OPC_MoveParent,
/* 16171*/                OPC_CheckType, MVT::i64,
/* 16173*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16179*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16182*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16185*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16188*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/* 16198*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16201*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 5, 6, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16210*/              /*Scope*/ 40, /*->16251*/
/* 16211*/                OPC_CheckCondCode, ISD::SETGT,
/* 16213*/                OPC_MoveParent,
/* 16214*/                OPC_MoveParent,
/* 16215*/                OPC_CheckType, MVT::i32,
/* 16217*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 16224*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC), 0,
                              MVT::i32, 2/*#Ops*/, 1, 0,  // Results = #2
/* 16232*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16235*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16238*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16241*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (ANDC:{ *:[i32] } (NEG:{ *:[i32] } ?:{ *:[i32] }:$s1), ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16251*/              /*Scope*/ 40, /*->16292*/
/* 16252*/                OPC_CheckCondCode, ISD::SETLE,
/* 16254*/                OPC_MoveParent,
/* 16255*/                OPC_MoveParent,
/* 16256*/                OPC_CheckType, MVT::i32,
/* 16258*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 16265*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16273*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16276*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16279*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16282*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (ORC:{ *:[i32] } ?:{ *:[i32] }:$s1, (NEG:{ *:[i32] } ?:{ *:[i32] }:$s1)), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16292*/              /*Scope*/ 52, /*->16345*/
/* 16293*/                OPC_CheckCondCode, ISD::SETEQ,
/* 16295*/                OPC_MoveParent,
/* 16296*/                OPC_CheckType, MVT::i1,
/* 16298*/                OPC_MoveParent,
/* 16299*/                OPC_CheckType, MVT::i64,
/* 16301*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16307*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 16314*/                OPC_EmitInteger, MVT::i32, 27, 
/* 16317*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16320*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16323*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 16333*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16336*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETEQ:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1), 27:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16345*/              /*Scope*/ 47, /*->16393*/
/* 16346*/                OPC_CheckCondCode, ISD::SETNE,
/* 16348*/                OPC_MoveParent,
/* 16349*/                OPC_MoveParent,
/* 16350*/                OPC_CheckType, MVT::i32,
/* 16352*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 16359*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 16366*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 16374*/                OPC_EmitInteger, MVT::i32, 27, 
/* 16377*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16380*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16383*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1), (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1)), 27:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16393*/              /*Scope*/ 53, /*->16447*/
/* 16394*/                OPC_CheckCondCode, ISD::SETGE,
/* 16396*/                OPC_MoveParent,
/* 16397*/                OPC_CheckType, MVT::i1,
/* 16399*/                OPC_MoveParent,
/* 16400*/                OPC_CheckType, MVT::i64,
/* 16402*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16408*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/* 16416*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16419*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16422*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16425*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 16435*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16438*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16447*/              /*Scope*/ 60, /*->16508*/
/* 16448*/                OPC_CheckCondCode, ISD::SETGT,
/* 16450*/                OPC_MoveParent,
/* 16451*/                OPC_CheckType, MVT::i1,
/* 16453*/                OPC_MoveParent,
/* 16454*/                OPC_CheckType, MVT::i64,
/* 16456*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16462*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 16469*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC), 0,
                              MVT::i32, 2/*#Ops*/, 2, 0,  // Results = #3
/* 16477*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16480*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16483*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16486*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6,  // Results = #7
/* 16496*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16499*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 7, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (ANDC:{ *:[i32] } (NEG:{ *:[i32] } ?:{ *:[i32] }:$s1), ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16508*/              /*Scope*/ 60, /*->16569*/
/* 16509*/                OPC_CheckCondCode, ISD::SETLE,
/* 16511*/                OPC_MoveParent,
/* 16512*/                OPC_CheckType, MVT::i1,
/* 16514*/                OPC_MoveParent,
/* 16515*/                OPC_CheckType, MVT::i64,
/* 16517*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16523*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 16530*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 16538*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16541*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16544*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16547*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6,  // Results = #7
/* 16557*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16560*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 7, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (ORC:{ *:[i32] } ?:{ *:[i32] }:$s1, (NEG:{ *:[i32] } ?:{ *:[i32] }:$s1)), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16569*/              /*Scope*/ 67, /*->16637*/
/* 16570*/                OPC_CheckCondCode, ISD::SETNE,
/* 16572*/                OPC_MoveParent,
/* 16573*/                OPC_CheckType, MVT::i1,
/* 16575*/                OPC_MoveParent,
/* 16576*/                OPC_CheckType, MVT::i64,
/* 16578*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16584*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 16591*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #3
/* 16598*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16606*/                OPC_EmitInteger, MVT::i32, 27, 
/* 16609*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16612*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16615*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/* 16625*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16628*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 8, 9, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, 0:{ *:[i32] }, SETNE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1), (CNTLZW:{ *:[i32] } ?:{ *:[i32] }:$s1)), 27:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16637*/              0, /*End of Scope*/
/* 16638*/            /*Scope*/ 10|128,3/*394*/, /*->17034*/
/* 16640*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 16651*/              OPC_MoveChild2,
/* 16652*/              OPC_Scope, 25, /*->16679*/ // 8 children in Scope
/* 16654*/                OPC_CheckCondCode, ISD::SETLE,
/* 16656*/                OPC_MoveParent,
/* 16657*/                OPC_MoveParent,
/* 16658*/                OPC_CheckType, MVT::i32,
/* 16660*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16663*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16666*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16669*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16679*/              /*Scope*/ 33, /*->16713*/
/* 16680*/                OPC_CheckCondCode, ISD::SETGT,
/* 16682*/                OPC_MoveParent,
/* 16683*/                OPC_MoveParent,
/* 16684*/                OPC_CheckType, MVT::i32,
/* 16686*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #1
/* 16694*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16697*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16700*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16703*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16713*/              /*Scope*/ 44, /*->16758*/
/* 16714*/                OPC_CheckCondCode, ISD::SETLT,
/* 16716*/                OPC_MoveParent,
/* 16717*/                OPC_MoveParent,
/* 16718*/                OPC_CheckType, MVT::i32,
/* 16720*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16723*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16731*/                OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 16739*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16742*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16745*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16748*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (AND:{ *:[i32] } ?:{ *:[i32] }:$s1, (ADDI:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] })), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16758*/              /*Scope*/ 44, /*->16803*/
/* 16759*/                OPC_CheckCondCode, ISD::SETGE,
/* 16761*/                OPC_MoveParent,
/* 16762*/                OPC_MoveParent,
/* 16763*/                OPC_CheckType, MVT::i32,
/* 16765*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16768*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16776*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 16784*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16787*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16790*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16793*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLWINM:{ *:[i32] } (NAND:{ *:[i32] } ?:{ *:[i32] }:$s1, (ADDI:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] })), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] })
/* 16803*/              /*Scope*/ 45, /*->16849*/
/* 16804*/                OPC_CheckCondCode, ISD::SETLE,
/* 16806*/                OPC_MoveParent,
/* 16807*/                OPC_CheckType, MVT::i1,
/* 16809*/                OPC_MoveParent,
/* 16810*/                OPC_CheckType, MVT::i64,
/* 16812*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16818*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16821*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16824*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16827*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/* 16837*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16840*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 5, 6, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16849*/              /*Scope*/ 53, /*->16903*/
/* 16850*/                OPC_CheckCondCode, ISD::SETGT,
/* 16852*/                OPC_MoveParent,
/* 16853*/                OPC_CheckType, MVT::i1,
/* 16855*/                OPC_MoveParent,
/* 16856*/                OPC_CheckType, MVT::i64,
/* 16858*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16864*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/* 16872*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16875*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16878*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16881*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 16891*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16894*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (NOR:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s1), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16903*/              /*Scope*/ 64, /*->16968*/
/* 16904*/                OPC_CheckCondCode, ISD::SETLT,
/* 16906*/                OPC_MoveParent,
/* 16907*/                OPC_CheckType, MVT::i1,
/* 16909*/                OPC_MoveParent,
/* 16910*/                OPC_CheckType, MVT::i64,
/* 16912*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16918*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16921*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 16929*/                OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 16937*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16940*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16943*/                OPC_EmitInteger, MVT::i32, 31, 
/* 16946*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/* 16956*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16959*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 8, 9, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (AND:{ *:[i32] } ?:{ *:[i32] }:$s1, (ADDI:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] })), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 16968*/              /*Scope*/ 64, /*->17033*/
/* 16969*/                OPC_CheckCondCode, ISD::SETGE,
/* 16971*/                OPC_MoveParent,
/* 16972*/                OPC_CheckType, MVT::i1,
/* 16974*/                OPC_MoveParent,
/* 16975*/                OPC_CheckType, MVT::i64,
/* 16977*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16983*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16986*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 16994*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 17002*/                OPC_EmitInteger, MVT::i32, 1, 
/* 17005*/                OPC_EmitInteger, MVT::i32, 31, 
/* 17008*/                OPC_EmitInteger, MVT::i32, 31, 
/* 17011*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/* 17021*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17024*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                              MVT::i64, 3/*#Ops*/, 1, 8, 9, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, -1:{ *:[i32] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWINM:{ *:[i32] } (NAND:{ *:[i32] } ?:{ *:[i32] }:$s1, (ADDI:{ *:[i32] } ?:{ *:[i32] }:$s1, 1:{ *:[i32] })), 1:{ *:[i32] }, 31:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] })
/* 17033*/              0, /*End of Scope*/
/* 17034*/            /*Scope*/ 39|128,11/*1447*/, /*->18483*/
/* 17036*/              OPC_RecordChild1, // #1 = $imm
/* 17037*/              OPC_Scope, 109|128,6/*877*/, /*->17917*/ // 2 children in Scope
/* 17040*/                OPC_MoveChild1,
/* 17041*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 17044*/                OPC_Scope, 119, /*->17165*/ // 6 children in Scope
/* 17046*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 17048*/                  OPC_MoveParent,
/* 17049*/                  OPC_MoveChild2,
/* 17050*/                  OPC_CheckCondCode, ISD::SETUGE,
/* 17052*/                  OPC_MoveParent,
/* 17053*/                  OPC_Scope, 53, /*->17108*/ // 2 children in Scope
/* 17055*/                    OPC_MoveParent,
/* 17056*/                    OPC_CheckType, MVT::i32,
/* 17058*/                    OPC_EmitConvertToTarget, 1,
/* 17060*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17068*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 17071*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17079*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 17082*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 17089*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 17092*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 17099*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 17108*/                  /*Scope*/ 55, /*->17164*/
/* 17109*/                    OPC_CheckType, MVT::i1,
/* 17111*/                    OPC_MoveParent,
/* 17112*/                    OPC_CheckType, MVT::i64,
/* 17114*/                    OPC_EmitConvertToTarget, 1,
/* 17116*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17124*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 17127*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17135*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 17138*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 17145*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 17148*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 17155*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 17164*/                  0, /*End of Scope*/
/* 17165*/                /*Scope*/ 119, /*->17285*/
/* 17166*/                  OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 17168*/                  OPC_MoveParent,
/* 17169*/                  OPC_MoveChild2,
/* 17170*/                  OPC_CheckCondCode, ISD::SETGE,
/* 17172*/                  OPC_MoveParent,
/* 17173*/                  OPC_Scope, 53, /*->17228*/ // 2 children in Scope
/* 17175*/                    OPC_MoveParent,
/* 17176*/                    OPC_CheckType, MVT::i32,
/* 17178*/                    OPC_EmitConvertToTarget, 1,
/* 17180*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17188*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 17191*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17199*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 17202*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 17209*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 17212*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 17219*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 17228*/                  /*Scope*/ 55, /*->17284*/
/* 17229*/                    OPC_CheckType, MVT::i1,
/* 17231*/                    OPC_MoveParent,
/* 17232*/                    OPC_CheckType, MVT::i64,
/* 17234*/                    OPC_EmitConvertToTarget, 1,
/* 17236*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17244*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 17247*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17255*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 17258*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 17265*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 17268*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 17275*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 17284*/                  0, /*End of Scope*/
/* 17285*/                /*Scope*/ 119, /*->17405*/
/* 17286*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 17288*/                  OPC_MoveParent,
/* 17289*/                  OPC_MoveChild2,
/* 17290*/                  OPC_CheckCondCode, ISD::SETULE,
/* 17292*/                  OPC_MoveParent,
/* 17293*/                  OPC_Scope, 53, /*->17348*/ // 2 children in Scope
/* 17295*/                    OPC_MoveParent,
/* 17296*/                    OPC_CheckType, MVT::i32,
/* 17298*/                    OPC_EmitConvertToTarget, 1,
/* 17300*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17308*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 17311*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17319*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 17322*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 17329*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 17332*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 17339*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 17348*/                  /*Scope*/ 55, /*->17404*/
/* 17349*/                    OPC_CheckType, MVT::i1,
/* 17351*/                    OPC_MoveParent,
/* 17352*/                    OPC_CheckType, MVT::i64,
/* 17354*/                    OPC_EmitConvertToTarget, 1,
/* 17356*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17364*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 17367*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17375*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 17378*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 17385*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 17388*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 17395*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 17404*/                  0, /*End of Scope*/
/* 17405*/                /*Scope*/ 110|128,1/*238*/, /*->17645*/
/* 17407*/                  OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 17409*/                  OPC_MoveParent,
/* 17410*/                  OPC_MoveChild2,
/* 17411*/                  OPC_Scope, 115, /*->17528*/ // 2 children in Scope
/* 17413*/                    OPC_CheckCondCode, ISD::SETLE,
/* 17415*/                    OPC_MoveParent,
/* 17416*/                    OPC_Scope, 53, /*->17471*/ // 2 children in Scope
/* 17418*/                      OPC_MoveParent,
/* 17419*/                      OPC_CheckType, MVT::i32,
/* 17421*/                      OPC_EmitConvertToTarget, 1,
/* 17423*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17431*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 17434*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17442*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 17445*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 17452*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 17455*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 17462*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                    MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 17471*/                    /*Scope*/ 55, /*->17527*/
/* 17472*/                      OPC_CheckType, MVT::i1,
/* 17474*/                      OPC_MoveParent,
/* 17475*/                      OPC_CheckType, MVT::i64,
/* 17477*/                      OPC_EmitConvertToTarget, 1,
/* 17479*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17487*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 17490*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17498*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 17501*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 17508*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 17511*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 17518*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                    MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 17527*/                    0, /*End of Scope*/
/* 17528*/                  /*Scope*/ 115, /*->17644*/
/* 17529*/                    OPC_CheckCondCode, ISD::SETNE,
/* 17531*/                    OPC_MoveParent,
/* 17532*/                    OPC_Scope, 53, /*->17587*/ // 2 children in Scope
/* 17534*/                      OPC_MoveParent,
/* 17535*/                      OPC_CheckType, MVT::i32,
/* 17537*/                      OPC_EmitConvertToTarget, 1,
/* 17539*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17547*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 17550*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17558*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 17561*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 17568*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 17571*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 17578*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                    MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 17587*/                    /*Scope*/ 55, /*->17643*/
/* 17588*/                      OPC_CheckType, MVT::i1,
/* 17590*/                      OPC_MoveParent,
/* 17591*/                      OPC_CheckType, MVT::i64,
/* 17593*/                      OPC_EmitConvertToTarget, 1,
/* 17595*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17603*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 17606*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17614*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 17617*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 17624*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 17627*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 17634*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                    MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 17643*/                    0, /*End of Scope*/
/* 17644*/                  0, /*End of Scope*/
/* 17645*/                /*Scope*/ 119, /*->17765*/
/* 17646*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 17648*/                  OPC_MoveParent,
/* 17649*/                  OPC_MoveChild2,
/* 17650*/                  OPC_CheckCondCode, ISD::SETNE,
/* 17652*/                  OPC_MoveParent,
/* 17653*/                  OPC_Scope, 53, /*->17708*/ // 2 children in Scope
/* 17655*/                    OPC_MoveParent,
/* 17656*/                    OPC_CheckType, MVT::i32,
/* 17658*/                    OPC_EmitConvertToTarget, 1,
/* 17660*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17668*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 17671*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17679*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 17682*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 17689*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 17692*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 17699*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 17708*/                  /*Scope*/ 55, /*->17764*/
/* 17709*/                    OPC_CheckType, MVT::i1,
/* 17711*/                    OPC_MoveParent,
/* 17712*/                    OPC_CheckType, MVT::i64,
/* 17714*/                    OPC_EmitConvertToTarget, 1,
/* 17716*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17724*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 17727*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17735*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 17738*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 17745*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 17748*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 17755*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 17764*/                  0, /*End of Scope*/
/* 17765*/                /*Scope*/ 21|128,1/*149*/, /*->17916*/
/* 17767*/                  OPC_MoveParent,
/* 17768*/                  OPC_MoveChild2,
/* 17769*/                  OPC_CheckCondCode, ISD::SETNE,
/* 17771*/                  OPC_MoveParent,
/* 17772*/                  OPC_Scope, 69, /*->17843*/ // 2 children in Scope
/* 17774*/                    OPC_MoveParent,
/* 17775*/                    OPC_CheckType, MVT::i32,
/* 17777*/                    OPC_EmitConvertToTarget, 1,
/* 17779*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 17782*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 17790*/                    OPC_EmitConvertToTarget, 1,
/* 17792*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 17795*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 17803*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 17806*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 17814*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 17817*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 17824*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 17827*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 17834*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 9, 11, 13, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETNE:{ *:[Other] })) - Complexity = 9
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 17843*/                  /*Scope*/ 71, /*->17915*/
/* 17844*/                    OPC_CheckType, MVT::i1,
/* 17846*/                    OPC_MoveParent,
/* 17847*/                    OPC_CheckType, MVT::i64,
/* 17849*/                    OPC_EmitConvertToTarget, 1,
/* 17851*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 17854*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 17862*/                    OPC_EmitConvertToTarget, 1,
/* 17864*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 17867*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 17875*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 17878*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 17886*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 17889*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 17896*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 17899*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 17906*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 9, 11, 13, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETNE:{ *:[Other] })) - Complexity = 9
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 17915*/                  0, /*End of Scope*/
/* 17916*/                0, /*End of Scope*/
/* 17917*/              /*Scope*/ 51|128,4/*563*/, /*->18482*/
/* 17919*/                OPC_MoveChild2,
/* 17920*/                OPC_Scope, 111, /*->18033*/ // 5 children in Scope
/* 17922*/                  OPC_CheckCondCode, ISD::SETUGE,
/* 17924*/                  OPC_MoveParent,
/* 17925*/                  OPC_Scope, 51, /*->17978*/ // 2 children in Scope
/* 17927*/                    OPC_MoveParent,
/* 17928*/                    OPC_CheckType, MVT::i32,
/* 17930*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 17938*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 17941*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 17949*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 17952*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 17959*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 17962*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 17969*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 17978*/                  /*Scope*/ 53, /*->18032*/
/* 17979*/                    OPC_CheckType, MVT::i1,
/* 17981*/                    OPC_MoveParent,
/* 17982*/                    OPC_CheckType, MVT::i64,
/* 17984*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 17992*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 17995*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18003*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 18006*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 18013*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 18016*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 18023*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 18032*/                  0, /*End of Scope*/
/* 18033*/                /*Scope*/ 111, /*->18145*/
/* 18034*/                  OPC_CheckCondCode, ISD::SETGE,
/* 18036*/                  OPC_MoveParent,
/* 18037*/                  OPC_Scope, 51, /*->18090*/ // 2 children in Scope
/* 18039*/                    OPC_MoveParent,
/* 18040*/                    OPC_CheckType, MVT::i32,
/* 18042*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18050*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 18053*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18061*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 18064*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 18071*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 18074*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 18081*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 18090*/                  /*Scope*/ 53, /*->18144*/
/* 18091*/                    OPC_CheckType, MVT::i1,
/* 18093*/                    OPC_MoveParent,
/* 18094*/                    OPC_CheckType, MVT::i64,
/* 18096*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18104*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 18107*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18115*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 18118*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 18125*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 18128*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 18135*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 18144*/                  0, /*End of Scope*/
/* 18145*/                /*Scope*/ 111, /*->18257*/
/* 18146*/                  OPC_CheckCondCode, ISD::SETULE,
/* 18148*/                  OPC_MoveParent,
/* 18149*/                  OPC_Scope, 51, /*->18202*/ // 2 children in Scope
/* 18151*/                    OPC_MoveParent,
/* 18152*/                    OPC_CheckType, MVT::i32,
/* 18154*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18162*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 18165*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18173*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 18176*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 18183*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 18186*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 18193*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 18202*/                  /*Scope*/ 53, /*->18256*/
/* 18203*/                    OPC_CheckType, MVT::i1,
/* 18205*/                    OPC_MoveParent,
/* 18206*/                    OPC_CheckType, MVT::i64,
/* 18208*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18216*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 18219*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18227*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 18230*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 18237*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 18240*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 18247*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 18256*/                  0, /*End of Scope*/
/* 18257*/                /*Scope*/ 111, /*->18369*/
/* 18258*/                  OPC_CheckCondCode, ISD::SETLE,
/* 18260*/                  OPC_MoveParent,
/* 18261*/                  OPC_Scope, 51, /*->18314*/ // 2 children in Scope
/* 18263*/                    OPC_MoveParent,
/* 18264*/                    OPC_CheckType, MVT::i32,
/* 18266*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18274*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 18277*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18285*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 18288*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 18295*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 18298*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 18305*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 18314*/                  /*Scope*/ 53, /*->18368*/
/* 18315*/                    OPC_CheckType, MVT::i1,
/* 18317*/                    OPC_MoveParent,
/* 18318*/                    OPC_CheckType, MVT::i64,
/* 18320*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18328*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 18331*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18339*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 18342*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 18349*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 18352*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 18359*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 18368*/                  0, /*End of Scope*/
/* 18369*/                /*Scope*/ 111, /*->18481*/
/* 18370*/                  OPC_CheckCondCode, ISD::SETNE,
/* 18372*/                  OPC_MoveParent,
/* 18373*/                  OPC_Scope, 51, /*->18426*/ // 2 children in Scope
/* 18375*/                    OPC_MoveParent,
/* 18376*/                    OPC_CheckType, MVT::i32,
/* 18378*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18386*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 18389*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18397*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 18400*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 18407*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 18410*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 18417*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 18426*/                  /*Scope*/ 53, /*->18480*/
/* 18427*/                    OPC_CheckType, MVT::i1,
/* 18429*/                    OPC_MoveParent,
/* 18430*/                    OPC_CheckType, MVT::i64,
/* 18432*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18440*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 18443*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18451*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 18454*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 18461*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 18464*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 18471*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 18480*/                  0, /*End of Scope*/
/* 18481*/                0, /*End of Scope*/
/* 18482*/              0, /*End of Scope*/
/* 18483*/            0, /*End of Scope*/
/* 18484*/          /*Scope*/ 98|128,17/*2274*/, /*->20760*/
/* 18486*/            OPC_CheckChild0Type, MVT::i64,
/* 18488*/            OPC_Scope, 97|128,3/*481*/, /*->18972*/ // 3 children in Scope
/* 18491*/              OPC_CheckChild1Integer, 0, 
/* 18493*/              OPC_MoveChild2,
/* 18494*/              OPC_Scope, 23, /*->18519*/ // 12 children in Scope
/* 18496*/                OPC_CheckCondCode, ISD::SETLT,
/* 18498*/                OPC_MoveParent,
/* 18499*/                OPC_CheckType, MVT::i1,
/* 18501*/                OPC_MoveParent,
/* 18502*/                OPC_CheckType, MVT::i64,
/* 18504*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18507*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18510*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i32] }, 63:{ *:[i32] })
/* 18519*/              /*Scope*/ 30, /*->18550*/
/* 18520*/                OPC_CheckCondCode, ISD::SETEQ,
/* 18522*/                OPC_MoveParent,
/* 18523*/                OPC_CheckType, MVT::i1,
/* 18525*/                OPC_MoveParent,
/* 18526*/                OPC_CheckType, MVT::i64,
/* 18528*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 18535*/                OPC_EmitInteger, MVT::i32, 58, 
/* 18538*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18541*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1), 58:{ *:[i32] }, 63:{ *:[i32] })
/* 18550*/              /*Scope*/ 32, /*->18583*/
/* 18551*/                OPC_CheckCondCode, ISD::SETLT,
/* 18553*/                OPC_MoveParent,
/* 18554*/                OPC_MoveParent,
/* 18555*/                OPC_CheckType, MVT::i32,
/* 18557*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18560*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18563*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 18572*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18575*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 3, 4, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 18583*/              /*Scope*/ 31, /*->18615*/
/* 18584*/                OPC_CheckCondCode, ISD::SETGE,
/* 18586*/                OPC_MoveParent,
/* 18587*/                OPC_CheckType, MVT::i1,
/* 18589*/                OPC_MoveParent,
/* 18590*/                OPC_CheckType, MVT::i64,
/* 18592*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 18600*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18603*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18606*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] })
/* 18615*/              /*Scope*/ 39, /*->18655*/
/* 18616*/                OPC_CheckCondCode, ISD::SETEQ,
/* 18618*/                OPC_MoveParent,
/* 18619*/                OPC_MoveParent,
/* 18620*/                OPC_CheckType, MVT::i32,
/* 18622*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 18629*/                OPC_EmitInteger, MVT::i32, 58, 
/* 18632*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18635*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 18644*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18647*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETEQ:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1), 58:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 18655*/              /*Scope*/ 40, /*->18696*/
/* 18656*/                OPC_CheckCondCode, ISD::SETGE,
/* 18658*/                OPC_MoveParent,
/* 18659*/                OPC_MoveParent,
/* 18660*/                OPC_CheckType, MVT::i32,
/* 18662*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 18670*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18673*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18676*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 18685*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18688*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 18696*/              /*Scope*/ 38, /*->18735*/
/* 18697*/                OPC_CheckCondCode, ISD::SETGT,
/* 18699*/                OPC_MoveParent,
/* 18700*/                OPC_CheckType, MVT::i1,
/* 18702*/                OPC_MoveParent,
/* 18703*/                OPC_CheckType, MVT::i64,
/* 18705*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 18712*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 18720*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18723*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18726*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (ANDC8:{ *:[i64] } (NEG8:{ *:[i64] } ?:{ *:[i64] }:$s1), ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] })
/* 18735*/              /*Scope*/ 38, /*->18774*/
/* 18736*/                OPC_CheckCondCode, ISD::SETLE,
/* 18738*/                OPC_MoveParent,
/* 18739*/                OPC_CheckType, MVT::i1,
/* 18741*/                OPC_MoveParent,
/* 18742*/                OPC_CheckType, MVT::i64,
/* 18744*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 18751*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18759*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18762*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18765*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (ORC8:{ *:[i64] } ?:{ *:[i64] }:$s1, (NEG8:{ *:[i64] } ?:{ *:[i64] }:$s1)), 1:{ *:[i32] }, 63:{ *:[i32] })
/* 18774*/              /*Scope*/ 45, /*->18820*/
/* 18775*/                OPC_CheckCondCode, ISD::SETNE,
/* 18777*/                OPC_MoveParent,
/* 18778*/                OPC_CheckType, MVT::i1,
/* 18780*/                OPC_MoveParent,
/* 18781*/                OPC_CheckType, MVT::i64,
/* 18783*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 18790*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 18797*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 18805*/                OPC_EmitInteger, MVT::i32, 58, 
/* 18808*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18811*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1), (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1)), 58:{ *:[i32] }, 63:{ *:[i32] })
/* 18820*/              /*Scope*/ 47, /*->18868*/
/* 18821*/                OPC_CheckCondCode, ISD::SETGT,
/* 18823*/                OPC_MoveParent,
/* 18824*/                OPC_MoveParent,
/* 18825*/                OPC_CheckType, MVT::i32,
/* 18827*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 18834*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 18842*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18845*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18848*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/* 18857*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18860*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 5, 6, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (ANDC8:{ *:[i64] } (NEG8:{ *:[i64] } ?:{ *:[i64] }:$s1), ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 18868*/              /*Scope*/ 47, /*->18916*/
/* 18869*/                OPC_CheckCondCode, ISD::SETLE,
/* 18871*/                OPC_MoveParent,
/* 18872*/                OPC_MoveParent,
/* 18873*/                OPC_CheckType, MVT::i32,
/* 18875*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 18882*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18890*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18893*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18896*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/* 18905*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18908*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 5, 6, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (ORC8:{ *:[i64] } ?:{ *:[i64] }:$s1, (NEG8:{ *:[i64] } ?:{ *:[i64] }:$s1)), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 18916*/              /*Scope*/ 54, /*->18971*/
/* 18917*/                OPC_CheckCondCode, ISD::SETNE,
/* 18919*/                OPC_MoveParent,
/* 18920*/                OPC_MoveParent,
/* 18921*/                OPC_CheckType, MVT::i32,
/* 18923*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 18930*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 18937*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 18945*/                OPC_EmitInteger, MVT::i32, 58, 
/* 18948*/                OPC_EmitInteger, MVT::i32, 63, 
/* 18951*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 18960*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18963*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, 0:{ *:[i64] }, SETNE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1), (CNTLZD:{ *:[i64] } ?:{ *:[i64] }:$s1)), 58:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 18971*/              0, /*End of Scope*/
/* 18972*/            /*Scope*/ 78|128,2/*334*/, /*->19308*/
/* 18974*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18985*/              OPC_MoveChild2,
/* 18986*/              OPC_Scope, 23, /*->19011*/ // 8 children in Scope
/* 18988*/                OPC_CheckCondCode, ISD::SETLE,
/* 18990*/                OPC_MoveParent,
/* 18991*/                OPC_CheckType, MVT::i1,
/* 18993*/                OPC_MoveParent,
/* 18994*/                OPC_CheckType, MVT::i64,
/* 18996*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18999*/                OPC_EmitInteger, MVT::i32, 63, 
/* 19002*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i32] }, 63:{ *:[i32] })
/* 19011*/              /*Scope*/ 31, /*->19043*/
/* 19012*/                OPC_CheckCondCode, ISD::SETGT,
/* 19014*/                OPC_MoveParent,
/* 19015*/                OPC_CheckType, MVT::i1,
/* 19017*/                OPC_MoveParent,
/* 19018*/                OPC_CheckType, MVT::i64,
/* 19020*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 19028*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19031*/                OPC_EmitInteger, MVT::i32, 63, 
/* 19034*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] })
/* 19043*/              /*Scope*/ 32, /*->19076*/
/* 19044*/                OPC_CheckCondCode, ISD::SETLE,
/* 19046*/                OPC_MoveParent,
/* 19047*/                OPC_MoveParent,
/* 19048*/                OPC_CheckType, MVT::i32,
/* 19050*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19053*/                OPC_EmitInteger, MVT::i32, 63, 
/* 19056*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 19065*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 19068*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 3, 4, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETLE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 19076*/              /*Scope*/ 42, /*->19119*/
/* 19077*/                OPC_CheckCondCode, ISD::SETLT,
/* 19079*/                OPC_MoveParent,
/* 19080*/                OPC_CheckType, MVT::i1,
/* 19082*/                OPC_MoveParent,
/* 19083*/                OPC_CheckType, MVT::i64,
/* 19085*/                OPC_EmitInteger, MVT::i64, 1, 
/* 19088*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 19096*/                OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19104*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19107*/                OPC_EmitInteger, MVT::i32, 63, 
/* 19110*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (AND8:{ *:[i64] } ?:{ *:[i64] }:$s1, (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i64] })), 1:{ *:[i32] }, 63:{ *:[i32] })
/* 19119*/              /*Scope*/ 42, /*->19162*/
/* 19120*/                OPC_CheckCondCode, ISD::SETGE,
/* 19122*/                OPC_MoveParent,
/* 19123*/                OPC_CheckType, MVT::i1,
/* 19125*/                OPC_MoveParent,
/* 19126*/                OPC_CheckType, MVT::i64,
/* 19128*/                OPC_EmitInteger, MVT::i64, 1, 
/* 19131*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 19139*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19147*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19150*/                OPC_EmitInteger, MVT::i32, 63, 
/* 19153*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (RLDICL:{ *:[i64] } (NAND8:{ *:[i64] } ?:{ *:[i64] }:$s1, (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i64] })), 1:{ *:[i32] }, 63:{ *:[i32] })
/* 19162*/              /*Scope*/ 40, /*->19203*/
/* 19163*/                OPC_CheckCondCode, ISD::SETGT,
/* 19165*/                OPC_MoveParent,
/* 19166*/                OPC_MoveParent,
/* 19167*/                OPC_CheckType, MVT::i32,
/* 19169*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 19177*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19180*/                OPC_EmitInteger, MVT::i32, 63, 
/* 19183*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 19192*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 19195*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 4, 5, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETGT:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (NOR8:{ *:[i64] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s1), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 19203*/              /*Scope*/ 51, /*->19255*/
/* 19204*/                OPC_CheckCondCode, ISD::SETLT,
/* 19206*/                OPC_MoveParent,
/* 19207*/                OPC_MoveParent,
/* 19208*/                OPC_CheckType, MVT::i32,
/* 19210*/                OPC_EmitInteger, MVT::i64, 1, 
/* 19213*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 19221*/                OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19229*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19232*/                OPC_EmitInteger, MVT::i32, 63, 
/* 19235*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 19244*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 19247*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETLT:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (AND8:{ *:[i64] } ?:{ *:[i64] }:$s1, (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i64] })), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 19255*/              /*Scope*/ 51, /*->19307*/
/* 19256*/                OPC_CheckCondCode, ISD::SETGE,
/* 19258*/                OPC_MoveParent,
/* 19259*/                OPC_MoveParent,
/* 19260*/                OPC_CheckType, MVT::i32,
/* 19262*/                OPC_EmitInteger, MVT::i64, 1, 
/* 19265*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 19273*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19281*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19284*/                OPC_EmitInteger, MVT::i32, 63, 
/* 19287*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 19296*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 19299*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i32, 2/*#Ops*/, 6, 7, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, -1:{ *:[i64] }, SETGE:{ *:[Other] })) - Complexity = 11
                          // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (NAND8:{ *:[i64] } ?:{ *:[i64] }:$s1, (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$s1, 1:{ *:[i64] })), 1:{ *:[i32] }, 63:{ *:[i32] }), sub_32:{ *:[i32] })
/* 19307*/              0, /*End of Scope*/
/* 19308*/            /*Scope*/ 41|128,11/*1449*/, /*->20759*/
/* 19310*/              OPC_RecordChild1, // #1 = $imm
/* 19311*/              OPC_Scope, 111|128,6/*879*/, /*->20193*/ // 2 children in Scope
/* 19314*/                OPC_MoveChild1,
/* 19315*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19318*/                OPC_Scope, 119, /*->19439*/ // 6 children in Scope
/* 19320*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 19322*/                  OPC_MoveParent,
/* 19323*/                  OPC_MoveChild2,
/* 19324*/                  OPC_CheckCondCode, ISD::SETUGE,
/* 19326*/                  OPC_MoveParent,
/* 19327*/                  OPC_Scope, 53, /*->19382*/ // 2 children in Scope
/* 19329*/                    OPC_MoveParent,
/* 19330*/                    OPC_CheckType, MVT::i32,
/* 19332*/                    OPC_EmitConvertToTarget, 1,
/* 19334*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19342*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19345*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19353*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19356*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19363*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19366*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19373*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 19382*/                  /*Scope*/ 55, /*->19438*/
/* 19383*/                    OPC_CheckType, MVT::i1,
/* 19385*/                    OPC_MoveParent,
/* 19386*/                    OPC_CheckType, MVT::i64,
/* 19388*/                    OPC_EmitConvertToTarget, 1,
/* 19390*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19398*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19401*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19409*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 19412*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19419*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 19422*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19429*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 19438*/                  0, /*End of Scope*/
/* 19439*/                /*Scope*/ 119, /*->19559*/
/* 19440*/                  OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 19442*/                  OPC_MoveParent,
/* 19443*/                  OPC_MoveChild2,
/* 19444*/                  OPC_CheckCondCode, ISD::SETGE,
/* 19446*/                  OPC_MoveParent,
/* 19447*/                  OPC_Scope, 53, /*->19502*/ // 2 children in Scope
/* 19449*/                    OPC_MoveParent,
/* 19450*/                    OPC_CheckType, MVT::i32,
/* 19452*/                    OPC_EmitConvertToTarget, 1,
/* 19454*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19462*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19465*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19473*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19476*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19483*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19486*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19493*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 19502*/                  /*Scope*/ 55, /*->19558*/
/* 19503*/                    OPC_CheckType, MVT::i1,
/* 19505*/                    OPC_MoveParent,
/* 19506*/                    OPC_CheckType, MVT::i64,
/* 19508*/                    OPC_EmitConvertToTarget, 1,
/* 19510*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19518*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19521*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19529*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 19532*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19539*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 19542*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19549*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 19558*/                  0, /*End of Scope*/
/* 19559*/                /*Scope*/ 119, /*->19679*/
/* 19560*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 19562*/                  OPC_MoveParent,
/* 19563*/                  OPC_MoveChild2,
/* 19564*/                  OPC_CheckCondCode, ISD::SETULE,
/* 19566*/                  OPC_MoveParent,
/* 19567*/                  OPC_Scope, 53, /*->19622*/ // 2 children in Scope
/* 19569*/                    OPC_MoveParent,
/* 19570*/                    OPC_CheckType, MVT::i32,
/* 19572*/                    OPC_EmitConvertToTarget, 1,
/* 19574*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19582*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 19585*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19593*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19596*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19603*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19606*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19613*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 19622*/                  /*Scope*/ 55, /*->19678*/
/* 19623*/                    OPC_CheckType, MVT::i1,
/* 19625*/                    OPC_MoveParent,
/* 19626*/                    OPC_CheckType, MVT::i64,
/* 19628*/                    OPC_EmitConvertToTarget, 1,
/* 19630*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19638*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 19641*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19649*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 19652*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19659*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 19662*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19669*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 19678*/                  0, /*End of Scope*/
/* 19679*/                /*Scope*/ 110|128,1/*238*/, /*->19919*/
/* 19681*/                  OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 19683*/                  OPC_MoveParent,
/* 19684*/                  OPC_MoveChild2,
/* 19685*/                  OPC_Scope, 115, /*->19802*/ // 2 children in Scope
/* 19687*/                    OPC_CheckCondCode, ISD::SETLE,
/* 19689*/                    OPC_MoveParent,
/* 19690*/                    OPC_Scope, 53, /*->19745*/ // 2 children in Scope
/* 19692*/                      OPC_MoveParent,
/* 19693*/                      OPC_CheckType, MVT::i32,
/* 19695*/                      OPC_EmitConvertToTarget, 1,
/* 19697*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19705*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 19708*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19716*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 19719*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19726*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 19729*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19736*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                    MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 19745*/                    /*Scope*/ 55, /*->19801*/
/* 19746*/                      OPC_CheckType, MVT::i1,
/* 19748*/                      OPC_MoveParent,
/* 19749*/                      OPC_CheckType, MVT::i64,
/* 19751*/                      OPC_EmitConvertToTarget, 1,
/* 19753*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19761*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 19764*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19772*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 19775*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19782*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 19785*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19792*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                    MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 19801*/                    0, /*End of Scope*/
/* 19802*/                  /*Scope*/ 115, /*->19918*/
/* 19803*/                    OPC_CheckCondCode, ISD::SETNE,
/* 19805*/                    OPC_MoveParent,
/* 19806*/                    OPC_Scope, 53, /*->19861*/ // 2 children in Scope
/* 19808*/                      OPC_MoveParent,
/* 19809*/                      OPC_CheckType, MVT::i32,
/* 19811*/                      OPC_EmitConvertToTarget, 1,
/* 19813*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19821*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19824*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19832*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 19835*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19842*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 19845*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19852*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                    MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 19861*/                    /*Scope*/ 55, /*->19917*/
/* 19862*/                      OPC_CheckType, MVT::i1,
/* 19864*/                      OPC_MoveParent,
/* 19865*/                      OPC_CheckType, MVT::i64,
/* 19867*/                      OPC_EmitConvertToTarget, 1,
/* 19869*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19877*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19880*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19888*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 19891*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19898*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 19901*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19908*/                      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                    MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                                // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                                // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 19917*/                    0, /*End of Scope*/
/* 19918*/                  0, /*End of Scope*/
/* 19919*/                /*Scope*/ 119, /*->20039*/
/* 19920*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 19922*/                  OPC_MoveParent,
/* 19923*/                  OPC_MoveChild2,
/* 19924*/                  OPC_CheckCondCode, ISD::SETNE,
/* 19926*/                  OPC_MoveParent,
/* 19927*/                  OPC_Scope, 53, /*->19982*/ // 2 children in Scope
/* 19929*/                    OPC_MoveParent,
/* 19930*/                    OPC_CheckType, MVT::i32,
/* 19932*/                    OPC_EmitConvertToTarget, 1,
/* 19934*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19942*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19945*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19953*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19956*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19963*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19966*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19973*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 19982*/                  /*Scope*/ 55, /*->20038*/
/* 19983*/                    OPC_CheckType, MVT::i1,
/* 19985*/                    OPC_MoveParent,
/* 19986*/                    OPC_CheckType, MVT::i64,
/* 19988*/                    OPC_EmitConvertToTarget, 1,
/* 19990*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19998*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 20001*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 20009*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 20012*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 20019*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 20022*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 20029*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20038*/                  0, /*End of Scope*/
/* 20039*/                /*Scope*/ 23|128,1/*151*/, /*->20192*/
/* 20041*/                  OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 20043*/                  OPC_MoveParent,
/* 20044*/                  OPC_MoveChild2,
/* 20045*/                  OPC_CheckCondCode, ISD::SETNE,
/* 20047*/                  OPC_MoveParent,
/* 20048*/                  OPC_Scope, 69, /*->20119*/ // 2 children in Scope
/* 20050*/                    OPC_MoveParent,
/* 20051*/                    OPC_CheckType, MVT::i32,
/* 20053*/                    OPC_EmitConvertToTarget, 1,
/* 20055*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 20058*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                                  MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 20066*/                    OPC_EmitConvertToTarget, 1,
/* 20068*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 20071*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 20079*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 20082*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 20090*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 20093*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 20100*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 20103*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 20110*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 9, 11, 13, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 20119*/                  /*Scope*/ 71, /*->20191*/
/* 20120*/                    OPC_CheckType, MVT::i1,
/* 20122*/                    OPC_MoveParent,
/* 20123*/                    OPC_CheckType, MVT::i64,
/* 20125*/                    OPC_EmitConvertToTarget, 1,
/* 20127*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 20130*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                                  MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 20138*/                    OPC_EmitConvertToTarget, 1,
/* 20140*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 20143*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 20151*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 20154*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 20162*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 20165*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 20172*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 20175*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 20182*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 9, 11, 13, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20191*/                  0, /*End of Scope*/
/* 20192*/                0, /*End of Scope*/
/* 20193*/              /*Scope*/ 51|128,4/*563*/, /*->20758*/
/* 20195*/                OPC_MoveChild2,
/* 20196*/                OPC_Scope, 111, /*->20309*/ // 5 children in Scope
/* 20198*/                  OPC_CheckCondCode, ISD::SETUGE,
/* 20200*/                  OPC_MoveParent,
/* 20201*/                  OPC_Scope, 51, /*->20254*/ // 2 children in Scope
/* 20203*/                    OPC_MoveParent,
/* 20204*/                    OPC_CheckType, MVT::i32,
/* 20206*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20214*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20217*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20225*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 20228*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20235*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 20238*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20245*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 20254*/                  /*Scope*/ 53, /*->20308*/
/* 20255*/                    OPC_CheckType, MVT::i1,
/* 20257*/                    OPC_MoveParent,
/* 20258*/                    OPC_CheckType, MVT::i64,
/* 20260*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20268*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20271*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20279*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 20282*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20289*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 20292*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20299*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20308*/                  0, /*End of Scope*/
/* 20309*/                /*Scope*/ 111, /*->20421*/
/* 20310*/                  OPC_CheckCondCode, ISD::SETGE,
/* 20312*/                  OPC_MoveParent,
/* 20313*/                  OPC_Scope, 51, /*->20366*/ // 2 children in Scope
/* 20315*/                    OPC_MoveParent,
/* 20316*/                    OPC_CheckType, MVT::i32,
/* 20318*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20326*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20329*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20337*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 20340*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20347*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 20350*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20357*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 20366*/                  /*Scope*/ 53, /*->20420*/
/* 20367*/                    OPC_CheckType, MVT::i1,
/* 20369*/                    OPC_MoveParent,
/* 20370*/                    OPC_CheckType, MVT::i64,
/* 20372*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20380*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20383*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20391*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 20394*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20401*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 20404*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20411*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20420*/                  0, /*End of Scope*/
/* 20421*/                /*Scope*/ 111, /*->20533*/
/* 20422*/                  OPC_CheckCondCode, ISD::SETULE,
/* 20424*/                  OPC_MoveParent,
/* 20425*/                  OPC_Scope, 51, /*->20478*/ // 2 children in Scope
/* 20427*/                    OPC_MoveParent,
/* 20428*/                    OPC_CheckType, MVT::i32,
/* 20430*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20438*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 20441*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20449*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 20452*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20459*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 20462*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20469*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 20478*/                  /*Scope*/ 53, /*->20532*/
/* 20479*/                    OPC_CheckType, MVT::i1,
/* 20481*/                    OPC_MoveParent,
/* 20482*/                    OPC_CheckType, MVT::i64,
/* 20484*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20492*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 20495*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20503*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 20506*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20513*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 20516*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20523*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20532*/                  0, /*End of Scope*/
/* 20533*/                /*Scope*/ 111, /*->20645*/
/* 20534*/                  OPC_CheckCondCode, ISD::SETLE,
/* 20536*/                  OPC_MoveParent,
/* 20537*/                  OPC_Scope, 51, /*->20590*/ // 2 children in Scope
/* 20539*/                    OPC_MoveParent,
/* 20540*/                    OPC_CheckType, MVT::i32,
/* 20542*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20550*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 20553*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20561*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 20564*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20571*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 20574*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20581*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 20590*/                  /*Scope*/ 53, /*->20644*/
/* 20591*/                    OPC_CheckType, MVT::i1,
/* 20593*/                    OPC_MoveParent,
/* 20594*/                    OPC_CheckType, MVT::i64,
/* 20596*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20604*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 20607*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20615*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 20618*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20625*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 20628*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20635*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20644*/                  0, /*End of Scope*/
/* 20645*/                /*Scope*/ 111, /*->20757*/
/* 20646*/                  OPC_CheckCondCode, ISD::SETNE,
/* 20648*/                  OPC_MoveParent,
/* 20649*/                  OPC_Scope, 51, /*->20702*/ // 2 children in Scope
/* 20651*/                    OPC_MoveParent,
/* 20652*/                    OPC_CheckType, MVT::i32,
/* 20654*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20662*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 20665*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20673*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 20676*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20683*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 20686*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20693*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                  MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 20702*/                  /*Scope*/ 53, /*->20756*/
/* 20703*/                    OPC_CheckType, MVT::i1,
/* 20705*/                    OPC_MoveParent,
/* 20706*/                    OPC_CheckType, MVT::i64,
/* 20708*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20716*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 20719*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20727*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 20730*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20737*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 20740*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20747*/                    OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                  MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                              // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                              // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20756*/                  0, /*End of Scope*/
/* 20757*/                0, /*End of Scope*/
/* 20758*/              0, /*End of Scope*/
/* 20759*/            0, /*End of Scope*/
/* 20760*/          /*Scope*/ 106|128,11/*1514*/, /*->22276*/
/* 20762*/            OPC_CheckChild0Type, MVT::f32,
/* 20764*/            OPC_RecordChild1, // #1 = $s2
/* 20765*/            OPC_MoveChild2,
/* 20766*/            OPC_Scope, 115, /*->20883*/ // 13 children in Scope
/* 20768*/              OPC_CheckCondCode, ISD::SETUGE,
/* 20770*/              OPC_MoveParent,
/* 20771*/              OPC_Scope, 53, /*->20826*/ // 2 children in Scope
/* 20773*/                OPC_MoveParent,
/* 20774*/                OPC_CheckType, MVT::i32,
/* 20776*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 20778*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20786*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20789*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20797*/                OPC_EmitInteger, MVT::i32, 0, 
/* 20800*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20807*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20810*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20817*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 20826*/              /*Scope*/ 55, /*->20882*/
/* 20827*/                OPC_CheckType, MVT::i1,
/* 20829*/                OPC_MoveParent,
/* 20830*/                OPC_CheckType, MVT::i64,
/* 20832*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 20834*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20842*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20845*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20853*/                OPC_EmitInteger, MVT::i64, 0, 
/* 20856*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20863*/                OPC_EmitInteger, MVT::i64, 1, 
/* 20866*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20873*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20882*/              0, /*End of Scope*/
/* 20883*/            /*Scope*/ 115, /*->20999*/
/* 20884*/              OPC_CheckCondCode, ISD::SETGE,
/* 20886*/              OPC_MoveParent,
/* 20887*/              OPC_Scope, 53, /*->20942*/ // 2 children in Scope
/* 20889*/                OPC_MoveParent,
/* 20890*/                OPC_CheckType, MVT::i32,
/* 20892*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 20894*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20902*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20905*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20913*/                OPC_EmitInteger, MVT::i32, 0, 
/* 20916*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20923*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20926*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20933*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 20942*/              /*Scope*/ 55, /*->20998*/
/* 20943*/                OPC_CheckType, MVT::i1,
/* 20945*/                OPC_MoveParent,
/* 20946*/                OPC_CheckType, MVT::i64,
/* 20948*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 20950*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20958*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20961*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20969*/                OPC_EmitInteger, MVT::i64, 0, 
/* 20972*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20979*/                OPC_EmitInteger, MVT::i64, 1, 
/* 20982*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20989*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 20998*/              0, /*End of Scope*/
/* 20999*/            /*Scope*/ 115, /*->21115*/
/* 21000*/              OPC_CheckCondCode, ISD::SETULE,
/* 21002*/              OPC_MoveParent,
/* 21003*/              OPC_Scope, 53, /*->21058*/ // 2 children in Scope
/* 21005*/                OPC_MoveParent,
/* 21006*/                OPC_CheckType, MVT::i32,
/* 21008*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21010*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21018*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21021*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21029*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21032*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21039*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21042*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21049*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21058*/              /*Scope*/ 55, /*->21114*/
/* 21059*/                OPC_CheckType, MVT::i1,
/* 21061*/                OPC_MoveParent,
/* 21062*/                OPC_CheckType, MVT::i64,
/* 21064*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21066*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21074*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21077*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21085*/                OPC_EmitInteger, MVT::i64, 0, 
/* 21088*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 21095*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21098*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 21105*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 21114*/              0, /*End of Scope*/
/* 21115*/            /*Scope*/ 115, /*->21231*/
/* 21116*/              OPC_CheckCondCode, ISD::SETLE,
/* 21118*/              OPC_MoveParent,
/* 21119*/              OPC_Scope, 53, /*->21174*/ // 2 children in Scope
/* 21121*/                OPC_MoveParent,
/* 21122*/                OPC_CheckType, MVT::i32,
/* 21124*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21126*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21134*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21137*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21145*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21148*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21155*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21158*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21165*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21174*/              /*Scope*/ 55, /*->21230*/
/* 21175*/                OPC_CheckType, MVT::i1,
/* 21177*/                OPC_MoveParent,
/* 21178*/                OPC_CheckType, MVT::i64,
/* 21180*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21182*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21190*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21193*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21201*/                OPC_EmitInteger, MVT::i64, 0, 
/* 21204*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 21211*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21214*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 21221*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 21230*/              0, /*End of Scope*/
/* 21231*/            /*Scope*/ 115, /*->21347*/
/* 21232*/              OPC_CheckCondCode, ISD::SETUNE,
/* 21234*/              OPC_MoveParent,
/* 21235*/              OPC_Scope, 53, /*->21290*/ // 2 children in Scope
/* 21237*/                OPC_MoveParent,
/* 21238*/                OPC_CheckType, MVT::i32,
/* 21240*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21242*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21250*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 21253*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21261*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21264*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21271*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21274*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21281*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21290*/              /*Scope*/ 55, /*->21346*/
/* 21291*/                OPC_CheckType, MVT::i1,
/* 21293*/                OPC_MoveParent,
/* 21294*/                OPC_CheckType, MVT::i64,
/* 21296*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21298*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21306*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 21309*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21317*/                OPC_EmitInteger, MVT::i64, 0, 
/* 21320*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 21327*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21330*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 21337*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 21346*/              0, /*End of Scope*/
/* 21347*/            /*Scope*/ 115, /*->21463*/
/* 21348*/              OPC_CheckCondCode, ISD::SETNE,
/* 21350*/              OPC_MoveParent,
/* 21351*/              OPC_Scope, 53, /*->21406*/ // 2 children in Scope
/* 21353*/                OPC_MoveParent,
/* 21354*/                OPC_CheckType, MVT::i32,
/* 21356*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21358*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21366*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 21369*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21377*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21380*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21387*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21390*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21397*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21406*/              /*Scope*/ 55, /*->21462*/
/* 21407*/                OPC_CheckType, MVT::i1,
/* 21409*/                OPC_MoveParent,
/* 21410*/                OPC_CheckType, MVT::i64,
/* 21412*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21414*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21422*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 21425*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21433*/                OPC_EmitInteger, MVT::i64, 0, 
/* 21436*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 21443*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21446*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 21453*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 21462*/              0, /*End of Scope*/
/* 21463*/            /*Scope*/ 115, /*->21579*/
/* 21464*/              OPC_CheckCondCode, ISD::SETO,
/* 21466*/              OPC_MoveParent,
/* 21467*/              OPC_Scope, 53, /*->21522*/ // 2 children in Scope
/* 21469*/                OPC_MoveParent,
/* 21470*/                OPC_CheckType, MVT::i32,
/* 21472*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21474*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21482*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 21485*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21493*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21496*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21503*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21506*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21513*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21522*/              /*Scope*/ 55, /*->21578*/
/* 21523*/                OPC_CheckType, MVT::i1,
/* 21525*/                OPC_MoveParent,
/* 21526*/                OPC_CheckType, MVT::i64,
/* 21528*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 21530*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21538*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 21541*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21549*/                OPC_EmitInteger, MVT::i64, 0, 
/* 21552*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 21559*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21562*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 21569*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 21578*/              0, /*End of Scope*/
/* 21579*/            /*Scope*/ 115, /*->21695*/
/* 21580*/              OPC_CheckCondCode, ISD::SETUGE,
/* 21582*/              OPC_MoveParent,
/* 21583*/              OPC_Scope, 53, /*->21638*/ // 2 children in Scope
/* 21585*/                OPC_MoveParent,
/* 21586*/                OPC_CheckType, MVT::i32,
/* 21588*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 21590*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21598*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21601*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21609*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21612*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21619*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21622*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21629*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21638*/              /*Scope*/ 55, /*->21694*/
/* 21639*/                OPC_CheckType, MVT::i1,
/* 21641*/                OPC_MoveParent,
/* 21642*/                OPC_CheckType, MVT::i64,
/* 21644*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 21646*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21654*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21657*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21665*/                OPC_EmitInteger, MVT::i64, 0, 
/* 21668*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 21675*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21678*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 21685*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 21694*/              0, /*End of Scope*/
/* 21695*/            /*Scope*/ 115, /*->21811*/
/* 21696*/              OPC_CheckCondCode, ISD::SETGE,
/* 21698*/              OPC_MoveParent,
/* 21699*/              OPC_Scope, 53, /*->21754*/ // 2 children in Scope
/* 21701*/                OPC_MoveParent,
/* 21702*/                OPC_CheckType, MVT::i32,
/* 21704*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 21706*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21714*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21717*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21725*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21728*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21735*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21738*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21745*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21754*/              /*Scope*/ 55, /*->21810*/
/* 21755*/                OPC_CheckType, MVT::i1,
/* 21757*/                OPC_MoveParent,
/* 21758*/                OPC_CheckType, MVT::i64,
/* 21760*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 21762*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21770*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21773*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21781*/                OPC_EmitInteger, MVT::i64, 0, 
/* 21784*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 21791*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21794*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 21801*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 21810*/              0, /*End of Scope*/
/* 21811*/            /*Scope*/ 115, /*->21927*/
/* 21812*/              OPC_CheckCondCode, ISD::SETULE,
/* 21814*/              OPC_MoveParent,
/* 21815*/              OPC_Scope, 53, /*->21870*/ // 2 children in Scope
/* 21817*/                OPC_MoveParent,
/* 21818*/                OPC_CheckType, MVT::i32,
/* 21820*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 21822*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21830*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21833*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21841*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21844*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21851*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21854*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21861*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21870*/              /*Scope*/ 55, /*->21926*/
/* 21871*/                OPC_CheckType, MVT::i1,
/* 21873*/                OPC_MoveParent,
/* 21874*/                OPC_CheckType, MVT::i64,
/* 21876*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 21878*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21886*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21889*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21897*/                OPC_EmitInteger, MVT::i64, 0, 
/* 21900*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 21907*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21910*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 21917*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 21926*/              0, /*End of Scope*/
/* 21927*/            /*Scope*/ 115, /*->22043*/
/* 21928*/              OPC_CheckCondCode, ISD::SETLE,
/* 21930*/              OPC_MoveParent,
/* 21931*/              OPC_Scope, 53, /*->21986*/ // 2 children in Scope
/* 21933*/                OPC_MoveParent,
/* 21934*/                OPC_CheckType, MVT::i32,
/* 21936*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 21938*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21946*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21949*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 21957*/                OPC_EmitInteger, MVT::i32, 0, 
/* 21960*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 21967*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21970*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 21977*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 21986*/              /*Scope*/ 55, /*->22042*/
/* 21987*/                OPC_CheckType, MVT::i1,
/* 21989*/                OPC_MoveParent,
/* 21990*/                OPC_CheckType, MVT::i64,
/* 21992*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 21994*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22002*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22005*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22013*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22016*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22023*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22026*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22033*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22042*/              0, /*End of Scope*/
/* 22043*/            /*Scope*/ 115, /*->22159*/
/* 22044*/              OPC_CheckCondCode, ISD::SETUNE,
/* 22046*/              OPC_MoveParent,
/* 22047*/              OPC_Scope, 53, /*->22102*/ // 2 children in Scope
/* 22049*/                OPC_MoveParent,
/* 22050*/                OPC_CheckType, MVT::i32,
/* 22052*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 22054*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22062*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22065*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22073*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22076*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22083*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22086*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22093*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 22102*/              /*Scope*/ 55, /*->22158*/
/* 22103*/                OPC_CheckType, MVT::i1,
/* 22105*/                OPC_MoveParent,
/* 22106*/                OPC_CheckType, MVT::i64,
/* 22108*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 22110*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22118*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22121*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22129*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22132*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22139*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22142*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22149*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22158*/              0, /*End of Scope*/
/* 22159*/            /*Scope*/ 115, /*->22275*/
/* 22160*/              OPC_CheckCondCode, ISD::SETNE,
/* 22162*/              OPC_MoveParent,
/* 22163*/              OPC_Scope, 53, /*->22218*/ // 2 children in Scope
/* 22165*/                OPC_MoveParent,
/* 22166*/                OPC_CheckType, MVT::i32,
/* 22168*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 22170*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22178*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22181*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22189*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22192*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22199*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22202*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22209*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 22218*/              /*Scope*/ 55, /*->22274*/
/* 22219*/                OPC_CheckType, MVT::i1,
/* 22221*/                OPC_MoveParent,
/* 22222*/                OPC_CheckType, MVT::i64,
/* 22224*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 22226*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22234*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22237*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22245*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22248*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22255*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22258*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22265*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22274*/              0, /*End of Scope*/
/* 22275*/            0, /*End of Scope*/
/* 22276*/          /*Scope*/ 106|128,11/*1514*/, /*->23792*/
/* 22278*/            OPC_CheckChild0Type, MVT::f64,
/* 22280*/            OPC_RecordChild1, // #1 = $s2
/* 22281*/            OPC_MoveChild2,
/* 22282*/            OPC_Scope, 115, /*->22399*/ // 13 children in Scope
/* 22284*/              OPC_CheckCondCode, ISD::SETUGE,
/* 22286*/              OPC_MoveParent,
/* 22287*/              OPC_Scope, 53, /*->22342*/ // 2 children in Scope
/* 22289*/                OPC_MoveParent,
/* 22290*/                OPC_CheckType, MVT::i32,
/* 22292*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22294*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22302*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22305*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22313*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22316*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22323*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22326*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22333*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 22342*/              /*Scope*/ 55, /*->22398*/
/* 22343*/                OPC_CheckType, MVT::i1,
/* 22345*/                OPC_MoveParent,
/* 22346*/                OPC_CheckType, MVT::i64,
/* 22348*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22350*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22358*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22361*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22369*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22372*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22379*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22382*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22389*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22398*/              0, /*End of Scope*/
/* 22399*/            /*Scope*/ 115, /*->22515*/
/* 22400*/              OPC_CheckCondCode, ISD::SETGE,
/* 22402*/              OPC_MoveParent,
/* 22403*/              OPC_Scope, 53, /*->22458*/ // 2 children in Scope
/* 22405*/                OPC_MoveParent,
/* 22406*/                OPC_CheckType, MVT::i32,
/* 22408*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22410*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22418*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22421*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22429*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22432*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22439*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22442*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22449*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 22458*/              /*Scope*/ 55, /*->22514*/
/* 22459*/                OPC_CheckType, MVT::i1,
/* 22461*/                OPC_MoveParent,
/* 22462*/                OPC_CheckType, MVT::i64,
/* 22464*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22466*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22474*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22477*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22485*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22488*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22495*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22498*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22505*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22514*/              0, /*End of Scope*/
/* 22515*/            /*Scope*/ 115, /*->22631*/
/* 22516*/              OPC_CheckCondCode, ISD::SETULE,
/* 22518*/              OPC_MoveParent,
/* 22519*/              OPC_Scope, 53, /*->22574*/ // 2 children in Scope
/* 22521*/                OPC_MoveParent,
/* 22522*/                OPC_CheckType, MVT::i32,
/* 22524*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22526*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22534*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22537*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22545*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22548*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22555*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22558*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22565*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 22574*/              /*Scope*/ 55, /*->22630*/
/* 22575*/                OPC_CheckType, MVT::i1,
/* 22577*/                OPC_MoveParent,
/* 22578*/                OPC_CheckType, MVT::i64,
/* 22580*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22582*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22590*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22593*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22601*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22604*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22611*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22614*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22621*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22630*/              0, /*End of Scope*/
/* 22631*/            /*Scope*/ 115, /*->22747*/
/* 22632*/              OPC_CheckCondCode, ISD::SETLE,
/* 22634*/              OPC_MoveParent,
/* 22635*/              OPC_Scope, 53, /*->22690*/ // 2 children in Scope
/* 22637*/                OPC_MoveParent,
/* 22638*/                OPC_CheckType, MVT::i32,
/* 22640*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22642*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22650*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22653*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22661*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22664*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22671*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22674*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22681*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 22690*/              /*Scope*/ 55, /*->22746*/
/* 22691*/                OPC_CheckType, MVT::i1,
/* 22693*/                OPC_MoveParent,
/* 22694*/                OPC_CheckType, MVT::i64,
/* 22696*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22698*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22706*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22709*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22717*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22720*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22727*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22730*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22737*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22746*/              0, /*End of Scope*/
/* 22747*/            /*Scope*/ 115, /*->22863*/
/* 22748*/              OPC_CheckCondCode, ISD::SETUNE,
/* 22750*/              OPC_MoveParent,
/* 22751*/              OPC_Scope, 53, /*->22806*/ // 2 children in Scope
/* 22753*/                OPC_MoveParent,
/* 22754*/                OPC_CheckType, MVT::i32,
/* 22756*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22758*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22766*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 22769*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22777*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22780*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22787*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22790*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22797*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 22806*/              /*Scope*/ 55, /*->22862*/
/* 22807*/                OPC_CheckType, MVT::i1,
/* 22809*/                OPC_MoveParent,
/* 22810*/                OPC_CheckType, MVT::i64,
/* 22812*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22814*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22822*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 22825*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22833*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22836*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22843*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22846*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22853*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22862*/              0, /*End of Scope*/
/* 22863*/            /*Scope*/ 115, /*->22979*/
/* 22864*/              OPC_CheckCondCode, ISD::SETNE,
/* 22866*/              OPC_MoveParent,
/* 22867*/              OPC_Scope, 53, /*->22922*/ // 2 children in Scope
/* 22869*/                OPC_MoveParent,
/* 22870*/                OPC_CheckType, MVT::i32,
/* 22872*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22874*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22882*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 22885*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22893*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22896*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22903*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22906*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22913*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 22922*/              /*Scope*/ 55, /*->22978*/
/* 22923*/                OPC_CheckType, MVT::i1,
/* 22925*/                OPC_MoveParent,
/* 22926*/                OPC_CheckType, MVT::i64,
/* 22928*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22930*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22938*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 22941*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22949*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22952*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22959*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22962*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22969*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 22978*/              0, /*End of Scope*/
/* 22979*/            /*Scope*/ 115, /*->23095*/
/* 22980*/              OPC_CheckCondCode, ISD::SETO,
/* 22982*/              OPC_MoveParent,
/* 22983*/              OPC_Scope, 53, /*->23038*/ // 2 children in Scope
/* 22985*/                OPC_MoveParent,
/* 22986*/                OPC_CheckType, MVT::i32,
/* 22988*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 22990*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22998*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 23001*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23009*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23012*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23019*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23022*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23029*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23038*/              /*Scope*/ 55, /*->23094*/
/* 23039*/                OPC_CheckType, MVT::i1,
/* 23041*/                OPC_MoveParent,
/* 23042*/                OPC_CheckType, MVT::i64,
/* 23044*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 23046*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23054*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 23057*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23065*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23068*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23075*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23078*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23085*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 23094*/              0, /*End of Scope*/
/* 23095*/            /*Scope*/ 115, /*->23211*/
/* 23096*/              OPC_CheckCondCode, ISD::SETUGE,
/* 23098*/              OPC_MoveParent,
/* 23099*/              OPC_Scope, 53, /*->23154*/ // 2 children in Scope
/* 23101*/                OPC_MoveParent,
/* 23102*/                OPC_CheckType, MVT::i32,
/* 23104*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23106*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23114*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23117*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23125*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23128*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23135*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23138*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23145*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23154*/              /*Scope*/ 55, /*->23210*/
/* 23155*/                OPC_CheckType, MVT::i1,
/* 23157*/                OPC_MoveParent,
/* 23158*/                OPC_CheckType, MVT::i64,
/* 23160*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23162*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23170*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23173*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23181*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23184*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23191*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23194*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23201*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 23210*/              0, /*End of Scope*/
/* 23211*/            /*Scope*/ 115, /*->23327*/
/* 23212*/              OPC_CheckCondCode, ISD::SETGE,
/* 23214*/              OPC_MoveParent,
/* 23215*/              OPC_Scope, 53, /*->23270*/ // 2 children in Scope
/* 23217*/                OPC_MoveParent,
/* 23218*/                OPC_CheckType, MVT::i32,
/* 23220*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23222*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23230*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23233*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23241*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23244*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23251*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23254*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23261*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23270*/              /*Scope*/ 55, /*->23326*/
/* 23271*/                OPC_CheckType, MVT::i1,
/* 23273*/                OPC_MoveParent,
/* 23274*/                OPC_CheckType, MVT::i64,
/* 23276*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23278*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23286*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23289*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23297*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23300*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23307*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23310*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23317*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 23326*/              0, /*End of Scope*/
/* 23327*/            /*Scope*/ 115, /*->23443*/
/* 23328*/              OPC_CheckCondCode, ISD::SETULE,
/* 23330*/              OPC_MoveParent,
/* 23331*/              OPC_Scope, 53, /*->23386*/ // 2 children in Scope
/* 23333*/                OPC_MoveParent,
/* 23334*/                OPC_CheckType, MVT::i32,
/* 23336*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23338*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23346*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23349*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23357*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23360*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23367*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23370*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23377*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23386*/              /*Scope*/ 55, /*->23442*/
/* 23387*/                OPC_CheckType, MVT::i1,
/* 23389*/                OPC_MoveParent,
/* 23390*/                OPC_CheckType, MVT::i64,
/* 23392*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23394*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23402*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23405*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23413*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23416*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23423*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23426*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23433*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 23442*/              0, /*End of Scope*/
/* 23443*/            /*Scope*/ 115, /*->23559*/
/* 23444*/              OPC_CheckCondCode, ISD::SETLE,
/* 23446*/              OPC_MoveParent,
/* 23447*/              OPC_Scope, 53, /*->23502*/ // 2 children in Scope
/* 23449*/                OPC_MoveParent,
/* 23450*/                OPC_CheckType, MVT::i32,
/* 23452*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23454*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23462*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23465*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23473*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23476*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23483*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23486*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23493*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23502*/              /*Scope*/ 55, /*->23558*/
/* 23503*/                OPC_CheckType, MVT::i1,
/* 23505*/                OPC_MoveParent,
/* 23506*/                OPC_CheckType, MVT::i64,
/* 23508*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23510*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23518*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23521*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23529*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23532*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23539*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23542*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23549*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 23558*/              0, /*End of Scope*/
/* 23559*/            /*Scope*/ 115, /*->23675*/
/* 23560*/              OPC_CheckCondCode, ISD::SETUNE,
/* 23562*/              OPC_MoveParent,
/* 23563*/              OPC_Scope, 53, /*->23618*/ // 2 children in Scope
/* 23565*/                OPC_MoveParent,
/* 23566*/                OPC_CheckType, MVT::i32,
/* 23568*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23570*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23578*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23581*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23589*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23592*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23599*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23602*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23609*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23618*/              /*Scope*/ 55, /*->23674*/
/* 23619*/                OPC_CheckType, MVT::i1,
/* 23621*/                OPC_MoveParent,
/* 23622*/                OPC_CheckType, MVT::i64,
/* 23624*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23626*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23634*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23637*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23645*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23648*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23655*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23658*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23665*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 23674*/              0, /*End of Scope*/
/* 23675*/            /*Scope*/ 115, /*->23791*/
/* 23676*/              OPC_CheckCondCode, ISD::SETNE,
/* 23678*/              OPC_MoveParent,
/* 23679*/              OPC_Scope, 53, /*->23734*/ // 2 children in Scope
/* 23681*/                OPC_MoveParent,
/* 23682*/                OPC_CheckType, MVT::i32,
/* 23684*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23686*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23694*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23697*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23705*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23708*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23715*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23718*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23725*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23734*/              /*Scope*/ 55, /*->23790*/
/* 23735*/                OPC_CheckType, MVT::i1,
/* 23737*/                OPC_MoveParent,
/* 23738*/                OPC_CheckType, MVT::i64,
/* 23740*/                OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 23742*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23750*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23753*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23761*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23764*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23771*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23774*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23781*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 23790*/              0, /*End of Scope*/
/* 23791*/            0, /*End of Scope*/
/* 23792*/          /*Scope*/ 50|128,6/*818*/, /*->24612*/
/* 23794*/            OPC_CheckChild0Type, MVT::f128,
/* 23796*/            OPC_RecordChild1, // #1 = $s2
/* 23797*/            OPC_MoveChild2,
/* 23798*/            OPC_Scope, 115, /*->23915*/ // 7 children in Scope
/* 23800*/              OPC_CheckCondCode, ISD::SETUGE,
/* 23802*/              OPC_MoveParent,
/* 23803*/              OPC_Scope, 53, /*->23858*/ // 2 children in Scope
/* 23805*/                OPC_MoveParent,
/* 23806*/                OPC_CheckType, MVT::i32,
/* 23808*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 23810*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23818*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 23821*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23829*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23832*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23839*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23842*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23849*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23858*/              /*Scope*/ 55, /*->23914*/
/* 23859*/                OPC_CheckType, MVT::i1,
/* 23861*/                OPC_MoveParent,
/* 23862*/                OPC_CheckType, MVT::i64,
/* 23864*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 23866*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23874*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 23877*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23885*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23888*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23895*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23898*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23905*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 23914*/              0, /*End of Scope*/
/* 23915*/            /*Scope*/ 115, /*->24031*/
/* 23916*/              OPC_CheckCondCode, ISD::SETGE,
/* 23918*/              OPC_MoveParent,
/* 23919*/              OPC_Scope, 53, /*->23974*/ // 2 children in Scope
/* 23921*/                OPC_MoveParent,
/* 23922*/                OPC_CheckType, MVT::i32,
/* 23924*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 23926*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23934*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 23937*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23945*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23948*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23955*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23958*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23965*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 23974*/              /*Scope*/ 55, /*->24030*/
/* 23975*/                OPC_CheckType, MVT::i1,
/* 23977*/                OPC_MoveParent,
/* 23978*/                OPC_CheckType, MVT::i64,
/* 23980*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 23982*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23990*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 23993*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24001*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24004*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24011*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24014*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24021*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 24030*/              0, /*End of Scope*/
/* 24031*/            /*Scope*/ 115, /*->24147*/
/* 24032*/              OPC_CheckCondCode, ISD::SETULE,
/* 24034*/              OPC_MoveParent,
/* 24035*/              OPC_Scope, 53, /*->24090*/ // 2 children in Scope
/* 24037*/                OPC_MoveParent,
/* 24038*/                OPC_CheckType, MVT::i32,
/* 24040*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24042*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24050*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24053*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24061*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24064*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24071*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24074*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24081*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 24090*/              /*Scope*/ 55, /*->24146*/
/* 24091*/                OPC_CheckType, MVT::i1,
/* 24093*/                OPC_MoveParent,
/* 24094*/                OPC_CheckType, MVT::i64,
/* 24096*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24098*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24106*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24109*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24117*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24120*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24127*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24130*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24137*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 24146*/              0, /*End of Scope*/
/* 24147*/            /*Scope*/ 115, /*->24263*/
/* 24148*/              OPC_CheckCondCode, ISD::SETLE,
/* 24150*/              OPC_MoveParent,
/* 24151*/              OPC_Scope, 53, /*->24206*/ // 2 children in Scope
/* 24153*/                OPC_MoveParent,
/* 24154*/                OPC_CheckType, MVT::i32,
/* 24156*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24158*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24166*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24169*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24177*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24180*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24187*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24190*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24197*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 24206*/              /*Scope*/ 55, /*->24262*/
/* 24207*/                OPC_CheckType, MVT::i1,
/* 24209*/                OPC_MoveParent,
/* 24210*/                OPC_CheckType, MVT::i64,
/* 24212*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24214*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24222*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24225*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24233*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24236*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24243*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24246*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24253*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 24262*/              0, /*End of Scope*/
/* 24263*/            /*Scope*/ 115, /*->24379*/
/* 24264*/              OPC_CheckCondCode, ISD::SETUNE,
/* 24266*/              OPC_MoveParent,
/* 24267*/              OPC_Scope, 53, /*->24322*/ // 2 children in Scope
/* 24269*/                OPC_MoveParent,
/* 24270*/                OPC_CheckType, MVT::i32,
/* 24272*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24274*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24282*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 24285*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24293*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24296*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24303*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24306*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24313*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 24322*/              /*Scope*/ 55, /*->24378*/
/* 24323*/                OPC_CheckType, MVT::i1,
/* 24325*/                OPC_MoveParent,
/* 24326*/                OPC_CheckType, MVT::i64,
/* 24328*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24330*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24338*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 24341*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24349*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24352*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24359*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24362*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24369*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 24378*/              0, /*End of Scope*/
/* 24379*/            /*Scope*/ 115, /*->24495*/
/* 24380*/              OPC_CheckCondCode, ISD::SETNE,
/* 24382*/              OPC_MoveParent,
/* 24383*/              OPC_Scope, 53, /*->24438*/ // 2 children in Scope
/* 24385*/                OPC_MoveParent,
/* 24386*/                OPC_CheckType, MVT::i32,
/* 24388*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24390*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24398*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 24401*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24409*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24412*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24419*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24422*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24429*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 24438*/              /*Scope*/ 55, /*->24494*/
/* 24439*/                OPC_CheckType, MVT::i1,
/* 24441*/                OPC_MoveParent,
/* 24442*/                OPC_CheckType, MVT::i64,
/* 24444*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24446*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24454*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 24457*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24465*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24468*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24475*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24478*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24485*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 24494*/              0, /*End of Scope*/
/* 24495*/            /*Scope*/ 115, /*->24611*/
/* 24496*/              OPC_CheckCondCode, ISD::SETO,
/* 24498*/              OPC_MoveParent,
/* 24499*/              OPC_Scope, 53, /*->24554*/ // 2 children in Scope
/* 24501*/                OPC_MoveParent,
/* 24502*/                OPC_CheckType, MVT::i32,
/* 24504*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24506*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24514*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 24517*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24525*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24528*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24535*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24538*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24545*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } 1:{ *:[i32] }))
/* 24554*/              /*Scope*/ 55, /*->24610*/
/* 24555*/                OPC_CheckType, MVT::i1,
/* 24557*/                OPC_MoveParent,
/* 24558*/                OPC_CheckType, MVT::i64,
/* 24560*/                OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 24562*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24570*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 24573*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24581*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24584*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24591*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24594*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24601*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (zext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } 1:{ *:[i64] }))
/* 24610*/              0, /*End of Scope*/
/* 24611*/            0, /*End of Scope*/
/* 24612*/          0, /*End of Scope*/
/* 24613*/        0, /*End of Scope*/
/* 24614*/      0, // EndSwitchOpcode
/* 24615*/    /*Scope*/ 106, /*->24722*/
/* 24616*/      OPC_RecordChild0, // #0 = $in
/* 24617*/      OPC_SwitchType /*2 cases */, 70, MVT::i64,// ->24690
/* 24620*/        OPC_Scope, 35, /*->24657*/ // 2 children in Scope
/* 24622*/          OPC_CheckChild0Type, MVT::i32,
/* 24624*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #1
/* 24630*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 24633*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 24642*/          OPC_EmitInteger, MVT::i32, 0, 
/* 24645*/          OPC_EmitInteger, MVT::i32, 32, 
/* 24648*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 3, 4, 5, 
                    // Src: (zext:{ *:[i64] } i32:{ *:[i32] }:$in) - Complexity = 3
                    // Dst: (RLDICL:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$in, sub_32:{ *:[i32] }), 0:{ *:[i32] }, 32:{ *:[i32] })
/* 24657*/        /*Scope*/ 31, /*->24689*/
/* 24658*/          OPC_CheckChild0Type, MVT::i1,
/* 24660*/          OPC_EmitInteger, MVT::i64, 1, 
/* 24663*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 24670*/          OPC_EmitInteger, MVT::i64, 0, 
/* 24673*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 24680*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 4, 
                    // Src: (zext:{ *:[i64] } i1:{ *:[i1] }:$in) - Complexity = 3
                    // Dst: (SELECT_I8:{ *:[i64] } ?:{ *:[i1] }:$in, (LI8:{ *:[i64] } 1:{ *:[i64] }), (LI8:{ *:[i64] } 0:{ *:[i64] }))
/* 24689*/        0, /*End of Scope*/
/* 24690*/      /*SwitchType*/ 29, MVT::i32,// ->24721
/* 24692*/        OPC_EmitInteger, MVT::i32, 1, 
/* 24695*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #2
/* 24702*/        OPC_EmitInteger, MVT::i32, 0, 
/* 24705*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 24712*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                      MVT::i32, 3/*#Ops*/, 0, 2, 4, 
                  // Src: (zext:{ *:[i32] } i1:{ *:[i1] }:$in) - Complexity = 3
                  // Dst: (SELECT_I4:{ *:[i32] } ?:{ *:[i1] }:$in, (LI:{ *:[i32] } 1:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }))
/* 24721*/      0, // EndSwitchType
/* 24722*/    0, /*End of Scope*/
/* 24723*/  /*SwitchOpcode*/ 38|128,65/*8358*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->33085
/* 24727*/    OPC_Scope, 63|128,64/*8255*/, /*->32985*/ // 2 children in Scope
/* 24730*/      OPC_MoveChild0,
/* 24731*/      OPC_SwitchOpcode /*2 cases */, 20|128,3/*404*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->25140
/* 24736*/        OPC_RecordChild0, // #0 = $S
/* 24737*/        OPC_CheckChild0Type, MVT::v4i32,
/* 24739*/        OPC_CheckType, MVT::i32,
/* 24741*/        OPC_Scope, 63, /*->24806*/ // 5 children in Scope
/* 24743*/          OPC_CheckChild1Integer, 0, 
/* 24745*/          OPC_MoveParent,
/* 24746*/          OPC_CheckType, MVT::i64,
/* 24748*/          OPC_Scope, 27, /*->24777*/ // 2 children in Scope
/* 24750*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 24752*/            OPC_EmitInteger, MVT::i64, 0, 
/* 24755*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 24762*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 24770*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 3, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 0:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (EXTSW:{ *:[i64] } (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v4i32] }:$S))
/* 24777*/          /*Scope*/ 27, /*->24805*/
/* 24778*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 24780*/            OPC_EmitInteger, MVT::i64, 0, 
/* 24783*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 24790*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 24798*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 3, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 0:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (EXTSW:{ *:[i64] } (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v4i32] }:$S))
/* 24805*/          0, /*End of Scope*/
/* 24806*/        /*Scope*/ 92, /*->24899*/
/* 24807*/          OPC_CheckChild1Integer, 1, 
/* 24809*/          OPC_MoveParent,
/* 24810*/          OPC_CheckType, MVT::i64,
/* 24812*/          OPC_Scope, 27, /*->24841*/ // 2 children in Scope
/* 24814*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 24816*/            OPC_EmitInteger, MVT::i64, 4, 
/* 24819*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 24826*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 24834*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 3, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 1:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (EXTSW:{ *:[i64] } (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v4i32] }:$S))
/* 24841*/          /*Scope*/ 56, /*->24898*/
/* 24842*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 24844*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #1
/* 24850*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 24853*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 24861*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 24864*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 24872*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24879*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 24882*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 1, 6, 7,  // Results = #8
/* 24891*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 8, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 1:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (EXTSW:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), sub_32:{ *:[i32] }))
/* 24898*/          0, /*End of Scope*/
/* 24899*/        /*Scope*/ 63, /*->24963*/
/* 24900*/          OPC_CheckChild1Integer, 3, 
/* 24902*/          OPC_MoveParent,
/* 24903*/          OPC_CheckType, MVT::i64,
/* 24905*/          OPC_Scope, 27, /*->24934*/ // 2 children in Scope
/* 24907*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 24909*/            OPC_EmitInteger, MVT::i64, 12, 
/* 24912*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 24919*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 24927*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 3, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 3:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (EXTSW:{ *:[i64] } (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v4i32] }:$S))
/* 24934*/          /*Scope*/ 27, /*->24962*/
/* 24935*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 24937*/            OPC_EmitInteger, MVT::i64, 12, 
/* 24940*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 24947*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 24955*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 3, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 3:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (EXTSW:{ *:[i64] } (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v4i32] }:$S))
/* 24962*/          0, /*End of Scope*/
/* 24963*/        /*Scope*/ 92, /*->25056*/
/* 24964*/          OPC_CheckChild1Integer, 2, 
/* 24966*/          OPC_MoveParent,
/* 24967*/          OPC_CheckType, MVT::i64,
/* 24969*/          OPC_Scope, 27, /*->24998*/ // 2 children in Scope
/* 24971*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 24973*/            OPC_EmitInteger, MVT::i64, 8, 
/* 24976*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 24983*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 24991*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 3, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 2:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (EXTSW:{ *:[i64] } (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v4i32] }:$S))
/* 24998*/          /*Scope*/ 56, /*->25055*/
/* 24999*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 25001*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #1
/* 25007*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 25010*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25018*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 25021*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25029*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25036*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 25039*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 1, 6, 7,  // Results = #8
/* 25048*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 8, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 2:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (EXTSW:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), sub_32:{ *:[i32] }))
/* 25055*/          0, /*End of Scope*/
/* 25056*/        /*Scope*/ 82, /*->25139*/
/* 25057*/          OPC_RecordChild1, // #1 = $Idx
/* 25058*/          OPC_CheckChild1Type, MVT::i64,
/* 25060*/          OPC_MoveParent,
/* 25061*/          OPC_CheckType, MVT::i64,
/* 25063*/          OPC_Scope, 36, /*->25101*/ // 2 children in Scope
/* 25065*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 25067*/            OPC_EmitInteger, MVT::i32, 2, 
/* 25070*/            OPC_EmitInteger, MVT::i32, 28, 
/* 25073*/            OPC_EmitInteger, MVT::i32, 29, 
/* 25076*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                          MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 25086*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 25094*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 6, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, i64:{ *:[i64] }:$Idx)) - Complexity = 406
                      // Dst: (EXTSW:{ *:[i64] } (VEXTUWRX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 2:{ *:[i32] }, 28:{ *:[i32] }, 29:{ *:[i32] }), ?:{ *:[v4i32] }:$S))
/* 25101*/          /*Scope*/ 36, /*->25138*/
/* 25102*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 25104*/            OPC_EmitInteger, MVT::i32, 2, 
/* 25107*/            OPC_EmitInteger, MVT::i32, 28, 
/* 25110*/            OPC_EmitInteger, MVT::i32, 29, 
/* 25113*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                          MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 25123*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 25131*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                          MVT::i64, 1/*#Ops*/, 6, 
                      // Src: (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, i64:{ *:[i64] }:$Idx)) - Complexity = 406
                      // Dst: (EXTSW:{ *:[i64] } (VEXTUWLX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 2:{ *:[i32] }, 28:{ *:[i32] }, 29:{ *:[i32] }), ?:{ *:[v4i32] }:$S))
/* 25138*/          0, /*End of Scope*/
/* 25139*/        0, /*End of Scope*/
/* 25140*/      /*SwitchOpcode*/ 32|128,61/*7840*/, TARGET_VAL(ISD::SETCC),// ->32984
/* 25144*/        OPC_RecordChild0, // #0 = $s1
/* 25145*/        OPC_Scope, 12|128,13/*1676*/, /*->26824*/ // 5 children in Scope
/* 25148*/          OPC_CheckChild0Type, MVT::i32,
/* 25150*/          OPC_RecordChild1, // #1 = $imm
/* 25151*/          OPC_Scope, 113|128,7/*1009*/, /*->26163*/ // 2 children in Scope
/* 25154*/            OPC_MoveChild1,
/* 25155*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 25158*/            OPC_Scope, 9|128,1/*137*/, /*->25298*/ // 6 children in Scope
/* 25161*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 25163*/              OPC_MoveParent,
/* 25164*/              OPC_MoveChild2,
/* 25165*/              OPC_CheckCondCode, ISD::SETUGE,
/* 25167*/              OPC_MoveParent,
/* 25168*/              OPC_Scope, 62, /*->25232*/ // 2 children in Scope
/* 25170*/                OPC_MoveParent,
/* 25171*/                OPC_CheckType, MVT::i32,
/* 25173*/                OPC_EmitConvertToTarget, 1,
/* 25175*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25183*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 25186*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25194*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25197*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 25204*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25216*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 25223*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 25232*/              /*Scope*/ 64, /*->25297*/
/* 25233*/                OPC_CheckType, MVT::i1,
/* 25235*/                OPC_MoveParent,
/* 25236*/                OPC_CheckType, MVT::i64,
/* 25238*/                OPC_EmitConvertToTarget, 1,
/* 25240*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25248*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 25251*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25259*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25262*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 25269*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25281*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 25288*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 25297*/              0, /*End of Scope*/
/* 25298*/            /*Scope*/ 9|128,1/*137*/, /*->25437*/
/* 25300*/              OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 25302*/              OPC_MoveParent,
/* 25303*/              OPC_MoveChild2,
/* 25304*/              OPC_CheckCondCode, ISD::SETGE,
/* 25306*/              OPC_MoveParent,
/* 25307*/              OPC_Scope, 62, /*->25371*/ // 2 children in Scope
/* 25309*/                OPC_MoveParent,
/* 25310*/                OPC_CheckType, MVT::i32,
/* 25312*/                OPC_EmitConvertToTarget, 1,
/* 25314*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25322*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 25325*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25333*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25336*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 25343*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25355*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 25362*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 25371*/              /*Scope*/ 64, /*->25436*/
/* 25372*/                OPC_CheckType, MVT::i1,
/* 25374*/                OPC_MoveParent,
/* 25375*/                OPC_CheckType, MVT::i64,
/* 25377*/                OPC_EmitConvertToTarget, 1,
/* 25379*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25387*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 25390*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25398*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25401*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 25408*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25420*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 25427*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 25436*/              0, /*End of Scope*/
/* 25437*/            /*Scope*/ 9|128,1/*137*/, /*->25576*/
/* 25439*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 25441*/              OPC_MoveParent,
/* 25442*/              OPC_MoveChild2,
/* 25443*/              OPC_CheckCondCode, ISD::SETULE,
/* 25445*/              OPC_MoveParent,
/* 25446*/              OPC_Scope, 62, /*->25510*/ // 2 children in Scope
/* 25448*/                OPC_MoveParent,
/* 25449*/                OPC_CheckType, MVT::i32,
/* 25451*/                OPC_EmitConvertToTarget, 1,
/* 25453*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25461*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25464*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25472*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25475*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 25482*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25494*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 25501*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 25510*/              /*Scope*/ 64, /*->25575*/
/* 25511*/                OPC_CheckType, MVT::i1,
/* 25513*/                OPC_MoveParent,
/* 25514*/                OPC_CheckType, MVT::i64,
/* 25516*/                OPC_EmitConvertToTarget, 1,
/* 25518*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25526*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25529*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25537*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25540*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 25547*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25559*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 25566*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 25575*/              0, /*End of Scope*/
/* 25576*/            /*Scope*/ 20|128,2/*276*/, /*->25854*/
/* 25578*/              OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 25580*/              OPC_MoveParent,
/* 25581*/              OPC_MoveChild2,
/* 25582*/              OPC_Scope, 5|128,1/*133*/, /*->25718*/ // 2 children in Scope
/* 25585*/                OPC_CheckCondCode, ISD::SETLE,
/* 25587*/                OPC_MoveParent,
/* 25588*/                OPC_Scope, 62, /*->25652*/ // 2 children in Scope
/* 25590*/                  OPC_MoveParent,
/* 25591*/                  OPC_CheckType, MVT::i32,
/* 25593*/                  OPC_EmitConvertToTarget, 1,
/* 25595*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25603*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25606*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25614*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 25617*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 25624*/                  OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25636*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 25643*/                  OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                            // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                            // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 25652*/                /*Scope*/ 64, /*->25717*/
/* 25653*/                  OPC_CheckType, MVT::i1,
/* 25655*/                  OPC_MoveParent,
/* 25656*/                  OPC_CheckType, MVT::i64,
/* 25658*/                  OPC_EmitConvertToTarget, 1,
/* 25660*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25668*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25671*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25679*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 25682*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 25689*/                  OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25701*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 25708*/                  OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                            // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                            // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 25717*/                0, /*End of Scope*/
/* 25718*/              /*Scope*/ 5|128,1/*133*/, /*->25853*/
/* 25720*/                OPC_CheckCondCode, ISD::SETNE,
/* 25722*/                OPC_MoveParent,
/* 25723*/                OPC_Scope, 62, /*->25787*/ // 2 children in Scope
/* 25725*/                  OPC_MoveParent,
/* 25726*/                  OPC_CheckType, MVT::i32,
/* 25728*/                  OPC_EmitConvertToTarget, 1,
/* 25730*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25738*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 25741*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25749*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 25752*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 25759*/                  OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25771*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 25778*/                  OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                            // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                            // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 25787*/                /*Scope*/ 64, /*->25852*/
/* 25788*/                  OPC_CheckType, MVT::i1,
/* 25790*/                  OPC_MoveParent,
/* 25791*/                  OPC_CheckType, MVT::i64,
/* 25793*/                  OPC_EmitConvertToTarget, 1,
/* 25795*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25803*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 25806*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25814*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 25817*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 25824*/                  OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25836*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 25843*/                  OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                            // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                            // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 25852*/                0, /*End of Scope*/
/* 25853*/              0, /*End of Scope*/
/* 25854*/            /*Scope*/ 9|128,1/*137*/, /*->25993*/
/* 25856*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 25858*/              OPC_MoveParent,
/* 25859*/              OPC_MoveChild2,
/* 25860*/              OPC_CheckCondCode, ISD::SETNE,
/* 25862*/              OPC_MoveParent,
/* 25863*/              OPC_Scope, 62, /*->25927*/ // 2 children in Scope
/* 25865*/                OPC_MoveParent,
/* 25866*/                OPC_CheckType, MVT::i32,
/* 25868*/                OPC_EmitConvertToTarget, 1,
/* 25870*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25878*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 25881*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25889*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25892*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 25899*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25911*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 25918*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 25927*/              /*Scope*/ 64, /*->25992*/
/* 25928*/                OPC_CheckType, MVT::i1,
/* 25930*/                OPC_MoveParent,
/* 25931*/                OPC_CheckType, MVT::i64,
/* 25933*/                OPC_EmitConvertToTarget, 1,
/* 25935*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 25943*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 25946*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 25954*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25957*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 25964*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 25976*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 25983*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 25992*/              0, /*End of Scope*/
/* 25993*/            /*Scope*/ 39|128,1/*167*/, /*->26162*/
/* 25995*/              OPC_MoveParent,
/* 25996*/              OPC_MoveChild2,
/* 25997*/              OPC_CheckCondCode, ISD::SETNE,
/* 25999*/              OPC_MoveParent,
/* 26000*/              OPC_Scope, 78, /*->26080*/ // 2 children in Scope
/* 26002*/                OPC_MoveParent,
/* 26003*/                OPC_CheckType, MVT::i32,
/* 26005*/                OPC_EmitConvertToTarget, 1,
/* 26007*/                OPC_EmitNodeXForm, 0, 2, // HI16
/* 26010*/                OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 26018*/                OPC_EmitConvertToTarget, 1,
/* 26020*/                OPC_EmitNodeXForm, 1, 5, // LO16
/* 26023*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 26031*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 26034*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 26042*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26045*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 26052*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26064*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 26071*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 9, 11, 13, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETNE:{ *:[Other] })) - Complexity = 9
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 26080*/              /*Scope*/ 80, /*->26161*/
/* 26081*/                OPC_CheckType, MVT::i1,
/* 26083*/                OPC_MoveParent,
/* 26084*/                OPC_CheckType, MVT::i64,
/* 26086*/                OPC_EmitConvertToTarget, 1,
/* 26088*/                OPC_EmitNodeXForm, 0, 2, // HI16
/* 26091*/                OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 26099*/                OPC_EmitConvertToTarget, 1,
/* 26101*/                OPC_EmitNodeXForm, 1, 5, // LO16
/* 26104*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 26112*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 26115*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 26123*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26126*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 26133*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26145*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 26152*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 9, 11, 13, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETNE:{ *:[Other] })) - Complexity = 9
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 26161*/              0, /*End of Scope*/
/* 26162*/            0, /*End of Scope*/
/* 26163*/          /*Scope*/ 18|128,5/*658*/, /*->26823*/
/* 26165*/            OPC_MoveChild2,
/* 26166*/            OPC_Scope, 1|128,1/*129*/, /*->26298*/ // 5 children in Scope
/* 26169*/              OPC_CheckCondCode, ISD::SETUGE,
/* 26171*/              OPC_MoveParent,
/* 26172*/              OPC_Scope, 60, /*->26234*/ // 2 children in Scope
/* 26174*/                OPC_MoveParent,
/* 26175*/                OPC_CheckType, MVT::i32,
/* 26177*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26185*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 26188*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26196*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26199*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26206*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26218*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26225*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 26234*/              /*Scope*/ 62, /*->26297*/
/* 26235*/                OPC_CheckType, MVT::i1,
/* 26237*/                OPC_MoveParent,
/* 26238*/                OPC_CheckType, MVT::i64,
/* 26240*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26248*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 26251*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26259*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26262*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26269*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26281*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26288*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 26297*/              0, /*End of Scope*/
/* 26298*/            /*Scope*/ 1|128,1/*129*/, /*->26429*/
/* 26300*/              OPC_CheckCondCode, ISD::SETGE,
/* 26302*/              OPC_MoveParent,
/* 26303*/              OPC_Scope, 60, /*->26365*/ // 2 children in Scope
/* 26305*/                OPC_MoveParent,
/* 26306*/                OPC_CheckType, MVT::i32,
/* 26308*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26316*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 26319*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26327*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26330*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26337*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26349*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26356*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 26365*/              /*Scope*/ 62, /*->26428*/
/* 26366*/                OPC_CheckType, MVT::i1,
/* 26368*/                OPC_MoveParent,
/* 26369*/                OPC_CheckType, MVT::i64,
/* 26371*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26379*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 26382*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26390*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26393*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26400*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26412*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26419*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 26428*/              0, /*End of Scope*/
/* 26429*/            /*Scope*/ 1|128,1/*129*/, /*->26560*/
/* 26431*/              OPC_CheckCondCode, ISD::SETULE,
/* 26433*/              OPC_MoveParent,
/* 26434*/              OPC_Scope, 60, /*->26496*/ // 2 children in Scope
/* 26436*/                OPC_MoveParent,
/* 26437*/                OPC_CheckType, MVT::i32,
/* 26439*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26447*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 26450*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26458*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26461*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26468*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26480*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26487*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 26496*/              /*Scope*/ 62, /*->26559*/
/* 26497*/                OPC_CheckType, MVT::i1,
/* 26499*/                OPC_MoveParent,
/* 26500*/                OPC_CheckType, MVT::i64,
/* 26502*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26510*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 26513*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26521*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26524*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26531*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26543*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26550*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 26559*/              0, /*End of Scope*/
/* 26560*/            /*Scope*/ 1|128,1/*129*/, /*->26691*/
/* 26562*/              OPC_CheckCondCode, ISD::SETLE,
/* 26564*/              OPC_MoveParent,
/* 26565*/              OPC_Scope, 60, /*->26627*/ // 2 children in Scope
/* 26567*/                OPC_MoveParent,
/* 26568*/                OPC_CheckType, MVT::i32,
/* 26570*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26578*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 26581*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26589*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26592*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26599*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26611*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26618*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 26627*/              /*Scope*/ 62, /*->26690*/
/* 26628*/                OPC_CheckType, MVT::i1,
/* 26630*/                OPC_MoveParent,
/* 26631*/                OPC_CheckType, MVT::i64,
/* 26633*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26641*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 26644*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26652*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26655*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26662*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26674*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26681*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 26690*/              0, /*End of Scope*/
/* 26691*/            /*Scope*/ 1|128,1/*129*/, /*->26822*/
/* 26693*/              OPC_CheckCondCode, ISD::SETNE,
/* 26695*/              OPC_MoveParent,
/* 26696*/              OPC_Scope, 60, /*->26758*/ // 2 children in Scope
/* 26698*/                OPC_MoveParent,
/* 26699*/                OPC_CheckType, MVT::i32,
/* 26701*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26709*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 26712*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26720*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26723*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26730*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26742*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26749*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 26758*/              /*Scope*/ 62, /*->26821*/
/* 26759*/                OPC_CheckType, MVT::i1,
/* 26761*/                OPC_MoveParent,
/* 26762*/                OPC_CheckType, MVT::i64,
/* 26764*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26772*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 26775*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26783*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26786*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26793*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26805*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26812*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 26821*/              0, /*End of Scope*/
/* 26822*/            0, /*End of Scope*/
/* 26823*/          0, /*End of Scope*/
/* 26824*/        /*Scope*/ 14|128,13/*1678*/, /*->28504*/
/* 26826*/          OPC_CheckChild0Type, MVT::i64,
/* 26828*/          OPC_RecordChild1, // #1 = $imm
/* 26829*/          OPC_Scope, 115|128,7/*1011*/, /*->27843*/ // 2 children in Scope
/* 26832*/            OPC_MoveChild1,
/* 26833*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 26836*/            OPC_Scope, 9|128,1/*137*/, /*->26976*/ // 6 children in Scope
/* 26839*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 26841*/              OPC_MoveParent,
/* 26842*/              OPC_MoveChild2,
/* 26843*/              OPC_CheckCondCode, ISD::SETUGE,
/* 26845*/              OPC_MoveParent,
/* 26846*/              OPC_Scope, 62, /*->26910*/ // 2 children in Scope
/* 26848*/                OPC_MoveParent,
/* 26849*/                OPC_CheckType, MVT::i32,
/* 26851*/                OPC_EmitConvertToTarget, 1,
/* 26853*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 26861*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 26864*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 26872*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26875*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 26882*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26894*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 26901*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 26910*/              /*Scope*/ 64, /*->26975*/
/* 26911*/                OPC_CheckType, MVT::i1,
/* 26913*/                OPC_MoveParent,
/* 26914*/                OPC_CheckType, MVT::i64,
/* 26916*/                OPC_EmitConvertToTarget, 1,
/* 26918*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 26926*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 26929*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 26937*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26940*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 26947*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 26959*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 26966*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 26975*/              0, /*End of Scope*/
/* 26976*/            /*Scope*/ 9|128,1/*137*/, /*->27115*/
/* 26978*/              OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 26980*/              OPC_MoveParent,
/* 26981*/              OPC_MoveChild2,
/* 26982*/              OPC_CheckCondCode, ISD::SETGE,
/* 26984*/              OPC_MoveParent,
/* 26985*/              OPC_Scope, 62, /*->27049*/ // 2 children in Scope
/* 26987*/                OPC_MoveParent,
/* 26988*/                OPC_CheckType, MVT::i32,
/* 26990*/                OPC_EmitConvertToTarget, 1,
/* 26992*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27000*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27003*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27011*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27014*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27021*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27033*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27040*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 27049*/              /*Scope*/ 64, /*->27114*/
/* 27050*/                OPC_CheckType, MVT::i1,
/* 27052*/                OPC_MoveParent,
/* 27053*/                OPC_CheckType, MVT::i64,
/* 27055*/                OPC_EmitConvertToTarget, 1,
/* 27057*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27065*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27068*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27076*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27079*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27086*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27098*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27105*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 27114*/              0, /*End of Scope*/
/* 27115*/            /*Scope*/ 9|128,1/*137*/, /*->27254*/
/* 27117*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 27119*/              OPC_MoveParent,
/* 27120*/              OPC_MoveChild2,
/* 27121*/              OPC_CheckCondCode, ISD::SETULE,
/* 27123*/              OPC_MoveParent,
/* 27124*/              OPC_Scope, 62, /*->27188*/ // 2 children in Scope
/* 27126*/                OPC_MoveParent,
/* 27127*/                OPC_CheckType, MVT::i32,
/* 27129*/                OPC_EmitConvertToTarget, 1,
/* 27131*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27139*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 27142*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27150*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27153*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27160*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27172*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27179*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 27188*/              /*Scope*/ 64, /*->27253*/
/* 27189*/                OPC_CheckType, MVT::i1,
/* 27191*/                OPC_MoveParent,
/* 27192*/                OPC_CheckType, MVT::i64,
/* 27194*/                OPC_EmitConvertToTarget, 1,
/* 27196*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27204*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 27207*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27215*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27218*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27225*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27237*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27244*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 27253*/              0, /*End of Scope*/
/* 27254*/            /*Scope*/ 20|128,2/*276*/, /*->27532*/
/* 27256*/              OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 27258*/              OPC_MoveParent,
/* 27259*/              OPC_MoveChild2,
/* 27260*/              OPC_Scope, 5|128,1/*133*/, /*->27396*/ // 2 children in Scope
/* 27263*/                OPC_CheckCondCode, ISD::SETLE,
/* 27265*/                OPC_MoveParent,
/* 27266*/                OPC_Scope, 62, /*->27330*/ // 2 children in Scope
/* 27268*/                  OPC_MoveParent,
/* 27269*/                  OPC_CheckType, MVT::i32,
/* 27271*/                  OPC_EmitConvertToTarget, 1,
/* 27273*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27281*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 27284*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27292*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 27295*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27302*/                  OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27314*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27321*/                  OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                            // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                            // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 27330*/                /*Scope*/ 64, /*->27395*/
/* 27331*/                  OPC_CheckType, MVT::i1,
/* 27333*/                  OPC_MoveParent,
/* 27334*/                  OPC_CheckType, MVT::i64,
/* 27336*/                  OPC_EmitConvertToTarget, 1,
/* 27338*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27346*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 27349*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27357*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 27360*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27367*/                  OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27379*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27386*/                  OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                            // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLE:{ *:[Other] })) - Complexity = 10
                            // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 27395*/                0, /*End of Scope*/
/* 27396*/              /*Scope*/ 5|128,1/*133*/, /*->27531*/
/* 27398*/                OPC_CheckCondCode, ISD::SETNE,
/* 27400*/                OPC_MoveParent,
/* 27401*/                OPC_Scope, 62, /*->27465*/ // 2 children in Scope
/* 27403*/                  OPC_MoveParent,
/* 27404*/                  OPC_CheckType, MVT::i32,
/* 27406*/                  OPC_EmitConvertToTarget, 1,
/* 27408*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27416*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27419*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27427*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 27430*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27437*/                  OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27449*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27456*/                  OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                                MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                            // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                            // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 27465*/                /*Scope*/ 64, /*->27530*/
/* 27466*/                  OPC_CheckType, MVT::i1,
/* 27468*/                  OPC_MoveParent,
/* 27469*/                  OPC_CheckType, MVT::i64,
/* 27471*/                  OPC_EmitConvertToTarget, 1,
/* 27473*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27481*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27484*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27492*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 27495*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27502*/                  OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27514*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27521*/                  OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                                MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                            // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                            // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 27530*/                0, /*End of Scope*/
/* 27531*/              0, /*End of Scope*/
/* 27532*/            /*Scope*/ 9|128,1/*137*/, /*->27671*/
/* 27534*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 27536*/              OPC_MoveParent,
/* 27537*/              OPC_MoveChild2,
/* 27538*/              OPC_CheckCondCode, ISD::SETNE,
/* 27540*/              OPC_MoveParent,
/* 27541*/              OPC_Scope, 62, /*->27605*/ // 2 children in Scope
/* 27543*/                OPC_MoveParent,
/* 27544*/                OPC_CheckType, MVT::i32,
/* 27546*/                OPC_EmitConvertToTarget, 1,
/* 27548*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27556*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27559*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27567*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27570*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27577*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27589*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27596*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 27605*/              /*Scope*/ 64, /*->27670*/
/* 27606*/                OPC_CheckType, MVT::i1,
/* 27608*/                OPC_MoveParent,
/* 27609*/                OPC_CheckType, MVT::i64,
/* 27611*/                OPC_EmitConvertToTarget, 1,
/* 27613*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27621*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27624*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27632*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27635*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27642*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27654*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27661*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 5, 7, 9, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 27670*/              0, /*End of Scope*/
/* 27671*/            /*Scope*/ 41|128,1/*169*/, /*->27842*/
/* 27673*/              OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 27675*/              OPC_MoveParent,
/* 27676*/              OPC_MoveChild2,
/* 27677*/              OPC_CheckCondCode, ISD::SETNE,
/* 27679*/              OPC_MoveParent,
/* 27680*/              OPC_Scope, 78, /*->27760*/ // 2 children in Scope
/* 27682*/                OPC_MoveParent,
/* 27683*/                OPC_CheckType, MVT::i32,
/* 27685*/                OPC_EmitConvertToTarget, 1,
/* 27687*/                OPC_EmitNodeXForm, 0, 2, // HI16
/* 27690*/                OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 27698*/                OPC_EmitConvertToTarget, 1,
/* 27700*/                OPC_EmitNodeXForm, 1, 5, // LO16
/* 27703*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 27711*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27714*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 27722*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27725*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 27732*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27744*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 27751*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 9, 11, 13, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 27760*/              /*Scope*/ 80, /*->27841*/
/* 27761*/                OPC_CheckType, MVT::i1,
/* 27763*/                OPC_MoveParent,
/* 27764*/                OPC_CheckType, MVT::i64,
/* 27766*/                OPC_EmitConvertToTarget, 1,
/* 27768*/                OPC_EmitNodeXForm, 0, 2, // HI16
/* 27771*/                OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 27779*/                OPC_EmitConvertToTarget, 1,
/* 27781*/                OPC_EmitNodeXForm, 1, 5, // LO16
/* 27784*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 27792*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27795*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 27803*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27806*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 27813*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27825*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 27832*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 9, 11, 13, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETNE:{ *:[Other] })) - Complexity = 10
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 27841*/              0, /*End of Scope*/
/* 27842*/            0, /*End of Scope*/
/* 27843*/          /*Scope*/ 18|128,5/*658*/, /*->28503*/
/* 27845*/            OPC_MoveChild2,
/* 27846*/            OPC_Scope, 1|128,1/*129*/, /*->27978*/ // 5 children in Scope
/* 27849*/              OPC_CheckCondCode, ISD::SETUGE,
/* 27851*/              OPC_MoveParent,
/* 27852*/              OPC_Scope, 60, /*->27914*/ // 2 children in Scope
/* 27854*/                OPC_MoveParent,
/* 27855*/                OPC_CheckType, MVT::i32,
/* 27857*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 27865*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27868*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 27876*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27879*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 27886*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27898*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 27905*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 27914*/              /*Scope*/ 62, /*->27977*/
/* 27915*/                OPC_CheckType, MVT::i1,
/* 27917*/                OPC_MoveParent,
/* 27918*/                OPC_CheckType, MVT::i64,
/* 27920*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 27928*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27931*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 27939*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27942*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 27949*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27961*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 27968*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 27977*/              0, /*End of Scope*/
/* 27978*/            /*Scope*/ 1|128,1/*129*/, /*->28109*/
/* 27980*/              OPC_CheckCondCode, ISD::SETGE,
/* 27982*/              OPC_MoveParent,
/* 27983*/              OPC_Scope, 60, /*->28045*/ // 2 children in Scope
/* 27985*/                OPC_MoveParent,
/* 27986*/                OPC_CheckType, MVT::i32,
/* 27988*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 27996*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27999*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28007*/                OPC_EmitInteger, MVT::i32, 0, 
/* 28010*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28017*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28029*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28036*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 28045*/              /*Scope*/ 62, /*->28108*/
/* 28046*/                OPC_CheckType, MVT::i1,
/* 28048*/                OPC_MoveParent,
/* 28049*/                OPC_CheckType, MVT::i64,
/* 28051*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28059*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28062*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28070*/                OPC_EmitInteger, MVT::i64, 0, 
/* 28073*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28080*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28092*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28099*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 28108*/              0, /*End of Scope*/
/* 28109*/            /*Scope*/ 1|128,1/*129*/, /*->28240*/
/* 28111*/              OPC_CheckCondCode, ISD::SETULE,
/* 28113*/              OPC_MoveParent,
/* 28114*/              OPC_Scope, 60, /*->28176*/ // 2 children in Scope
/* 28116*/                OPC_MoveParent,
/* 28117*/                OPC_CheckType, MVT::i32,
/* 28119*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28127*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28130*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28138*/                OPC_EmitInteger, MVT::i32, 0, 
/* 28141*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28148*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28160*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28167*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 28176*/              /*Scope*/ 62, /*->28239*/
/* 28177*/                OPC_CheckType, MVT::i1,
/* 28179*/                OPC_MoveParent,
/* 28180*/                OPC_CheckType, MVT::i64,
/* 28182*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28190*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28193*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28201*/                OPC_EmitInteger, MVT::i64, 0, 
/* 28204*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28211*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28223*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28230*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 28239*/              0, /*End of Scope*/
/* 28240*/            /*Scope*/ 1|128,1/*129*/, /*->28371*/
/* 28242*/              OPC_CheckCondCode, ISD::SETLE,
/* 28244*/              OPC_MoveParent,
/* 28245*/              OPC_Scope, 60, /*->28307*/ // 2 children in Scope
/* 28247*/                OPC_MoveParent,
/* 28248*/                OPC_CheckType, MVT::i32,
/* 28250*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28258*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28261*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28269*/                OPC_EmitInteger, MVT::i32, 0, 
/* 28272*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28279*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28291*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28298*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 28307*/              /*Scope*/ 62, /*->28370*/
/* 28308*/                OPC_CheckType, MVT::i1,
/* 28310*/                OPC_MoveParent,
/* 28311*/                OPC_CheckType, MVT::i64,
/* 28313*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28321*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28324*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28332*/                OPC_EmitInteger, MVT::i64, 0, 
/* 28335*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28342*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28354*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28361*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 28370*/              0, /*End of Scope*/
/* 28371*/            /*Scope*/ 1|128,1/*129*/, /*->28502*/
/* 28373*/              OPC_CheckCondCode, ISD::SETNE,
/* 28375*/              OPC_MoveParent,
/* 28376*/              OPC_Scope, 60, /*->28438*/ // 2 children in Scope
/* 28378*/                OPC_MoveParent,
/* 28379*/                OPC_CheckType, MVT::i32,
/* 28381*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28389*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 28392*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28400*/                OPC_EmitInteger, MVT::i32, 0, 
/* 28403*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28410*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28422*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28429*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                              MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 28438*/              /*Scope*/ 62, /*->28501*/
/* 28439*/                OPC_CheckType, MVT::i1,
/* 28441*/                OPC_MoveParent,
/* 28442*/                OPC_CheckType, MVT::i64,
/* 28444*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28452*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 28455*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28463*/                OPC_EmitInteger, MVT::i64, 0, 
/* 28466*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28473*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28485*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28492*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                              MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                          // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                          // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 28501*/              0, /*End of Scope*/
/* 28502*/            0, /*End of Scope*/
/* 28503*/          0, /*End of Scope*/
/* 28504*/        /*Scope*/ 97|128,13/*1761*/, /*->30267*/
/* 28506*/          OPC_CheckChild0Type, MVT::f32,
/* 28508*/          OPC_RecordChild1, // #1 = $s2
/* 28509*/          OPC_MoveChild2,
/* 28510*/          OPC_Scope, 5|128,1/*133*/, /*->28646*/ // 13 children in Scope
/* 28513*/            OPC_CheckCondCode, ISD::SETUGE,
/* 28515*/            OPC_MoveParent,
/* 28516*/            OPC_Scope, 62, /*->28580*/ // 2 children in Scope
/* 28518*/              OPC_MoveParent,
/* 28519*/              OPC_CheckType, MVT::i32,
/* 28521*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 28523*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28531*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28534*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28542*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28545*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28552*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28564*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28571*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 28580*/            /*Scope*/ 64, /*->28645*/
/* 28581*/              OPC_CheckType, MVT::i1,
/* 28583*/              OPC_MoveParent,
/* 28584*/              OPC_CheckType, MVT::i64,
/* 28586*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 28588*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28596*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28599*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28607*/              OPC_EmitInteger, MVT::i64, 0, 
/* 28610*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28617*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28629*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28636*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 28645*/            0, /*End of Scope*/
/* 28646*/          /*Scope*/ 5|128,1/*133*/, /*->28781*/
/* 28648*/            OPC_CheckCondCode, ISD::SETGE,
/* 28650*/            OPC_MoveParent,
/* 28651*/            OPC_Scope, 62, /*->28715*/ // 2 children in Scope
/* 28653*/              OPC_MoveParent,
/* 28654*/              OPC_CheckType, MVT::i32,
/* 28656*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 28658*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28666*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28669*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28677*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28680*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28687*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28699*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28706*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 28715*/            /*Scope*/ 64, /*->28780*/
/* 28716*/              OPC_CheckType, MVT::i1,
/* 28718*/              OPC_MoveParent,
/* 28719*/              OPC_CheckType, MVT::i64,
/* 28721*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 28723*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28731*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28734*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28742*/              OPC_EmitInteger, MVT::i64, 0, 
/* 28745*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28752*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28764*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28771*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 28780*/            0, /*End of Scope*/
/* 28781*/          /*Scope*/ 5|128,1/*133*/, /*->28916*/
/* 28783*/            OPC_CheckCondCode, ISD::SETULE,
/* 28785*/            OPC_MoveParent,
/* 28786*/            OPC_Scope, 62, /*->28850*/ // 2 children in Scope
/* 28788*/              OPC_MoveParent,
/* 28789*/              OPC_CheckType, MVT::i32,
/* 28791*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 28793*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28801*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28804*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28812*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28815*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28822*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28834*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28841*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 28850*/            /*Scope*/ 64, /*->28915*/
/* 28851*/              OPC_CheckType, MVT::i1,
/* 28853*/              OPC_MoveParent,
/* 28854*/              OPC_CheckType, MVT::i64,
/* 28856*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 28858*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28866*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28869*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28877*/              OPC_EmitInteger, MVT::i64, 0, 
/* 28880*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28887*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28899*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28906*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 28915*/            0, /*End of Scope*/
/* 28916*/          /*Scope*/ 5|128,1/*133*/, /*->29051*/
/* 28918*/            OPC_CheckCondCode, ISD::SETLE,
/* 28920*/            OPC_MoveParent,
/* 28921*/            OPC_Scope, 62, /*->28985*/ // 2 children in Scope
/* 28923*/              OPC_MoveParent,
/* 28924*/              OPC_CheckType, MVT::i32,
/* 28926*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 28928*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28936*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28939*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28947*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28950*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28957*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28969*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28976*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 28985*/            /*Scope*/ 64, /*->29050*/
/* 28986*/              OPC_CheckType, MVT::i1,
/* 28988*/              OPC_MoveParent,
/* 28989*/              OPC_CheckType, MVT::i64,
/* 28991*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 28993*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29001*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29004*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29012*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29015*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29022*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29034*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29041*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 29050*/            0, /*End of Scope*/
/* 29051*/          /*Scope*/ 5|128,1/*133*/, /*->29186*/
/* 29053*/            OPC_CheckCondCode, ISD::SETUNE,
/* 29055*/            OPC_MoveParent,
/* 29056*/            OPC_Scope, 62, /*->29120*/ // 2 children in Scope
/* 29058*/              OPC_MoveParent,
/* 29059*/              OPC_CheckType, MVT::i32,
/* 29061*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 29063*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29071*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29074*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29082*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29085*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29092*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29104*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29111*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 29120*/            /*Scope*/ 64, /*->29185*/
/* 29121*/              OPC_CheckType, MVT::i1,
/* 29123*/              OPC_MoveParent,
/* 29124*/              OPC_CheckType, MVT::i64,
/* 29126*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 29128*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29136*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29139*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29147*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29150*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29157*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29169*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29176*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 29185*/            0, /*End of Scope*/
/* 29186*/          /*Scope*/ 5|128,1/*133*/, /*->29321*/
/* 29188*/            OPC_CheckCondCode, ISD::SETNE,
/* 29190*/            OPC_MoveParent,
/* 29191*/            OPC_Scope, 62, /*->29255*/ // 2 children in Scope
/* 29193*/              OPC_MoveParent,
/* 29194*/              OPC_CheckType, MVT::i32,
/* 29196*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 29198*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29206*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29209*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29217*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29220*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29227*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29239*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29246*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 29255*/            /*Scope*/ 64, /*->29320*/
/* 29256*/              OPC_CheckType, MVT::i1,
/* 29258*/              OPC_MoveParent,
/* 29259*/              OPC_CheckType, MVT::i64,
/* 29261*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 29263*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29271*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29274*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29282*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29285*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29292*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29304*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29311*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 29320*/            0, /*End of Scope*/
/* 29321*/          /*Scope*/ 5|128,1/*133*/, /*->29456*/
/* 29323*/            OPC_CheckCondCode, ISD::SETO,
/* 29325*/            OPC_MoveParent,
/* 29326*/            OPC_Scope, 62, /*->29390*/ // 2 children in Scope
/* 29328*/              OPC_MoveParent,
/* 29329*/              OPC_CheckType, MVT::i32,
/* 29331*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 29333*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29341*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 29344*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29352*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29355*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29362*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29374*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29381*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 29390*/            /*Scope*/ 64, /*->29455*/
/* 29391*/              OPC_CheckType, MVT::i1,
/* 29393*/              OPC_MoveParent,
/* 29394*/              OPC_CheckType, MVT::i64,
/* 29396*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 29398*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29406*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 29409*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29417*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29420*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29427*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29439*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29446*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 29455*/            0, /*End of Scope*/
/* 29456*/          /*Scope*/ 5|128,1/*133*/, /*->29591*/
/* 29458*/            OPC_CheckCondCode, ISD::SETUGE,
/* 29460*/            OPC_MoveParent,
/* 29461*/            OPC_Scope, 62, /*->29525*/ // 2 children in Scope
/* 29463*/              OPC_MoveParent,
/* 29464*/              OPC_CheckType, MVT::i32,
/* 29466*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 29468*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29476*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29479*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29487*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29490*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29497*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29509*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29516*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 29525*/            /*Scope*/ 64, /*->29590*/
/* 29526*/              OPC_CheckType, MVT::i1,
/* 29528*/              OPC_MoveParent,
/* 29529*/              OPC_CheckType, MVT::i64,
/* 29531*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 29533*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29541*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29544*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29552*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29555*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29562*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29574*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29581*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 29590*/            0, /*End of Scope*/
/* 29591*/          /*Scope*/ 5|128,1/*133*/, /*->29726*/
/* 29593*/            OPC_CheckCondCode, ISD::SETGE,
/* 29595*/            OPC_MoveParent,
/* 29596*/            OPC_Scope, 62, /*->29660*/ // 2 children in Scope
/* 29598*/              OPC_MoveParent,
/* 29599*/              OPC_CheckType, MVT::i32,
/* 29601*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 29603*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29611*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29614*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29622*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29625*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29632*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29644*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29651*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 29660*/            /*Scope*/ 64, /*->29725*/
/* 29661*/              OPC_CheckType, MVT::i1,
/* 29663*/              OPC_MoveParent,
/* 29664*/              OPC_CheckType, MVT::i64,
/* 29666*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 29668*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29676*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29679*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29687*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29690*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29697*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29709*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29716*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 29725*/            0, /*End of Scope*/
/* 29726*/          /*Scope*/ 5|128,1/*133*/, /*->29861*/
/* 29728*/            OPC_CheckCondCode, ISD::SETULE,
/* 29730*/            OPC_MoveParent,
/* 29731*/            OPC_Scope, 62, /*->29795*/ // 2 children in Scope
/* 29733*/              OPC_MoveParent,
/* 29734*/              OPC_CheckType, MVT::i32,
/* 29736*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 29738*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29746*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29749*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29757*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29760*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29767*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29779*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29786*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 29795*/            /*Scope*/ 64, /*->29860*/
/* 29796*/              OPC_CheckType, MVT::i1,
/* 29798*/              OPC_MoveParent,
/* 29799*/              OPC_CheckType, MVT::i64,
/* 29801*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 29803*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29811*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29814*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29822*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29825*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29832*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29844*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29851*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 29860*/            0, /*End of Scope*/
/* 29861*/          /*Scope*/ 5|128,1/*133*/, /*->29996*/
/* 29863*/            OPC_CheckCondCode, ISD::SETLE,
/* 29865*/            OPC_MoveParent,
/* 29866*/            OPC_Scope, 62, /*->29930*/ // 2 children in Scope
/* 29868*/              OPC_MoveParent,
/* 29869*/              OPC_CheckType, MVT::i32,
/* 29871*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 29873*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29881*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29884*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29892*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29895*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29902*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29914*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29921*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 29930*/            /*Scope*/ 64, /*->29995*/
/* 29931*/              OPC_CheckType, MVT::i1,
/* 29933*/              OPC_MoveParent,
/* 29934*/              OPC_CheckType, MVT::i64,
/* 29936*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 29938*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29946*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29949*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29957*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29960*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29967*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29979*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29986*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 29995*/            0, /*End of Scope*/
/* 29996*/          /*Scope*/ 5|128,1/*133*/, /*->30131*/
/* 29998*/            OPC_CheckCondCode, ISD::SETUNE,
/* 30000*/            OPC_MoveParent,
/* 30001*/            OPC_Scope, 62, /*->30065*/ // 2 children in Scope
/* 30003*/              OPC_MoveParent,
/* 30004*/              OPC_CheckType, MVT::i32,
/* 30006*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 30008*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30016*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30019*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30027*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30030*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30037*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30049*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30056*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 30065*/            /*Scope*/ 64, /*->30130*/
/* 30066*/              OPC_CheckType, MVT::i1,
/* 30068*/              OPC_MoveParent,
/* 30069*/              OPC_CheckType, MVT::i64,
/* 30071*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 30073*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30081*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30084*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30092*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30095*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30102*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30114*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30121*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 30130*/            0, /*End of Scope*/
/* 30131*/          /*Scope*/ 5|128,1/*133*/, /*->30266*/
/* 30133*/            OPC_CheckCondCode, ISD::SETNE,
/* 30135*/            OPC_MoveParent,
/* 30136*/            OPC_Scope, 62, /*->30200*/ // 2 children in Scope
/* 30138*/              OPC_MoveParent,
/* 30139*/              OPC_CheckType, MVT::i32,
/* 30141*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 30143*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30151*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30154*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30162*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30165*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30172*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30184*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30191*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 30200*/            /*Scope*/ 64, /*->30265*/
/* 30201*/              OPC_CheckType, MVT::i1,
/* 30203*/              OPC_MoveParent,
/* 30204*/              OPC_CheckType, MVT::i64,
/* 30206*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 30208*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30216*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30219*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30227*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30230*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30237*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30249*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30256*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 30265*/            0, /*End of Scope*/
/* 30266*/          0, /*End of Scope*/
/* 30267*/        /*Scope*/ 97|128,13/*1761*/, /*->32030*/
/* 30269*/          OPC_CheckChild0Type, MVT::f64,
/* 30271*/          OPC_RecordChild1, // #1 = $s2
/* 30272*/          OPC_MoveChild2,
/* 30273*/          OPC_Scope, 5|128,1/*133*/, /*->30409*/ // 13 children in Scope
/* 30276*/            OPC_CheckCondCode, ISD::SETUGE,
/* 30278*/            OPC_MoveParent,
/* 30279*/            OPC_Scope, 62, /*->30343*/ // 2 children in Scope
/* 30281*/              OPC_MoveParent,
/* 30282*/              OPC_CheckType, MVT::i32,
/* 30284*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30286*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30294*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 30297*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30305*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30308*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30315*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30327*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30334*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 30343*/            /*Scope*/ 64, /*->30408*/
/* 30344*/              OPC_CheckType, MVT::i1,
/* 30346*/              OPC_MoveParent,
/* 30347*/              OPC_CheckType, MVT::i64,
/* 30349*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30351*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30359*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 30362*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30370*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30373*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30380*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30392*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30399*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 30408*/            0, /*End of Scope*/
/* 30409*/          /*Scope*/ 5|128,1/*133*/, /*->30544*/
/* 30411*/            OPC_CheckCondCode, ISD::SETGE,
/* 30413*/            OPC_MoveParent,
/* 30414*/            OPC_Scope, 62, /*->30478*/ // 2 children in Scope
/* 30416*/              OPC_MoveParent,
/* 30417*/              OPC_CheckType, MVT::i32,
/* 30419*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30421*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30429*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 30432*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30440*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30443*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30450*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30462*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30469*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 30478*/            /*Scope*/ 64, /*->30543*/
/* 30479*/              OPC_CheckType, MVT::i1,
/* 30481*/              OPC_MoveParent,
/* 30482*/              OPC_CheckType, MVT::i64,
/* 30484*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30486*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30494*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 30497*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30505*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30508*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30515*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30527*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30534*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 30543*/            0, /*End of Scope*/
/* 30544*/          /*Scope*/ 5|128,1/*133*/, /*->30679*/
/* 30546*/            OPC_CheckCondCode, ISD::SETULE,
/* 30548*/            OPC_MoveParent,
/* 30549*/            OPC_Scope, 62, /*->30613*/ // 2 children in Scope
/* 30551*/              OPC_MoveParent,
/* 30552*/              OPC_CheckType, MVT::i32,
/* 30554*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30556*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30564*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30567*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30575*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30578*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30585*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30597*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30604*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 30613*/            /*Scope*/ 64, /*->30678*/
/* 30614*/              OPC_CheckType, MVT::i1,
/* 30616*/              OPC_MoveParent,
/* 30617*/              OPC_CheckType, MVT::i64,
/* 30619*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30621*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30629*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30632*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30640*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30643*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30650*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30662*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30669*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 30678*/            0, /*End of Scope*/
/* 30679*/          /*Scope*/ 5|128,1/*133*/, /*->30814*/
/* 30681*/            OPC_CheckCondCode, ISD::SETLE,
/* 30683*/            OPC_MoveParent,
/* 30684*/            OPC_Scope, 62, /*->30748*/ // 2 children in Scope
/* 30686*/              OPC_MoveParent,
/* 30687*/              OPC_CheckType, MVT::i32,
/* 30689*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30691*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30699*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30702*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30710*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30713*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30720*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30732*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30739*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 30748*/            /*Scope*/ 64, /*->30813*/
/* 30749*/              OPC_CheckType, MVT::i1,
/* 30751*/              OPC_MoveParent,
/* 30752*/              OPC_CheckType, MVT::i64,
/* 30754*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30756*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30764*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30767*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30775*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30778*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30785*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30797*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30804*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 30813*/            0, /*End of Scope*/
/* 30814*/          /*Scope*/ 5|128,1/*133*/, /*->30949*/
/* 30816*/            OPC_CheckCondCode, ISD::SETUNE,
/* 30818*/            OPC_MoveParent,
/* 30819*/            OPC_Scope, 62, /*->30883*/ // 2 children in Scope
/* 30821*/              OPC_MoveParent,
/* 30822*/              OPC_CheckType, MVT::i32,
/* 30824*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30826*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30834*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 30837*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30845*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30848*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30855*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30867*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30874*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 30883*/            /*Scope*/ 64, /*->30948*/
/* 30884*/              OPC_CheckType, MVT::i1,
/* 30886*/              OPC_MoveParent,
/* 30887*/              OPC_CheckType, MVT::i64,
/* 30889*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30891*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30899*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 30902*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30910*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30913*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30920*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30932*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30939*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 30948*/            0, /*End of Scope*/
/* 30949*/          /*Scope*/ 5|128,1/*133*/, /*->31084*/
/* 30951*/            OPC_CheckCondCode, ISD::SETNE,
/* 30953*/            OPC_MoveParent,
/* 30954*/            OPC_Scope, 62, /*->31018*/ // 2 children in Scope
/* 30956*/              OPC_MoveParent,
/* 30957*/              OPC_CheckType, MVT::i32,
/* 30959*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 30961*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30969*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 30972*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30980*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30983*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30990*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31002*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31009*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 31018*/            /*Scope*/ 64, /*->31083*/
/* 31019*/              OPC_CheckType, MVT::i1,
/* 31021*/              OPC_MoveParent,
/* 31022*/              OPC_CheckType, MVT::i64,
/* 31024*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 31026*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31034*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 31037*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31045*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31048*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31055*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31067*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31074*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 31083*/            0, /*End of Scope*/
/* 31084*/          /*Scope*/ 5|128,1/*133*/, /*->31219*/
/* 31086*/            OPC_CheckCondCode, ISD::SETO,
/* 31088*/            OPC_MoveParent,
/* 31089*/            OPC_Scope, 62, /*->31153*/ // 2 children in Scope
/* 31091*/              OPC_MoveParent,
/* 31092*/              OPC_CheckType, MVT::i32,
/* 31094*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 31096*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31104*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 31107*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31115*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31118*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31125*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31137*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31144*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 31153*/            /*Scope*/ 64, /*->31218*/
/* 31154*/              OPC_CheckType, MVT::i1,
/* 31156*/              OPC_MoveParent,
/* 31157*/              OPC_CheckType, MVT::i64,
/* 31159*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 31161*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31169*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 31172*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31180*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31183*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31190*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31202*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31209*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 31218*/            0, /*End of Scope*/
/* 31219*/          /*Scope*/ 5|128,1/*133*/, /*->31354*/
/* 31221*/            OPC_CheckCondCode, ISD::SETUGE,
/* 31223*/            OPC_MoveParent,
/* 31224*/            OPC_Scope, 62, /*->31288*/ // 2 children in Scope
/* 31226*/              OPC_MoveParent,
/* 31227*/              OPC_CheckType, MVT::i32,
/* 31229*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31231*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31239*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31242*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31250*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31253*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31260*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31272*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31279*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 31288*/            /*Scope*/ 64, /*->31353*/
/* 31289*/              OPC_CheckType, MVT::i1,
/* 31291*/              OPC_MoveParent,
/* 31292*/              OPC_CheckType, MVT::i64,
/* 31294*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31296*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31304*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31307*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31315*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31318*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31325*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31337*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31344*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 31353*/            0, /*End of Scope*/
/* 31354*/          /*Scope*/ 5|128,1/*133*/, /*->31489*/
/* 31356*/            OPC_CheckCondCode, ISD::SETGE,
/* 31358*/            OPC_MoveParent,
/* 31359*/            OPC_Scope, 62, /*->31423*/ // 2 children in Scope
/* 31361*/              OPC_MoveParent,
/* 31362*/              OPC_CheckType, MVT::i32,
/* 31364*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31366*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31374*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31377*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31385*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31388*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31395*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31407*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31414*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 31423*/            /*Scope*/ 64, /*->31488*/
/* 31424*/              OPC_CheckType, MVT::i1,
/* 31426*/              OPC_MoveParent,
/* 31427*/              OPC_CheckType, MVT::i64,
/* 31429*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31431*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31439*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31442*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31450*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31453*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31460*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31472*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31479*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 31488*/            0, /*End of Scope*/
/* 31489*/          /*Scope*/ 5|128,1/*133*/, /*->31624*/
/* 31491*/            OPC_CheckCondCode, ISD::SETULE,
/* 31493*/            OPC_MoveParent,
/* 31494*/            OPC_Scope, 62, /*->31558*/ // 2 children in Scope
/* 31496*/              OPC_MoveParent,
/* 31497*/              OPC_CheckType, MVT::i32,
/* 31499*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31501*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31509*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31512*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31520*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31523*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31530*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31542*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31549*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 31558*/            /*Scope*/ 64, /*->31623*/
/* 31559*/              OPC_CheckType, MVT::i1,
/* 31561*/              OPC_MoveParent,
/* 31562*/              OPC_CheckType, MVT::i64,
/* 31564*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31566*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31574*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31577*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31585*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31588*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31595*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31607*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31614*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 31623*/            0, /*End of Scope*/
/* 31624*/          /*Scope*/ 5|128,1/*133*/, /*->31759*/
/* 31626*/            OPC_CheckCondCode, ISD::SETLE,
/* 31628*/            OPC_MoveParent,
/* 31629*/            OPC_Scope, 62, /*->31693*/ // 2 children in Scope
/* 31631*/              OPC_MoveParent,
/* 31632*/              OPC_CheckType, MVT::i32,
/* 31634*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31636*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31644*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31647*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31655*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31658*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31665*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31677*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31684*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 31693*/            /*Scope*/ 64, /*->31758*/
/* 31694*/              OPC_CheckType, MVT::i1,
/* 31696*/              OPC_MoveParent,
/* 31697*/              OPC_CheckType, MVT::i64,
/* 31699*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31701*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31709*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31712*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31720*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31723*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31730*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31742*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31749*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 31758*/            0, /*End of Scope*/
/* 31759*/          /*Scope*/ 5|128,1/*133*/, /*->31894*/
/* 31761*/            OPC_CheckCondCode, ISD::SETUNE,
/* 31763*/            OPC_MoveParent,
/* 31764*/            OPC_Scope, 62, /*->31828*/ // 2 children in Scope
/* 31766*/              OPC_MoveParent,
/* 31767*/              OPC_CheckType, MVT::i32,
/* 31769*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31771*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31779*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31782*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31790*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31793*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31800*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31812*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31819*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 31828*/            /*Scope*/ 64, /*->31893*/
/* 31829*/              OPC_CheckType, MVT::i1,
/* 31831*/              OPC_MoveParent,
/* 31832*/              OPC_CheckType, MVT::i64,
/* 31834*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31836*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31844*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31847*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31855*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31858*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31865*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31877*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31884*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 31893*/            0, /*End of Scope*/
/* 31894*/          /*Scope*/ 5|128,1/*133*/, /*->32029*/
/* 31896*/            OPC_CheckCondCode, ISD::SETNE,
/* 31898*/            OPC_MoveParent,
/* 31899*/            OPC_Scope, 62, /*->31963*/ // 2 children in Scope
/* 31901*/              OPC_MoveParent,
/* 31902*/              OPC_CheckType, MVT::i32,
/* 31904*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31906*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31914*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31917*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31925*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31928*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31935*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31947*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31954*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 31963*/            /*Scope*/ 64, /*->32028*/
/* 31964*/              OPC_CheckType, MVT::i1,
/* 31966*/              OPC_MoveParent,
/* 31967*/              OPC_CheckType, MVT::i64,
/* 31969*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 31971*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31979*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31982*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31990*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31993*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32000*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32012*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32019*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 32028*/            0, /*End of Scope*/
/* 32029*/          0, /*End of Scope*/
/* 32030*/        /*Scope*/ 55|128,7/*951*/, /*->32983*/
/* 32032*/          OPC_CheckChild0Type, MVT::f128,
/* 32034*/          OPC_RecordChild1, // #1 = $s2
/* 32035*/          OPC_MoveChild2,
/* 32036*/          OPC_Scope, 5|128,1/*133*/, /*->32172*/ // 7 children in Scope
/* 32039*/            OPC_CheckCondCode, ISD::SETUGE,
/* 32041*/            OPC_MoveParent,
/* 32042*/            OPC_Scope, 62, /*->32106*/ // 2 children in Scope
/* 32044*/              OPC_MoveParent,
/* 32045*/              OPC_CheckType, MVT::i32,
/* 32047*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32049*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32057*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 32060*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32068*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32071*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32078*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32090*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32097*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 32106*/            /*Scope*/ 64, /*->32171*/
/* 32107*/              OPC_CheckType, MVT::i1,
/* 32109*/              OPC_MoveParent,
/* 32110*/              OPC_CheckType, MVT::i64,
/* 32112*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32114*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32122*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 32125*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32133*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32136*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32143*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32155*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32162*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 32171*/            0, /*End of Scope*/
/* 32172*/          /*Scope*/ 5|128,1/*133*/, /*->32307*/
/* 32174*/            OPC_CheckCondCode, ISD::SETGE,
/* 32176*/            OPC_MoveParent,
/* 32177*/            OPC_Scope, 62, /*->32241*/ // 2 children in Scope
/* 32179*/              OPC_MoveParent,
/* 32180*/              OPC_CheckType, MVT::i32,
/* 32182*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32184*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32192*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 32195*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32203*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32206*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32213*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32225*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32232*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 32241*/            /*Scope*/ 64, /*->32306*/
/* 32242*/              OPC_CheckType, MVT::i1,
/* 32244*/              OPC_MoveParent,
/* 32245*/              OPC_CheckType, MVT::i64,
/* 32247*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32249*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32257*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 32260*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32268*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32271*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32278*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32290*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32297*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 32306*/            0, /*End of Scope*/
/* 32307*/          /*Scope*/ 5|128,1/*133*/, /*->32442*/
/* 32309*/            OPC_CheckCondCode, ISD::SETULE,
/* 32311*/            OPC_MoveParent,
/* 32312*/            OPC_Scope, 62, /*->32376*/ // 2 children in Scope
/* 32314*/              OPC_MoveParent,
/* 32315*/              OPC_CheckType, MVT::i32,
/* 32317*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32319*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32327*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32330*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32338*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32341*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32348*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32360*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32367*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 32376*/            /*Scope*/ 64, /*->32441*/
/* 32377*/              OPC_CheckType, MVT::i1,
/* 32379*/              OPC_MoveParent,
/* 32380*/              OPC_CheckType, MVT::i64,
/* 32382*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32384*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32392*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32395*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32403*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32406*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32413*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32425*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32432*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETULE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 32441*/            0, /*End of Scope*/
/* 32442*/          /*Scope*/ 5|128,1/*133*/, /*->32577*/
/* 32444*/            OPC_CheckCondCode, ISD::SETLE,
/* 32446*/            OPC_MoveParent,
/* 32447*/            OPC_Scope, 62, /*->32511*/ // 2 children in Scope
/* 32449*/              OPC_MoveParent,
/* 32450*/              OPC_CheckType, MVT::i32,
/* 32452*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32454*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32462*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32465*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32473*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32476*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32483*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32495*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32502*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 32511*/            /*Scope*/ 64, /*->32576*/
/* 32512*/              OPC_CheckType, MVT::i1,
/* 32514*/              OPC_MoveParent,
/* 32515*/              OPC_CheckType, MVT::i64,
/* 32517*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32519*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32527*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32530*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32538*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32541*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32548*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32560*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32567*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 32576*/            0, /*End of Scope*/
/* 32577*/          /*Scope*/ 5|128,1/*133*/, /*->32712*/
/* 32579*/            OPC_CheckCondCode, ISD::SETUNE,
/* 32581*/            OPC_MoveParent,
/* 32582*/            OPC_Scope, 62, /*->32646*/ // 2 children in Scope
/* 32584*/              OPC_MoveParent,
/* 32585*/              OPC_CheckType, MVT::i32,
/* 32587*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32589*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32597*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 32600*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32608*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32611*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32618*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32630*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32637*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 32646*/            /*Scope*/ 64, /*->32711*/
/* 32647*/              OPC_CheckType, MVT::i1,
/* 32649*/              OPC_MoveParent,
/* 32650*/              OPC_CheckType, MVT::i64,
/* 32652*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32654*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32662*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 32665*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32673*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32676*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32683*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32695*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32702*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 32711*/            0, /*End of Scope*/
/* 32712*/          /*Scope*/ 5|128,1/*133*/, /*->32847*/
/* 32714*/            OPC_CheckCondCode, ISD::SETNE,
/* 32716*/            OPC_MoveParent,
/* 32717*/            OPC_Scope, 62, /*->32781*/ // 2 children in Scope
/* 32719*/              OPC_MoveParent,
/* 32720*/              OPC_CheckType, MVT::i32,
/* 32722*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32724*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32732*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 32735*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32743*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32746*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32753*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32765*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32772*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 32781*/            /*Scope*/ 64, /*->32846*/
/* 32782*/              OPC_CheckType, MVT::i1,
/* 32784*/              OPC_MoveParent,
/* 32785*/              OPC_CheckType, MVT::i64,
/* 32787*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32789*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32797*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 32800*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32808*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32811*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32818*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32830*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32837*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETNE:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 32846*/            0, /*End of Scope*/
/* 32847*/          /*Scope*/ 5|128,1/*133*/, /*->32982*/
/* 32849*/            OPC_CheckCondCode, ISD::SETO,
/* 32851*/            OPC_MoveParent,
/* 32852*/            OPC_Scope, 62, /*->32916*/ // 2 children in Scope
/* 32854*/              OPC_MoveParent,
/* 32855*/              OPC_CheckType, MVT::i32,
/* 32857*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32859*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32867*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 32870*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32878*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32881*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32888*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32900*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32907*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                            MVT::i32, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i32] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I4:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }), (LI:{ *:[i32] } -1:{ *:[i32] }))
/* 32916*/            /*Scope*/ 64, /*->32981*/
/* 32917*/              OPC_CheckType, MVT::i1,
/* 32919*/              OPC_MoveParent,
/* 32920*/              OPC_CheckType, MVT::i64,
/* 32922*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 32924*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32932*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 32935*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32943*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32946*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32953*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32965*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32972*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                            MVT::i64, 3/*#Ops*/, 4, 6, 8, 
                        // Src: (sext:{ *:[i64] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETO:{ *:[Other] })) - Complexity = 6
                        // Dst: (SELECT_I8:{ *:[i64] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] }), (LI8:{ *:[i64] } 0:{ *:[i64] }), (LI8:{ *:[i64] } -1:{ *:[i64] }))
/* 32981*/            0, /*End of Scope*/
/* 32982*/          0, /*End of Scope*/
/* 32983*/        0, /*End of Scope*/
/* 32984*/      0, // EndSwitchOpcode
/* 32985*/    /*Scope*/ 98, /*->33084*/
/* 32986*/      OPC_RecordChild0, // #0 = $rS
/* 32987*/      OPC_SwitchType /*2 cases */, 53, MVT::i64,// ->33043
/* 32990*/        OPC_Scope, 9, /*->33001*/ // 2 children in Scope
/* 32992*/          OPC_CheckChild0Type, MVT::i32,
/* 32994*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW_32_64), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[i64] } i32:{ *:[i32] }:$rS) - Complexity = 3
                    // Dst: (EXTSW_32_64:{ *:[i64] } i32:{ *:[i32] }:$rS)
/* 33001*/        /*Scope*/ 40, /*->33042*/
/* 33002*/          OPC_CheckChild0Type, MVT::i1,
/* 33004*/          OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33016*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 33023*/          OPC_EmitInteger, MVT::i64, 0, 
/* 33026*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 33033*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                        MVT::i64, 3/*#Ops*/, 0, 2, 4, 
                    // Src: (sext:{ *:[i64] } i1:{ *:[i1] }:$in) - Complexity = 3
                    // Dst: (SELECT_I8:{ *:[i64] } ?:{ *:[i1] }:$in, (LI8:{ *:[i64] } -1:{ *:[i64] }), (LI8:{ *:[i64] } 0:{ *:[i64] }))
/* 33042*/        0, /*End of Scope*/
/* 33043*/      /*SwitchType*/ 38, MVT::i32,// ->33083
/* 33045*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33057*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #2
/* 33064*/        OPC_EmitInteger, MVT::i32, 0, 
/* 33067*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 33074*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                      MVT::i32, 3/*#Ops*/, 0, 2, 4, 
                  // Src: (sext:{ *:[i32] } i1:{ *:[i1] }:$in) - Complexity = 3
                  // Dst: (SELECT_I4:{ *:[i32] } ?:{ *:[i1] }:$in, (LI:{ *:[i32] } -1:{ *:[i32] }), (LI:{ *:[i32] } 0:{ *:[i32] }))
/* 33083*/      0, // EndSwitchType
/* 33084*/    0, /*End of Scope*/
/* 33085*/  /*SwitchOpcode*/ 102|128,62/*8038*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->41127
/* 33089*/    OPC_RecordChild0, // #0 = $A
/* 33090*/    OPC_Scope, 28|128,5/*668*/, /*->33761*/ // 29 children in Scope
/* 33093*/      OPC_CheckChild1Integer, 1, 
/* 33095*/      OPC_SwitchType /*2 cases */, 104, MVT::i64,// ->33202
/* 33098*/        OPC_Scope, 9, /*->33109*/ // 2 children in Scope
/* 33100*/          OPC_CheckPatternPredicate, 17, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0())
/* 33102*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRLD), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (MFVSRLD:{ *:[i64] } ?:{ *:[v2i64] }:$A)
/* 33109*/        /*Scope*/ 91, /*->33201*/
/* 33110*/          OPC_CheckChild0Type, MVT::v2i64,
/* 33112*/          OPC_Scope, 31, /*->33145*/ // 2 children in Scope
/* 33114*/            OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/* 33116*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33119*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33127*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33130*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33138*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4, 
                      // Src: (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 33145*/          /*Scope*/ 54, /*->33200*/
/* 33146*/            OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/* 33148*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33151*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33159*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33162*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 33170*/            OPC_EmitInteger, MVT::i32, 2, 
/* 33173*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 33182*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33185*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 33193*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8, 
                      // Src: (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 33200*/          0, /*End of Scope*/
/* 33201*/        0, /*End of Scope*/
/* 33202*/      /*SwitchType*/ 43|128,4/*555*/, MVT::i32,// ->33760
/* 33205*/        OPC_Scope, 5|128,1/*133*/, /*->33341*/ // 3 children in Scope
/* 33208*/          OPC_CheckChild0Type, MVT::v4i32,
/* 33210*/          OPC_Scope, 31, /*->33243*/ // 4 children in Scope
/* 33212*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 33214*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33217*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33225*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33228*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33236*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 4, 
                      // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 33243*/          /*Scope*/ 31, /*->33275*/
/* 33244*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 33246*/            OPC_EmitInteger, MVT::i64, 4, 
/* 33249*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 33256*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 33264*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33267*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v4i32] }:$S), sub_32:{ *:[i32] })
/* 33275*/          /*Scope*/ 31, /*->33307*/
/* 33276*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 33278*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33281*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33289*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33292*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33300*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 4, 
                      // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 33307*/          /*Scope*/ 32, /*->33340*/
/* 33308*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 33310*/            OPC_EmitInteger, MVT::i32, 1, 
/* 33313*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 33322*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33325*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33333*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 4, 
                      // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$S, ?:{ *:[v4i32] }:$S, 1:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 33340*/          0, /*End of Scope*/
/* 33341*/        /*Scope*/ 79|128,1/*207*/, /*->33550*/
/* 33343*/          OPC_CheckChild0Type, MVT::v16i8,
/* 33345*/          OPC_Scope, 31, /*->33378*/ // 4 children in Scope
/* 33347*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 33349*/            OPC_EmitInteger, MVT::i64, 1, 
/* 33352*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 33359*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 33367*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33370*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 1:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 33378*/          /*Scope*/ 31, /*->33410*/
/* 33379*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 33381*/            OPC_EmitInteger, MVT::i64, 1, 
/* 33384*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 33391*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 33399*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33402*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 1:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 33410*/          /*Scope*/ 57, /*->33468*/
/* 33411*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 33413*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33416*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33424*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33427*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33435*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 33442*/            OPC_EmitInteger, MVT::i32, 16, 
/* 33445*/            OPC_EmitInteger, MVT::i32, 56, 
/* 33448*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 33457*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33460*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 8, 9, 
                      // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 16:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 33468*/          /*Scope*/ 80, /*->33549*/
/* 33469*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 33471*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33474*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33482*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33485*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 33493*/            OPC_EmitInteger, MVT::i32, 2, 
/* 33496*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 33505*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33508*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 33516*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 33523*/            OPC_EmitInteger, MVT::i32, 56, 
/* 33526*/            OPC_EmitInteger, MVT::i32, 56, 
/* 33529*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 33538*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33541*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 12, 13, 
                      // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 56:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 33549*/          0, /*End of Scope*/
/* 33550*/        /*Scope*/ 79|128,1/*207*/, /*->33759*/
/* 33552*/          OPC_CheckChild0Type, MVT::v8i16,
/* 33554*/          OPC_Scope, 31, /*->33587*/ // 4 children in Scope
/* 33556*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 33558*/            OPC_EmitInteger, MVT::i64, 2, 
/* 33561*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 33568*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 33576*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33579*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 2:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 33587*/          /*Scope*/ 31, /*->33619*/
/* 33588*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 33590*/            OPC_EmitInteger, MVT::i64, 2, 
/* 33593*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 33600*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 33608*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33611*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 2:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 33619*/          /*Scope*/ 57, /*->33677*/
/* 33620*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 33622*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33625*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33633*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33636*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33644*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 33651*/            OPC_EmitInteger, MVT::i32, 32, 
/* 33654*/            OPC_EmitInteger, MVT::i32, 48, 
/* 33657*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 33666*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33669*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 8, 9, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 32:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 33677*/          /*Scope*/ 80, /*->33758*/
/* 33678*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 33680*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33683*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33691*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33694*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 33702*/            OPC_EmitInteger, MVT::i32, 2, 
/* 33705*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 33714*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33717*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 33725*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 33732*/            OPC_EmitInteger, MVT::i32, 48, 
/* 33735*/            OPC_EmitInteger, MVT::i32, 48, 
/* 33738*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 33747*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33750*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 12, 13, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 48:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 33758*/          0, /*End of Scope*/
/* 33759*/        0, /*End of Scope*/
/* 33760*/      0, // EndSwitchType
/* 33761*/    /*Scope*/ 29|128,5/*669*/, /*->34432*/
/* 33763*/      OPC_CheckChild1Integer, 0, 
/* 33765*/      OPC_SwitchType /*2 cases */, 104, MVT::i64,// ->33872
/* 33768*/        OPC_Scope, 9, /*->33779*/ // 2 children in Scope
/* 33770*/          OPC_CheckPatternPredicate, 22, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian())
/* 33772*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRLD), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (MFVSRLD:{ *:[i64] } ?:{ *:[v2i64] }:$A)
/* 33779*/        /*Scope*/ 91, /*->33871*/
/* 33780*/          OPC_CheckChild0Type, MVT::v2i64,
/* 33782*/          OPC_Scope, 31, /*->33815*/ // 2 children in Scope
/* 33784*/            OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/* 33786*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33789*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33797*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33800*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33808*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4, 
                      // Src: (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 33815*/          /*Scope*/ 54, /*->33870*/
/* 33816*/            OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/* 33818*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33821*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33829*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 33832*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 33840*/            OPC_EmitInteger, MVT::i32, 2, 
/* 33843*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 33852*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33855*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 33863*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8, 
                      // Src: (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 33870*/          0, /*End of Scope*/
/* 33871*/        0, /*End of Scope*/
/* 33872*/      /*SwitchType*/ 44|128,4/*556*/, MVT::i32,// ->34431
/* 33875*/        OPC_Scope, 6|128,1/*134*/, /*->34012*/ // 3 children in Scope
/* 33878*/          OPC_CheckChild0Type, MVT::v4i32,
/* 33880*/          OPC_Scope, 32, /*->33914*/ // 4 children in Scope
/* 33882*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 33884*/            OPC_EmitInteger, MVT::i32, 3, 
/* 33887*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 33896*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33899*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33907*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 4, 
                      // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$S, ?:{ *:[v4i32] }:$S, 3:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 33914*/          /*Scope*/ 31, /*->33946*/
/* 33915*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 33917*/            OPC_EmitInteger, MVT::i64, 0, 
/* 33920*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 33927*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 33935*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33938*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v4i32] }:$S), sub_32:{ *:[i32] })
/* 33946*/          /*Scope*/ 31, /*->33978*/
/* 33947*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 33949*/            OPC_EmitInteger, MVT::i64, 0, 
/* 33952*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 33959*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 33967*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 33970*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v4i32] }:$S), sub_32:{ *:[i32] })
/* 33978*/          /*Scope*/ 32, /*->34011*/
/* 33979*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 33981*/            OPC_EmitInteger, MVT::i32, 2, 
/* 33984*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 33993*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 33996*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34004*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 4, 
                      // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v4i32] }:$S, ?:{ *:[v4i32] }:$S, 2:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 34011*/          0, /*End of Scope*/
/* 34012*/        /*Scope*/ 79|128,1/*207*/, /*->34221*/
/* 34014*/          OPC_CheckChild0Type, MVT::v16i8,
/* 34016*/          OPC_Scope, 31, /*->34049*/ // 4 children in Scope
/* 34018*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 34020*/            OPC_EmitInteger, MVT::i64, 0, 
/* 34023*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34030*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34038*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34041*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 34049*/          /*Scope*/ 31, /*->34081*/
/* 34050*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 34052*/            OPC_EmitInteger, MVT::i64, 0, 
/* 34055*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34062*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34070*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34073*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 34081*/          /*Scope*/ 57, /*->34139*/
/* 34082*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34084*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34087*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34095*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34098*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34106*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 34113*/            OPC_EmitInteger, MVT::i32, 8, 
/* 34116*/            OPC_EmitInteger, MVT::i32, 56, 
/* 34119*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 34128*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34131*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 8, 9, 
                      // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 8:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 34139*/          /*Scope*/ 80, /*->34220*/
/* 34140*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34142*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34145*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34153*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34156*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 34164*/            OPC_EmitInteger, MVT::i32, 2, 
/* 34167*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 34176*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34179*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 34187*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 34194*/            OPC_EmitInteger, MVT::i32, 0, 
/* 34197*/            OPC_EmitInteger, MVT::i32, 56, 
/* 34200*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 34209*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34212*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 12, 13, 
                      // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 0:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 34220*/          0, /*End of Scope*/
/* 34221*/        /*Scope*/ 79|128,1/*207*/, /*->34430*/
/* 34223*/          OPC_CheckChild0Type, MVT::v8i16,
/* 34225*/          OPC_Scope, 31, /*->34258*/ // 4 children in Scope
/* 34227*/            OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 34229*/            OPC_EmitInteger, MVT::i64, 0, 
/* 34232*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34239*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34247*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34250*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 34258*/          /*Scope*/ 31, /*->34290*/
/* 34259*/            OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 34261*/            OPC_EmitInteger, MVT::i64, 0, 
/* 34264*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34271*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34279*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34282*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 0:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 34290*/          /*Scope*/ 57, /*->34348*/
/* 34291*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34293*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34296*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34304*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34307*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34315*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 34322*/            OPC_EmitInteger, MVT::i32, 16, 
/* 34325*/            OPC_EmitInteger, MVT::i32, 48, 
/* 34328*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 34337*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34340*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 8, 9, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 16:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 34348*/          /*Scope*/ 80, /*->34429*/
/* 34349*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34351*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34354*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34362*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34365*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 34373*/            OPC_EmitInteger, MVT::i32, 2, 
/* 34376*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 34385*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34388*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 34396*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 34403*/            OPC_EmitInteger, MVT::i32, 0, 
/* 34406*/            OPC_EmitInteger, MVT::i32, 48, 
/* 34409*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 34418*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34421*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 12, 13, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 0:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 34429*/          0, /*End of Scope*/
/* 34430*/        0, /*End of Scope*/
/* 34431*/      0, // EndSwitchType
/* 34432*/    /*Scope*/ 47|128,4/*559*/, /*->34993*/
/* 34434*/      OPC_CheckChild1Integer, 2, 
/* 34436*/      OPC_CheckType, MVT::i32,
/* 34438*/      OPC_Scope, 5|128,1/*133*/, /*->34574*/ // 3 children in Scope
/* 34441*/        OPC_CheckChild0Type, MVT::v4i32,
/* 34443*/        OPC_Scope, 32, /*->34477*/ // 4 children in Scope
/* 34445*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34447*/          OPC_EmitInteger, MVT::i32, 1, 
/* 34450*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 34459*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34462*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34470*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                        MVT::i32, 1/*#Ops*/, 4, 
                    // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$S, ?:{ *:[v4i32] }:$S, 1:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 34477*/        /*Scope*/ 31, /*->34509*/
/* 34478*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 34480*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34483*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34491*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34494*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34502*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                        MVT::i32, 1/*#Ops*/, 4, 
                    // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 34509*/        /*Scope*/ 31, /*->34541*/
/* 34510*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 34512*/          OPC_EmitInteger, MVT::i64, 8, 
/* 34515*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34522*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34530*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34533*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v4i32] }:$S), sub_32:{ *:[i32] })
/* 34541*/        /*Scope*/ 31, /*->34573*/
/* 34542*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34544*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34547*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34555*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34558*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34566*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                        MVT::i32, 1/*#Ops*/, 4, 
                    // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 34573*/        0, /*End of Scope*/
/* 34574*/      /*Scope*/ 79|128,1/*207*/, /*->34783*/
/* 34576*/        OPC_CheckChild0Type, MVT::v16i8,
/* 34578*/        OPC_Scope, 31, /*->34611*/ // 4 children in Scope
/* 34580*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 34582*/          OPC_EmitInteger, MVT::i64, 2, 
/* 34585*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34592*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34600*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34603*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 2:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 34611*/        /*Scope*/ 31, /*->34643*/
/* 34612*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 34614*/          OPC_EmitInteger, MVT::i64, 2, 
/* 34617*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34624*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34632*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34635*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 2:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 34643*/        /*Scope*/ 57, /*->34701*/
/* 34644*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34646*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34649*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34657*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34660*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34668*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 34675*/          OPC_EmitInteger, MVT::i32, 24, 
/* 34678*/          OPC_EmitInteger, MVT::i32, 56, 
/* 34681*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 34690*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34693*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 24:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 34701*/        /*Scope*/ 80, /*->34782*/
/* 34702*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34704*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34707*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34715*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34718*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 34726*/          OPC_EmitInteger, MVT::i32, 2, 
/* 34729*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 34738*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34741*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 34749*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 34756*/          OPC_EmitInteger, MVT::i32, 48, 
/* 34759*/          OPC_EmitInteger, MVT::i32, 56, 
/* 34762*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 34771*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34774*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 48:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 34782*/        0, /*End of Scope*/
/* 34783*/      /*Scope*/ 79|128,1/*207*/, /*->34992*/
/* 34785*/        OPC_CheckChild0Type, MVT::v8i16,
/* 34787*/        OPC_Scope, 31, /*->34820*/ // 4 children in Scope
/* 34789*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 34791*/          OPC_EmitInteger, MVT::i64, 4, 
/* 34794*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34801*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34809*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34812*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 34820*/        /*Scope*/ 31, /*->34852*/
/* 34821*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 34823*/          OPC_EmitInteger, MVT::i64, 4, 
/* 34826*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34833*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 34841*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34844*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 34852*/        /*Scope*/ 57, /*->34910*/
/* 34853*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34855*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34858*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34866*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34869*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34877*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 34884*/          OPC_EmitInteger, MVT::i32, 48, 
/* 34887*/          OPC_EmitInteger, MVT::i32, 48, 
/* 34890*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 34899*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34902*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 48:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 34910*/        /*Scope*/ 80, /*->34991*/
/* 34911*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 34913*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34916*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34924*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34927*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 34935*/          OPC_EmitInteger, MVT::i32, 2, 
/* 34938*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 34947*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34950*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 34958*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 34965*/          OPC_EmitInteger, MVT::i32, 32, 
/* 34968*/          OPC_EmitInteger, MVT::i32, 48, 
/* 34971*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 34980*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 34983*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 32:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 34991*/        0, /*End of Scope*/
/* 34992*/      0, /*End of Scope*/
/* 34993*/    /*Scope*/ 48|128,4/*560*/, /*->35555*/
/* 34995*/      OPC_CheckChild1Integer, 3, 
/* 34997*/      OPC_CheckType, MVT::i32,
/* 34999*/      OPC_Scope, 6|128,1/*134*/, /*->35136*/ // 3 children in Scope
/* 35002*/        OPC_CheckChild0Type, MVT::v4i32,
/* 35004*/        OPC_Scope, 32, /*->35038*/ // 4 children in Scope
/* 35006*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35008*/          OPC_EmitInteger, MVT::i32, 2, 
/* 35011*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 35020*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35023*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35031*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                        MVT::i32, 1/*#Ops*/, 4, 
                    // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v4i32] }:$S, ?:{ *:[v4i32] }:$S, 2:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 35038*/        /*Scope*/ 31, /*->35070*/
/* 35039*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35041*/          OPC_EmitInteger, MVT::i64, 12, 
/* 35044*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35051*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35059*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35062*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUWRX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v4i32] }:$S), sub_32:{ *:[i32] })
/* 35070*/        /*Scope*/ 31, /*->35102*/
/* 35071*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35073*/          OPC_EmitInteger, MVT::i64, 12, 
/* 35076*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35083*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35091*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35094*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUWLX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v4i32] }:$S), sub_32:{ *:[i32] })
/* 35102*/        /*Scope*/ 32, /*->35135*/
/* 35103*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35105*/          OPC_EmitInteger, MVT::i32, 3, 
/* 35108*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 35117*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35120*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35128*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                        MVT::i32, 1/*#Ops*/, 4, 
                    // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$S, ?:{ *:[v4i32] }:$S, 3:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 35135*/        0, /*End of Scope*/
/* 35136*/      /*Scope*/ 79|128,1/*207*/, /*->35345*/
/* 35138*/        OPC_CheckChild0Type, MVT::v16i8,
/* 35140*/        OPC_Scope, 31, /*->35173*/ // 4 children in Scope
/* 35142*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35144*/          OPC_EmitInteger, MVT::i64, 3, 
/* 35147*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35154*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35162*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35165*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 3:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 35173*/        /*Scope*/ 31, /*->35205*/
/* 35174*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35176*/          OPC_EmitInteger, MVT::i64, 3, 
/* 35179*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35186*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35194*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35197*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 3:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 35205*/        /*Scope*/ 57, /*->35263*/
/* 35206*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35208*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35211*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35219*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35222*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35230*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 35237*/          OPC_EmitInteger, MVT::i32, 32, 
/* 35240*/          OPC_EmitInteger, MVT::i32, 56, 
/* 35243*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 35252*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35255*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 32:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 35263*/        /*Scope*/ 80, /*->35344*/
/* 35264*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35266*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35269*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35277*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35280*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 35288*/          OPC_EmitInteger, MVT::i32, 2, 
/* 35291*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 35300*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35303*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 35311*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 35318*/          OPC_EmitInteger, MVT::i32, 40, 
/* 35321*/          OPC_EmitInteger, MVT::i32, 56, 
/* 35324*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 35333*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35336*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 40:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 35344*/        0, /*End of Scope*/
/* 35345*/      /*Scope*/ 79|128,1/*207*/, /*->35554*/
/* 35347*/        OPC_CheckChild0Type, MVT::v8i16,
/* 35349*/        OPC_Scope, 31, /*->35382*/ // 4 children in Scope
/* 35351*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35353*/          OPC_EmitInteger, MVT::i64, 6, 
/* 35356*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35363*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35371*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35374*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 6:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 35382*/        /*Scope*/ 31, /*->35414*/
/* 35383*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35385*/          OPC_EmitInteger, MVT::i64, 6, 
/* 35388*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35395*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35403*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35406*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 6:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 35414*/        /*Scope*/ 57, /*->35472*/
/* 35415*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35417*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35420*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35428*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35431*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35439*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 35446*/          OPC_EmitInteger, MVT::i32, 0, 
/* 35449*/          OPC_EmitInteger, MVT::i32, 48, 
/* 35452*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 35461*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35464*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 0:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 35472*/        /*Scope*/ 80, /*->35553*/
/* 35473*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35475*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35478*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35486*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35489*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 35497*/          OPC_EmitInteger, MVT::i32, 2, 
/* 35500*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 35509*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35512*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 35520*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 35527*/          OPC_EmitInteger, MVT::i32, 16, 
/* 35530*/          OPC_EmitInteger, MVT::i32, 48, 
/* 35533*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 35542*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35545*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 16:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 35553*/        0, /*End of Scope*/
/* 35554*/      0, /*End of Scope*/
/* 35555*/    /*Scope*/ 40|128,3/*424*/, /*->35981*/
/* 35557*/      OPC_CheckChild1Integer, 4, 
/* 35559*/      OPC_CheckType, MVT::i32,
/* 35561*/      OPC_Scope, 79|128,1/*207*/, /*->35771*/ // 2 children in Scope
/* 35564*/        OPC_CheckChild0Type, MVT::v16i8,
/* 35566*/        OPC_Scope, 31, /*->35599*/ // 4 children in Scope
/* 35568*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35570*/          OPC_EmitInteger, MVT::i64, 4, 
/* 35573*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35580*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35588*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35591*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 4:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 35599*/        /*Scope*/ 31, /*->35631*/
/* 35600*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35602*/          OPC_EmitInteger, MVT::i64, 4, 
/* 35605*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35612*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35620*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35623*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 4:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 35631*/        /*Scope*/ 57, /*->35689*/
/* 35632*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35634*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35637*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35645*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35648*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35656*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 35663*/          OPC_EmitInteger, MVT::i32, 40, 
/* 35666*/          OPC_EmitInteger, MVT::i32, 56, 
/* 35669*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 35678*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35681*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 4:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 40:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 35689*/        /*Scope*/ 80, /*->35770*/
/* 35690*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35692*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35695*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35703*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35706*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 35714*/          OPC_EmitInteger, MVT::i32, 2, 
/* 35717*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 35726*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35729*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 35737*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 35744*/          OPC_EmitInteger, MVT::i32, 32, 
/* 35747*/          OPC_EmitInteger, MVT::i32, 56, 
/* 35750*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 35759*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35762*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 4:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 32:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 35770*/        0, /*End of Scope*/
/* 35771*/      /*Scope*/ 79|128,1/*207*/, /*->35980*/
/* 35773*/        OPC_CheckChild0Type, MVT::v8i16,
/* 35775*/        OPC_Scope, 31, /*->35808*/ // 4 children in Scope
/* 35777*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35779*/          OPC_EmitInteger, MVT::i64, 8, 
/* 35782*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35789*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35797*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35800*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 4:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 35808*/        /*Scope*/ 31, /*->35840*/
/* 35809*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35811*/          OPC_EmitInteger, MVT::i64, 8, 
/* 35814*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35821*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35829*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35832*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 4:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 35840*/        /*Scope*/ 57, /*->35898*/
/* 35841*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35843*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35846*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35854*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35857*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35865*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 35872*/          OPC_EmitInteger, MVT::i32, 0, 
/* 35875*/          OPC_EmitInteger, MVT::i32, 48, 
/* 35878*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 35887*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35890*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 4:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 0:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 35898*/        /*Scope*/ 80, /*->35979*/
/* 35899*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35901*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35904*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35912*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35915*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 35923*/          OPC_EmitInteger, MVT::i32, 2, 
/* 35926*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 35935*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35938*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 35946*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 35953*/          OPC_EmitInteger, MVT::i32, 16, 
/* 35956*/          OPC_EmitInteger, MVT::i32, 48, 
/* 35959*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 35968*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35971*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 4:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 16:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 35979*/        0, /*End of Scope*/
/* 35980*/      0, /*End of Scope*/
/* 35981*/    /*Scope*/ 40|128,3/*424*/, /*->36407*/
/* 35983*/      OPC_CheckChild1Integer, 5, 
/* 35985*/      OPC_CheckType, MVT::i32,
/* 35987*/      OPC_Scope, 79|128,1/*207*/, /*->36197*/ // 2 children in Scope
/* 35990*/        OPC_CheckChild0Type, MVT::v16i8,
/* 35992*/        OPC_Scope, 31, /*->36025*/ // 4 children in Scope
/* 35994*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35996*/          OPC_EmitInteger, MVT::i64, 5, 
/* 35999*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36006*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36014*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36017*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 5:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 5:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 36025*/        /*Scope*/ 31, /*->36057*/
/* 36026*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36028*/          OPC_EmitInteger, MVT::i64, 5, 
/* 36031*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36038*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36046*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36049*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 5:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 5:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 36057*/        /*Scope*/ 57, /*->36115*/
/* 36058*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36060*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36063*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36071*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36074*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36082*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 36089*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36092*/          OPC_EmitInteger, MVT::i32, 56, 
/* 36095*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 36104*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36107*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 5:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 48:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 36115*/        /*Scope*/ 80, /*->36196*/
/* 36116*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36118*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36121*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36129*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36132*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 36140*/          OPC_EmitInteger, MVT::i32, 2, 
/* 36143*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 36152*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36155*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 36163*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 36170*/          OPC_EmitInteger, MVT::i32, 24, 
/* 36173*/          OPC_EmitInteger, MVT::i32, 56, 
/* 36176*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 36185*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36188*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 5:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 24:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 36196*/        0, /*End of Scope*/
/* 36197*/      /*Scope*/ 79|128,1/*207*/, /*->36406*/
/* 36199*/        OPC_CheckChild0Type, MVT::v8i16,
/* 36201*/        OPC_Scope, 31, /*->36234*/ // 4 children in Scope
/* 36203*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36205*/          OPC_EmitInteger, MVT::i64, 10, 
/* 36208*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36215*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36223*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36226*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 5:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 10:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 36234*/        /*Scope*/ 31, /*->36266*/
/* 36235*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36237*/          OPC_EmitInteger, MVT::i64, 10, 
/* 36240*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36247*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36255*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36258*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 5:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 10:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 36266*/        /*Scope*/ 57, /*->36324*/
/* 36267*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36269*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36272*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36280*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36283*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36291*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 36298*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36301*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36304*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 36313*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36316*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 5:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 48:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 36324*/        /*Scope*/ 80, /*->36405*/
/* 36325*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36327*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36330*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36338*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36341*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 36349*/          OPC_EmitInteger, MVT::i32, 2, 
/* 36352*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 36361*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36364*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 36372*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 36379*/          OPC_EmitInteger, MVT::i32, 32, 
/* 36382*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36385*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 36394*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36397*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 5:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 32:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 36405*/        0, /*End of Scope*/
/* 36406*/      0, /*End of Scope*/
/* 36407*/    /*Scope*/ 106|128,3/*490*/, /*->36899*/
/* 36409*/      OPC_CheckChild1Integer, 6, 
/* 36411*/      OPC_CheckType, MVT::i32,
/* 36413*/      OPC_Scope, 79|128,1/*207*/, /*->36623*/ // 2 children in Scope
/* 36416*/        OPC_CheckChild0Type, MVT::v16i8,
/* 36418*/        OPC_Scope, 31, /*->36451*/ // 4 children in Scope
/* 36420*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36422*/          OPC_EmitInteger, MVT::i64, 6, 
/* 36425*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36432*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36440*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36443*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 6:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 36451*/        /*Scope*/ 31, /*->36483*/
/* 36452*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36454*/          OPC_EmitInteger, MVT::i64, 6, 
/* 36457*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36464*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36472*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36475*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 6:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 36483*/        /*Scope*/ 57, /*->36541*/
/* 36484*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36486*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36489*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36497*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36500*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36508*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 36515*/          OPC_EmitInteger, MVT::i32, 56, 
/* 36518*/          OPC_EmitInteger, MVT::i32, 56, 
/* 36521*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 36530*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36533*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 56:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 36541*/        /*Scope*/ 80, /*->36622*/
/* 36542*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36544*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36547*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36555*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36558*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 36566*/          OPC_EmitInteger, MVT::i32, 2, 
/* 36569*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 36578*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36581*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 36589*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 36596*/          OPC_EmitInteger, MVT::i32, 16, 
/* 36599*/          OPC_EmitInteger, MVT::i32, 56, 
/* 36602*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 36611*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36614*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 16:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 36622*/        0, /*End of Scope*/
/* 36623*/      /*Scope*/ 17|128,2/*273*/, /*->36898*/
/* 36625*/        OPC_CheckChild0Type, MVT::v8i16,
/* 36627*/        OPC_Scope, 64, /*->36693*/ // 4 children in Scope
/* 36629*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36631*/          OPC_Scope, 29, /*->36662*/ // 2 children in Scope
/* 36633*/            OPC_EmitInteger, MVT::i64, 12, 
/* 36636*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36643*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36651*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36654*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 36662*/          /*Scope*/ 29, /*->36692*/
/* 36663*/            OPC_EmitInteger, MVT::i64, 14, 
/* 36666*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36673*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36681*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36684*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (LI8:{ *:[i64] } 14:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 36692*/          0, /*End of Scope*/
/* 36693*/        /*Scope*/ 64, /*->36758*/
/* 36694*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36696*/          OPC_Scope, 29, /*->36727*/ // 2 children in Scope
/* 36698*/            OPC_EmitInteger, MVT::i64, 12, 
/* 36701*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36708*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36716*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36719*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 36727*/          /*Scope*/ 29, /*->36757*/
/* 36728*/            OPC_EmitInteger, MVT::i64, 14, 
/* 36731*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36738*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36746*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36749*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i32, 2/*#Ops*/, 3, 4, 
                      // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                      // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (LI8:{ *:[i64] } 14:{ *:[i64] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 36757*/          0, /*End of Scope*/
/* 36758*/        /*Scope*/ 57, /*->36816*/
/* 36759*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36761*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36764*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36772*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36775*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36783*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 36790*/          OPC_EmitInteger, MVT::i32, 32, 
/* 36793*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36796*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 36805*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36808*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 32:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 36816*/        /*Scope*/ 80, /*->36897*/
/* 36817*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36819*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36822*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36830*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36833*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 36841*/          OPC_EmitInteger, MVT::i32, 2, 
/* 36844*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 36853*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36856*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 36864*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 36871*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36874*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36877*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 36886*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36889*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 6:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 48:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 36897*/        0, /*End of Scope*/
/* 36898*/      0, /*End of Scope*/
/* 36899*/    /*Scope*/ 104|128,2/*360*/, /*->37261*/
/* 36901*/      OPC_CheckChild1Integer, 7, 
/* 36903*/      OPC_CheckType, MVT::i32,
/* 36905*/      OPC_Scope, 79|128,1/*207*/, /*->37115*/ // 2 children in Scope
/* 36908*/        OPC_CheckChild0Type, MVT::v16i8,
/* 36910*/        OPC_Scope, 31, /*->36943*/ // 4 children in Scope
/* 36912*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36914*/          OPC_EmitInteger, MVT::i64, 7, 
/* 36917*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36924*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36932*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36935*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 7:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 7:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 36943*/        /*Scope*/ 31, /*->36975*/
/* 36944*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36946*/          OPC_EmitInteger, MVT::i64, 7, 
/* 36949*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36956*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36964*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36967*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 3, 4, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 7:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 7:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 36975*/        /*Scope*/ 57, /*->37033*/
/* 36976*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36978*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36981*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36989*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36992*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37000*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37007*/          OPC_EmitInteger, MVT::i32, 0, 
/* 37010*/          OPC_EmitInteger, MVT::i32, 56, 
/* 37013*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37022*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37025*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 7:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 0:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37033*/        /*Scope*/ 80, /*->37114*/
/* 37034*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37036*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37039*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37047*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37050*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37058*/          OPC_EmitInteger, MVT::i32, 2, 
/* 37061*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37070*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37073*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37081*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37088*/          OPC_EmitInteger, MVT::i32, 8, 
/* 37091*/          OPC_EmitInteger, MVT::i32, 56, 
/* 37094*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37103*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37106*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 7:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 8:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37114*/        0, /*End of Scope*/
/* 37115*/      /*Scope*/ 15|128,1/*143*/, /*->37260*/
/* 37117*/        OPC_CheckChild0Type, MVT::v8i16,
/* 37119*/        OPC_Scope, 57, /*->37178*/ // 2 children in Scope
/* 37121*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37123*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37126*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37134*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37137*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37145*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37152*/          OPC_EmitInteger, MVT::i32, 16, 
/* 37155*/          OPC_EmitInteger, MVT::i32, 48, 
/* 37158*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37167*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37170*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 8, 9, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 7:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 16:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37178*/        /*Scope*/ 80, /*->37259*/
/* 37179*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37181*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37184*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37192*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37195*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37203*/          OPC_EmitInteger, MVT::i32, 2, 
/* 37206*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37215*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37218*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37226*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37233*/          OPC_EmitInteger, MVT::i32, 0, 
/* 37236*/          OPC_EmitInteger, MVT::i32, 48, 
/* 37239*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37248*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37251*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i32, 2/*#Ops*/, 12, 13, 
                    // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, 7:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 0:{ *:[i32] }, 48:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37259*/        0, /*End of Scope*/
/* 37260*/      0, /*End of Scope*/
/* 37261*/    /*Scope*/ 83|128,1/*211*/, /*->37474*/
/* 37263*/      OPC_CheckChild1Integer, 8, 
/* 37265*/      OPC_CheckChild0Type, MVT::v16i8,
/* 37267*/      OPC_CheckType, MVT::i32,
/* 37269*/      OPC_Scope, 31, /*->37302*/ // 4 children in Scope
/* 37271*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37273*/        OPC_EmitInteger, MVT::i64, 8, 
/* 37276*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37283*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37291*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37294*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 8:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 37302*/      /*Scope*/ 31, /*->37334*/
/* 37303*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37305*/        OPC_EmitInteger, MVT::i64, 8, 
/* 37308*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37315*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37323*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37326*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 8:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 37334*/      /*Scope*/ 57, /*->37392*/
/* 37335*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37337*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37340*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37348*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37351*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37359*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37366*/        OPC_EmitInteger, MVT::i32, 0, 
/* 37369*/        OPC_EmitInteger, MVT::i32, 56, 
/* 37372*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37381*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37384*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 8, 9, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 8:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 0:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37392*/      /*Scope*/ 80, /*->37473*/
/* 37393*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37395*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37398*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37406*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37409*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37417*/        OPC_EmitInteger, MVT::i32, 2, 
/* 37420*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37429*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37432*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37440*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37447*/        OPC_EmitInteger, MVT::i32, 8, 
/* 37450*/        OPC_EmitInteger, MVT::i32, 56, 
/* 37453*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37462*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37465*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 12, 13, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 8:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 8:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37473*/      0, /*End of Scope*/
/* 37474*/    /*Scope*/ 83|128,1/*211*/, /*->37687*/
/* 37476*/      OPC_CheckChild1Integer, 9, 
/* 37478*/      OPC_CheckChild0Type, MVT::v16i8,
/* 37480*/      OPC_CheckType, MVT::i32,
/* 37482*/      OPC_Scope, 31, /*->37515*/ // 4 children in Scope
/* 37484*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37486*/        OPC_EmitInteger, MVT::i64, 9, 
/* 37489*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37496*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37504*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37507*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 9:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 9:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 37515*/      /*Scope*/ 31, /*->37547*/
/* 37516*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37518*/        OPC_EmitInteger, MVT::i64, 9, 
/* 37521*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37528*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37536*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37539*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 9:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 9:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 37547*/      /*Scope*/ 57, /*->37605*/
/* 37548*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37550*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37553*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37561*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37564*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37572*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37579*/        OPC_EmitInteger, MVT::i32, 56, 
/* 37582*/        OPC_EmitInteger, MVT::i32, 56, 
/* 37585*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37594*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37597*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 8, 9, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 9:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 56:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37605*/      /*Scope*/ 80, /*->37686*/
/* 37606*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37608*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37611*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37619*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37622*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37630*/        OPC_EmitInteger, MVT::i32, 2, 
/* 37633*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37642*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37645*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37653*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37660*/        OPC_EmitInteger, MVT::i32, 16, 
/* 37663*/        OPC_EmitInteger, MVT::i32, 56, 
/* 37666*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37675*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37678*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 12, 13, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 9:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 16:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37686*/      0, /*End of Scope*/
/* 37687*/    /*Scope*/ 83|128,1/*211*/, /*->37900*/
/* 37689*/      OPC_CheckChild1Integer, 10, 
/* 37691*/      OPC_CheckChild0Type, MVT::v16i8,
/* 37693*/      OPC_CheckType, MVT::i32,
/* 37695*/      OPC_Scope, 31, /*->37728*/ // 4 children in Scope
/* 37697*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37699*/        OPC_EmitInteger, MVT::i64, 10, 
/* 37702*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37709*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37717*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37720*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 10:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 10:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 37728*/      /*Scope*/ 31, /*->37760*/
/* 37729*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37731*/        OPC_EmitInteger, MVT::i64, 10, 
/* 37734*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37741*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37749*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37752*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 10:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 10:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 37760*/      /*Scope*/ 57, /*->37818*/
/* 37761*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37763*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37766*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37774*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37777*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37785*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37792*/        OPC_EmitInteger, MVT::i32, 48, 
/* 37795*/        OPC_EmitInteger, MVT::i32, 56, 
/* 37798*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37807*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37810*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 8, 9, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 10:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 48:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37818*/      /*Scope*/ 80, /*->37899*/
/* 37819*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37821*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37824*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37832*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37835*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37843*/        OPC_EmitInteger, MVT::i32, 2, 
/* 37846*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37855*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37858*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37866*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37873*/        OPC_EmitInteger, MVT::i32, 24, 
/* 37876*/        OPC_EmitInteger, MVT::i32, 56, 
/* 37879*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37888*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37891*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 12, 13, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 10:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 24:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 37899*/      0, /*End of Scope*/
/* 37900*/    /*Scope*/ 83|128,1/*211*/, /*->38113*/
/* 37902*/      OPC_CheckChild1Integer, 11, 
/* 37904*/      OPC_CheckChild0Type, MVT::v16i8,
/* 37906*/      OPC_CheckType, MVT::i32,
/* 37908*/      OPC_Scope, 31, /*->37941*/ // 4 children in Scope
/* 37910*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37912*/        OPC_EmitInteger, MVT::i64, 11, 
/* 37915*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37922*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37930*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37933*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 11:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 11:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 37941*/      /*Scope*/ 31, /*->37973*/
/* 37942*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37944*/        OPC_EmitInteger, MVT::i64, 11, 
/* 37947*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37954*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37962*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37965*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 11:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 11:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 37973*/      /*Scope*/ 57, /*->38031*/
/* 37974*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37976*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37979*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37987*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37990*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37998*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38005*/        OPC_EmitInteger, MVT::i32, 40, 
/* 38008*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38011*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38020*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38023*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 8, 9, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 11:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 40:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38031*/      /*Scope*/ 80, /*->38112*/
/* 38032*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38034*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38037*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38045*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38048*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38056*/        OPC_EmitInteger, MVT::i32, 2, 
/* 38059*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38068*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38071*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38079*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38086*/        OPC_EmitInteger, MVT::i32, 32, 
/* 38089*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38092*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38101*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38104*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 12, 13, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 11:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 32:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38112*/      0, /*End of Scope*/
/* 38113*/    /*Scope*/ 83|128,1/*211*/, /*->38326*/
/* 38115*/      OPC_CheckChild1Integer, 12, 
/* 38117*/      OPC_CheckChild0Type, MVT::v16i8,
/* 38119*/      OPC_CheckType, MVT::i32,
/* 38121*/      OPC_Scope, 31, /*->38154*/ // 4 children in Scope
/* 38123*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38125*/        OPC_EmitInteger, MVT::i64, 12, 
/* 38128*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38135*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38143*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38146*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 12:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38154*/      /*Scope*/ 31, /*->38186*/
/* 38155*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 38157*/        OPC_EmitInteger, MVT::i64, 12, 
/* 38160*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38167*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38175*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38178*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 12:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 12:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38186*/      /*Scope*/ 57, /*->38244*/
/* 38187*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38189*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38192*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38200*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38203*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 38211*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38218*/        OPC_EmitInteger, MVT::i32, 32, 
/* 38221*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38224*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38233*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38236*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 8, 9, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 12:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 32:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38244*/      /*Scope*/ 80, /*->38325*/
/* 38245*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38247*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38250*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38258*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38261*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38269*/        OPC_EmitInteger, MVT::i32, 2, 
/* 38272*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38281*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38284*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38292*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38299*/        OPC_EmitInteger, MVT::i32, 40, 
/* 38302*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38305*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38314*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38317*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 12, 13, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 12:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 40:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38325*/      0, /*End of Scope*/
/* 38326*/    /*Scope*/ 83|128,1/*211*/, /*->38539*/
/* 38328*/      OPC_CheckChild1Integer, 13, 
/* 38330*/      OPC_CheckChild0Type, MVT::v16i8,
/* 38332*/      OPC_CheckType, MVT::i32,
/* 38334*/      OPC_Scope, 31, /*->38367*/ // 4 children in Scope
/* 38336*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38338*/        OPC_EmitInteger, MVT::i64, 13, 
/* 38341*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38348*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38356*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38359*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 13:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 13:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38367*/      /*Scope*/ 31, /*->38399*/
/* 38368*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 38370*/        OPC_EmitInteger, MVT::i64, 13, 
/* 38373*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38380*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38388*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38391*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 13:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 13:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38399*/      /*Scope*/ 57, /*->38457*/
/* 38400*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38402*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38405*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38413*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38416*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 38424*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38431*/        OPC_EmitInteger, MVT::i32, 24, 
/* 38434*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38437*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38446*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38449*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 8, 9, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 13:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 24:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38457*/      /*Scope*/ 80, /*->38538*/
/* 38458*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38460*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38463*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38471*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38474*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38482*/        OPC_EmitInteger, MVT::i32, 2, 
/* 38485*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38494*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38497*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38505*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38512*/        OPC_EmitInteger, MVT::i32, 48, 
/* 38515*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38518*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38527*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38530*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 12, 13, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 13:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 48:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38538*/      0, /*End of Scope*/
/* 38539*/    /*Scope*/ 83|128,1/*211*/, /*->38752*/
/* 38541*/      OPC_CheckChild1Integer, 14, 
/* 38543*/      OPC_CheckChild0Type, MVT::v16i8,
/* 38545*/      OPC_CheckType, MVT::i32,
/* 38547*/      OPC_Scope, 31, /*->38580*/ // 4 children in Scope
/* 38549*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38551*/        OPC_EmitInteger, MVT::i64, 14, 
/* 38554*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38561*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38569*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38572*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 14:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 14:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38580*/      /*Scope*/ 31, /*->38612*/
/* 38581*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 38583*/        OPC_EmitInteger, MVT::i64, 14, 
/* 38586*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38593*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38601*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38604*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 14:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 14:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38612*/      /*Scope*/ 57, /*->38670*/
/* 38613*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38615*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38618*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38626*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38629*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 38637*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38644*/        OPC_EmitInteger, MVT::i32, 16, 
/* 38647*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38650*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38659*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38662*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 8, 9, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 14:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 16:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38670*/      /*Scope*/ 80, /*->38751*/
/* 38671*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38673*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38676*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38684*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38687*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38695*/        OPC_EmitInteger, MVT::i32, 2, 
/* 38698*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38707*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38710*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38718*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38725*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38728*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38731*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38740*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38743*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 12, 13, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 14:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 56:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38751*/      0, /*End of Scope*/
/* 38752*/    /*Scope*/ 83|128,1/*211*/, /*->38965*/
/* 38754*/      OPC_CheckChild1Integer, 15, 
/* 38756*/      OPC_CheckChild0Type, MVT::v16i8,
/* 38758*/      OPC_CheckType, MVT::i32,
/* 38760*/      OPC_Scope, 31, /*->38793*/ // 4 children in Scope
/* 38762*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38764*/        OPC_EmitInteger, MVT::i64, 15, 
/* 38767*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38774*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38782*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38785*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 15:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } (LI8:{ *:[i64] } 15:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38793*/      /*Scope*/ 31, /*->38825*/
/* 38794*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 38796*/        OPC_EmitInteger, MVT::i64, 15, 
/* 38799*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38806*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38814*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38817*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 3, 4, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 15:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } (LI8:{ *:[i64] } 15:{ *:[i64] }), ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38825*/      /*Scope*/ 57, /*->38883*/
/* 38826*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38828*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38831*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38839*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38842*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 38850*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38857*/        OPC_EmitInteger, MVT::i32, 8, 
/* 38860*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38863*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38872*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38875*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 8, 9, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 15:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), 8:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38883*/      /*Scope*/ 80, /*->38964*/
/* 38884*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38886*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38889*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38897*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38900*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38908*/        OPC_EmitInteger, MVT::i32, 2, 
/* 38911*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38920*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38923*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38931*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38938*/        OPC_EmitInteger, MVT::i32, 0, 
/* 38941*/        OPC_EmitInteger, MVT::i32, 56, 
/* 38944*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38953*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38956*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 12, 13, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, 15:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), 2:{ *:[i32] }), sub_64:{ *:[i32] })), 0:{ *:[i32] }, 56:{ *:[i32] }), sub_32:{ *:[i32] })
/* 38964*/      0, /*End of Scope*/
/* 38965*/    /*Scope*/ 60|128,2/*316*/, /*->39283*/
/* 38967*/      OPC_CheckChild0Type, MVT::v16i8,
/* 38969*/      OPC_RecordChild1, // #1 = $Idx
/* 38970*/      OPC_CheckChild1Type, MVT::i64,
/* 38972*/      OPC_CheckType, MVT::i32,
/* 38974*/      OPC_Scope, 21, /*->38997*/ // 4 children in Scope
/* 38976*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38978*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 38986*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38989*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBRX:{ *:[i64] } ?:{ *:[i64] }:$Idx, ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 38997*/      /*Scope*/ 21, /*->39019*/
/* 38998*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 39000*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 39008*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39011*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUBLX:{ *:[i64] } ?:{ *:[i64] }:$Idx, ?:{ *:[v16i8] }:$S), sub_32:{ *:[i32] })
/* 39019*/      /*Scope*/ 127, /*->39147*/
/* 39020*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39022*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 39026*/        OPC_EmitInteger, MVT::i64, 8, 
/* 39029*/        OPC_EmitNode2, TARGET_VAL(PPC::ANDIo8), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 39038*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 4,  // Results = #6
/* 39046*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 6,  // Results = #7
/* 39055*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39058*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 7, 8,  // Results = #9
/* 39066*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39069*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 39077*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 11,  // Results = #12
/* 39084*/        OPC_EmitInteger, MVT::i64, 7, 
/* 39087*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 13,  // Results = #14
/* 39094*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 14, 1,  // Results = #15
/* 39102*/        OPC_EmitInteger, MVT::i32, 3, 
/* 39105*/        OPC_EmitInteger, MVT::i32, 60, 
/* 39108*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 15, 16, 17,  // Results = #18
/* 39117*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39120*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 18, 19,  // Results = #20
/* 39128*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 12, 20,  // Results = #21
/* 39136*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39139*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SRD:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } (VPERM:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (ANDIo8:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$Idx, 8:{ *:[i64] }))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), (EXTRACT_SUBREG:{ *:[i32] } (RLDICR:{ *:[i64] } (ANDC8:{ *:[i64] } (LI8:{ *:[i64] } 7:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 3:{ *:[i32] }, 60:{ *:[i32] }), sub_32:{ *:[i32] })), sub_32:{ *:[i32] })
/* 39147*/      /*Scope*/ 5|128,1/*133*/, /*->39282*/
/* 39149*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39151*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 39155*/        OPC_EmitInteger, MVT::i64, 8, 
/* 39158*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 39165*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 39173*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 5,  // Results = #6
/* 39181*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 6,  // Results = #7
/* 39190*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39193*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 7, 8,  // Results = #9
/* 39201*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39204*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 39212*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 11,  // Results = #12
/* 39219*/        OPC_EmitInteger, MVT::i64, 7, 
/* 39222*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 13,  // Results = #14
/* 39229*/        OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                      MVT::i64, 2/*#Ops*/, 14, 1,  // Results = #15
/* 39237*/        OPC_EmitInteger, MVT::i32, 3, 
/* 39240*/        OPC_EmitInteger, MVT::i32, 60, 
/* 39243*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 15, 16, 17,  // Results = #18
/* 39252*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39255*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 18, 19,  // Results = #20
/* 39263*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 12, 20,  // Results = #21
/* 39271*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39274*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22, 
                  // Src: (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SRD:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } (VPERM:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (ANDC8:{ *:[i64] } (LI8:{ *:[i64] } 8:{ *:[i64] }), ?:{ *:[i64] }:$Idx))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), (EXTRACT_SUBREG:{ *:[i32] } (RLDICR:{ *:[i64] } (AND8:{ *:[i64] } (LI8:{ *:[i64] } 7:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 3:{ *:[i32] }, 60:{ *:[i32] }), sub_32:{ *:[i32] })), sub_32:{ *:[i32] })
/* 39282*/      0, /*End of Scope*/
/* 39283*/    /*Scope*/ 1|128,3/*385*/, /*->39670*/
/* 39285*/      OPC_CheckChild0Type, MVT::v8i16,
/* 39287*/      OPC_RecordChild1, // #1 = $Idx
/* 39288*/      OPC_CheckChild1Type, MVT::i64,
/* 39290*/      OPC_CheckType, MVT::i32,
/* 39292*/      OPC_Scope, 40, /*->39334*/ // 4 children in Scope
/* 39294*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 39296*/        OPC_EmitInteger, MVT::i32, 1, 
/* 39299*/        OPC_EmitInteger, MVT::i32, 28, 
/* 39302*/        OPC_EmitInteger, MVT::i32, 30, 
/* 39305*/        OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                      MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 39315*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                      MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 39323*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39326*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 6, 7, 
                  // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHRX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 1:{ *:[i32] }, 28:{ *:[i32] }, 30:{ *:[i32] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 39334*/      /*Scope*/ 40, /*->39375*/
/* 39335*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 39337*/        OPC_EmitInteger, MVT::i32, 1, 
/* 39340*/        OPC_EmitInteger, MVT::i32, 28, 
/* 39343*/        OPC_EmitInteger, MVT::i32, 30, 
/* 39346*/        OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                      MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 39356*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                      MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 39364*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39367*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 6, 7, 
                  // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUHLX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 1:{ *:[i32] }, 28:{ *:[i32] }, 30:{ *:[i32] }), ?:{ *:[v8i16] }:$S), sub_32:{ *:[i32] })
/* 39375*/      /*Scope*/ 14|128,1/*142*/, /*->39519*/
/* 39377*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39379*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 39383*/        OPC_EmitInteger, MVT::i64, 4, 
/* 39386*/        OPC_EmitNode2, TARGET_VAL(PPC::ANDIo8), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 39395*/        OPC_EmitInteger, MVT::i32, 1, 
/* 39398*/        OPC_EmitInteger, MVT::i32, 62, 
/* 39401*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 4, 6, 7,  // Results = #8
/* 39410*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 39418*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 39427*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39430*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 39438*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39441*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 39449*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14,  // Results = #15
/* 39456*/        OPC_EmitInteger, MVT::i64, 3, 
/* 39459*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 16,  // Results = #17
/* 39466*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 17, 1,  // Results = #18
/* 39474*/        OPC_EmitInteger, MVT::i32, 4, 
/* 39477*/        OPC_EmitInteger, MVT::i32, 59, 
/* 39480*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 39489*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39492*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22,  // Results = #23
/* 39500*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 15, 23,  // Results = #24
/* 39508*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39511*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 24, 25, 
                  // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SRD:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } (VPERM:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (ANDIo8:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$Idx, 4:{ *:[i64] }), 1:{ *:[i32] }, 62:{ *:[i32] }))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), (EXTRACT_SUBREG:{ *:[i32] } (RLDICR:{ *:[i64] } (ANDC8:{ *:[i64] } (LI8:{ *:[i64] } 3:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 4:{ *:[i32] }, 59:{ *:[i32] }), sub_32:{ *:[i32] })), sub_32:{ *:[i32] })
/* 39519*/      /*Scope*/ 20|128,1/*148*/, /*->39669*/
/* 39521*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39523*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 39527*/        OPC_EmitInteger, MVT::i64, 4, 
/* 39530*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 39537*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 39545*/        OPC_EmitInteger, MVT::i32, 1, 
/* 39548*/        OPC_EmitInteger, MVT::i32, 62, 
/* 39551*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 39560*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 39568*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 39577*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39580*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 39588*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39591*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 39599*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14,  // Results = #15
/* 39606*/        OPC_EmitInteger, MVT::i64, 3, 
/* 39609*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 16,  // Results = #17
/* 39616*/        OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                      MVT::i64, 2/*#Ops*/, 17, 1,  // Results = #18
/* 39624*/        OPC_EmitInteger, MVT::i32, 4, 
/* 39627*/        OPC_EmitInteger, MVT::i32, 59, 
/* 39630*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 39639*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39642*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22,  // Results = #23
/* 39650*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 15, 23,  // Results = #24
/* 39658*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39661*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 24, 25, 
                  // Src: (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SRD:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } (VPERM:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (ANDC8:{ *:[i64] } (LI8:{ *:[i64] } 4:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 1:{ *:[i32] }, 62:{ *:[i32] }))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), (EXTRACT_SUBREG:{ *:[i32] } (RLDICR:{ *:[i64] } (AND8:{ *:[i64] } (LI8:{ *:[i64] } 3:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 4:{ *:[i32] }, 59:{ *:[i32] }), sub_32:{ *:[i32] })), sub_32:{ *:[i32] })
/* 39669*/      0, /*End of Scope*/
/* 39670*/    /*Scope*/ 1|128,3/*385*/, /*->40057*/
/* 39672*/      OPC_CheckChild0Type, MVT::v4i32,
/* 39674*/      OPC_RecordChild1, // #1 = $Idx
/* 39675*/      OPC_CheckChild1Type, MVT::i64,
/* 39677*/      OPC_CheckType, MVT::i32,
/* 39679*/      OPC_Scope, 40, /*->39721*/ // 4 children in Scope
/* 39681*/        OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 39683*/        OPC_EmitInteger, MVT::i32, 2, 
/* 39686*/        OPC_EmitInteger, MVT::i32, 28, 
/* 39689*/        OPC_EmitInteger, MVT::i32, 29, 
/* 39692*/        OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                      MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 39702*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                      MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 39710*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39713*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 6, 7, 
                  // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUWRX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 2:{ *:[i32] }, 28:{ *:[i32] }, 29:{ *:[i32] }), ?:{ *:[v4i32] }:$S), sub_32:{ *:[i32] })
/* 39721*/      /*Scope*/ 40, /*->39762*/
/* 39722*/        OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 39724*/        OPC_EmitInteger, MVT::i32, 2, 
/* 39727*/        OPC_EmitInteger, MVT::i32, 28, 
/* 39730*/        OPC_EmitInteger, MVT::i32, 29, 
/* 39733*/        OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                      MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 39743*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                      MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 39751*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39754*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 6, 7, 
                  // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (VEXTUWLX:{ *:[i64] } (RLWINM8:{ *:[i64] } ?:{ *:[i64] }:$Idx, 2:{ *:[i32] }, 28:{ *:[i32] }, 29:{ *:[i32] }), ?:{ *:[v4i32] }:$S), sub_32:{ *:[i32] })
/* 39762*/      /*Scope*/ 14|128,1/*142*/, /*->39906*/
/* 39764*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39766*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 39770*/        OPC_EmitInteger, MVT::i64, 2, 
/* 39773*/        OPC_EmitNode2, TARGET_VAL(PPC::ANDIo8), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 39782*/        OPC_EmitInteger, MVT::i32, 2, 
/* 39785*/        OPC_EmitInteger, MVT::i32, 61, 
/* 39788*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 4, 6, 7,  // Results = #8
/* 39797*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 39805*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 39814*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39817*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 39825*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39828*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 39836*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14,  // Results = #15
/* 39843*/        OPC_EmitInteger, MVT::i64, 1, 
/* 39846*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 16,  // Results = #17
/* 39853*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 17, 1,  // Results = #18
/* 39861*/        OPC_EmitInteger, MVT::i32, 5, 
/* 39864*/        OPC_EmitInteger, MVT::i32, 58, 
/* 39867*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 39876*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39879*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22,  // Results = #23
/* 39887*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 15, 23,  // Results = #24
/* 39895*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39898*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 24, 25, 
                  // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SRD:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } (VPERM:{ *:[v16i8] } ?:{ *:[v4i32] }:$S, ?:{ *:[v4i32] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (ANDIo8:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$Idx, 2:{ *:[i64] }), 2:{ *:[i32] }, 61:{ *:[i32] }))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), (EXTRACT_SUBREG:{ *:[i32] } (RLDICR:{ *:[i64] } (ANDC8:{ *:[i64] } (LI8:{ *:[i64] } 1:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 5:{ *:[i32] }, 58:{ *:[i32] }), sub_32:{ *:[i32] })), sub_32:{ *:[i32] })
/* 39906*/      /*Scope*/ 20|128,1/*148*/, /*->40056*/
/* 39908*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39910*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 39914*/        OPC_EmitInteger, MVT::i64, 2, 
/* 39917*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 39924*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 39932*/        OPC_EmitInteger, MVT::i32, 2, 
/* 39935*/        OPC_EmitInteger, MVT::i32, 61, 
/* 39938*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 39947*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 39955*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 39964*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39967*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 39975*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39978*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 39986*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14,  // Results = #15
/* 39993*/        OPC_EmitInteger, MVT::i64, 1, 
/* 39996*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 16,  // Results = #17
/* 40003*/        OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                      MVT::i64, 2/*#Ops*/, 17, 1,  // Results = #18
/* 40011*/        OPC_EmitInteger, MVT::i32, 5, 
/* 40014*/        OPC_EmitInteger, MVT::i32, 58, 
/* 40017*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 40026*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40029*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22,  // Results = #23
/* 40037*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 15, 23,  // Results = #24
/* 40045*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40048*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 24, 25, 
                  // Src: (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (SRD:{ *:[i64] } (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } (VPERM:{ *:[v16i8] } ?:{ *:[v4i32] }:$S, ?:{ *:[v4i32] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (ANDC8:{ *:[i64] } (LI8:{ *:[i64] } 2:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 2:{ *:[i32] }, 61:{ *:[i32] }))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] })), (EXTRACT_SUBREG:{ *:[i32] } (RLDICR:{ *:[i64] } (AND8:{ *:[i64] } (LI8:{ *:[i64] } 1:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 5:{ *:[i32] }, 58:{ *:[i32] }), sub_32:{ *:[i32] })), sub_32:{ *:[i32] })
/* 40056*/      0, /*End of Scope*/
/* 40057*/    /*Scope*/ 47|128,1/*175*/, /*->40234*/
/* 40059*/      OPC_CheckChild0Type, MVT::v2i64,
/* 40061*/      OPC_RecordChild1, // #1 = $Idx
/* 40062*/      OPC_CheckChild1Type, MVT::i64,
/* 40064*/      OPC_CheckType, MVT::i64,
/* 40066*/      OPC_Scope, 79, /*->40147*/ // 2 children in Scope
/* 40068*/        OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/* 40070*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 40074*/        OPC_EmitInteger, MVT::i64, 1, 
/* 40077*/        OPC_EmitNode2, TARGET_VAL(PPC::ANDIo8), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 40086*/        OPC_EmitInteger, MVT::i32, 3, 
/* 40089*/        OPC_EmitInteger, MVT::i32, 60, 
/* 40092*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 4, 6, 7,  // Results = #8
/* 40101*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 40109*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 40118*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40121*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 40129*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40132*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 40140*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14, 
                  // Src: (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } (VPERM:{ *:[v16i8] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (ANDIo8:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$Idx, 1:{ *:[i64] }), 3:{ *:[i32] }, 60:{ *:[i32] }))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 40147*/      /*Scope*/ 85, /*->40233*/
/* 40148*/        OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/* 40150*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 40154*/        OPC_EmitInteger, MVT::i64, 1, 
/* 40157*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 40164*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 40172*/        OPC_EmitInteger, MVT::i32, 3, 
/* 40175*/        OPC_EmitInteger, MVT::i32, 60, 
/* 40178*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 40187*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 40195*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 40204*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40207*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 40215*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40218*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 40226*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14, 
                  // Src: (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                  // Dst: (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[v2i64] } (VPERM:{ *:[v16i8] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (ANDC8:{ *:[i64] } (LI8:{ *:[i64] } 1:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 3:{ *:[i32] }, 60:{ *:[i32] }))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 40233*/      0, /*End of Scope*/
/* 40234*/    /*Scope*/ 21|128,2/*277*/, /*->40513*/
/* 40236*/      OPC_CheckChild0Type, MVT::v2f64,
/* 40238*/      OPC_CheckType, MVT::f64,
/* 40240*/      OPC_Scope, 44, /*->40286*/ // 3 children in Scope
/* 40242*/        OPC_CheckChild1Integer, 0, 
/* 40244*/        OPC_Scope, 13, /*->40259*/ // 2 children in Scope
/* 40246*/          OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 40248*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40251*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2f64] }:$S, sub_64:{ *:[i32] })
/* 40259*/        /*Scope*/ 25, /*->40285*/
/* 40260*/          OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 40262*/          OPC_EmitInteger, MVT::i32, 2, 
/* 40265*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 40274*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40277*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3, 
                    // Src: (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$S, ?:{ *:[v2f64] }:$S, 2:{ *:[i32] }), sub_64:{ *:[i32] })
/* 40285*/        0, /*End of Scope*/
/* 40286*/      /*Scope*/ 44, /*->40331*/
/* 40287*/        OPC_CheckChild1Integer, 1, 
/* 40289*/        OPC_Scope, 13, /*->40304*/ // 2 children in Scope
/* 40291*/          OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 40293*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40296*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2f64] }:$S, sub_64:{ *:[i32] })
/* 40304*/        /*Scope*/ 25, /*->40330*/
/* 40305*/          OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 40307*/          OPC_EmitInteger, MVT::i32, 2, 
/* 40310*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 40319*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40322*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3, 
                    // Src: (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$S, ?:{ *:[v2f64] }:$S, 2:{ *:[i32] }), sub_64:{ *:[i32] })
/* 40330*/        0, /*End of Scope*/
/* 40331*/      /*Scope*/ 51|128,1/*179*/, /*->40512*/
/* 40333*/        OPC_RecordChild1, // #1 = $Idx
/* 40334*/        OPC_CheckChild1Type, MVT::i64,
/* 40336*/        OPC_Scope, 83, /*->40421*/ // 2 children in Scope
/* 40338*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 40340*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 40343*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2,  // Results = #3
/* 40351*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 40354*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 4,  // Results = #5
/* 40362*/          OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 40366*/          OPC_EmitInteger, MVT::i64, 1, 
/* 40369*/          OPC_EmitNode2, TARGET_VAL(PPC::ANDIo8), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8 #9
/* 40378*/          OPC_EmitInteger, MVT::i32, 3, 
/* 40381*/          OPC_EmitInteger, MVT::i32, 60, 
/* 40384*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                        MVT::i64, 3/*#Ops*/, 8, 10, 11,  // Results = #12
/* 40393*/          OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                        MVT::v16i8, 2/*#Ops*/, 6, 12,  // Results = #13
/* 40401*/          OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                        MVT::v16i8, 3/*#Ops*/, 3, 5, 13,  // Results = #14
/* 40410*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40413*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 14, 15, 
                    // Src: (vector_extract:{ *:[f64] } v2f64:{ *:[v2f64] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VPERM:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } ?:{ *:[v2f64] }:$S, VRRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i8] } ?:{ *:[v2f64] }:$S, VRRC:{ *:[i32] }), (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (ANDIo8:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$Idx, 1:{ *:[i64] }), 3:{ *:[i32] }, 60:{ *:[i32] }))), VSRC:{ *:[i32] })
/* 40421*/        /*Scope*/ 89, /*->40511*/
/* 40422*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 40424*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 40427*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2,  // Results = #3
/* 40435*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 40438*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 4,  // Results = #5
/* 40446*/          OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 40450*/          OPC_EmitInteger, MVT::i64, 1, 
/* 40453*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 40460*/          OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                        MVT::i64, 2/*#Ops*/, 8, 1,  // Results = #9
/* 40468*/          OPC_EmitInteger, MVT::i32, 3, 
/* 40471*/          OPC_EmitInteger, MVT::i32, 60, 
/* 40474*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 40483*/          OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                        MVT::v16i8, 2/*#Ops*/, 6, 12,  // Results = #13
/* 40491*/          OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                        MVT::v16i8, 3/*#Ops*/, 3, 5, 13,  // Results = #14
/* 40500*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40503*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 14, 15, 
                    // Src: (vector_extract:{ *:[f64] } v2f64:{ *:[v2f64] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VPERM:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } ?:{ *:[v2f64] }:$S, VRRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i8] } ?:{ *:[v2f64] }:$S, VRRC:{ *:[i32] }), (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (ANDC8:{ *:[i64] } (LI8:{ *:[i64] } 1:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 3:{ *:[i32] }, 60:{ *:[i32] }))), VSRC:{ *:[i32] })
/* 40511*/        0, /*End of Scope*/
/* 40512*/      0, /*End of Scope*/
/* 40513*/    /*Scope*/ 38|128,2/*294*/, /*->40809*/
/* 40515*/      OPC_CheckChild0Type, MVT::v4f32,
/* 40517*/      OPC_CheckType, MVT::f32,
/* 40519*/      OPC_Scope, 36, /*->40557*/ // 5 children in Scope
/* 40521*/        OPC_CheckChild1Integer, 0, 
/* 40523*/        OPC_Scope, 9, /*->40534*/ // 2 children in Scope
/* 40525*/          OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 40527*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XSCVSPDPN:{ *:[f32] } ?:{ *:[v4f32] }:$S)
/* 40534*/        /*Scope*/ 21, /*->40556*/
/* 40535*/          OPC_CheckPatternPredicate, 28, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 40537*/          OPC_EmitInteger, MVT::i32, 3, 
/* 40540*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 40549*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XSCVSPDPN:{ *:[f32] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, 3:{ *:[i32] }))
/* 40556*/        0, /*End of Scope*/
/* 40557*/      /*Scope*/ 36, /*->40594*/
/* 40558*/        OPC_CheckChild1Integer, 3, 
/* 40560*/        OPC_Scope, 9, /*->40571*/ // 2 children in Scope
/* 40562*/          OPC_CheckPatternPredicate, 28, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 40564*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XSCVSPDPN:{ *:[f32] } ?:{ *:[v4f32] }:$S)
/* 40571*/        /*Scope*/ 21, /*->40593*/
/* 40572*/          OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 40574*/          OPC_EmitInteger, MVT::i32, 3, 
/* 40577*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 40586*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XSCVSPDPN:{ *:[f32] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, 3:{ *:[i32] }))
/* 40593*/        0, /*End of Scope*/
/* 40594*/      /*Scope*/ 48, /*->40643*/
/* 40595*/        OPC_CheckChild1Integer, 1, 
/* 40597*/        OPC_Scope, 21, /*->40620*/ // 2 children in Scope
/* 40599*/          OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 40601*/          OPC_EmitInteger, MVT::i32, 1, 
/* 40604*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 40613*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XSCVSPDPN:{ *:[f32] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, 1:{ *:[i32] }))
/* 40620*/        /*Scope*/ 21, /*->40642*/
/* 40621*/          OPC_CheckPatternPredicate, 28, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 40623*/          OPC_EmitInteger, MVT::i32, 2, 
/* 40626*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 40635*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XSCVSPDPN:{ *:[f32] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, 2:{ *:[i32] }))
/* 40642*/        0, /*End of Scope*/
/* 40643*/      /*Scope*/ 48, /*->40692*/
/* 40644*/        OPC_CheckChild1Integer, 2, 
/* 40646*/        OPC_Scope, 21, /*->40669*/ // 2 children in Scope
/* 40648*/          OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 40650*/          OPC_EmitInteger, MVT::i32, 2, 
/* 40653*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 40662*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XSCVSPDPN:{ *:[f32] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, 2:{ *:[i32] }))
/* 40669*/        /*Scope*/ 21, /*->40691*/
/* 40670*/          OPC_CheckPatternPredicate, 28, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 40672*/          OPC_EmitInteger, MVT::i32, 1, 
/* 40675*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 40684*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 2, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XSCVSPDPN:{ *:[f32] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, 1:{ *:[i32] }))
/* 40691*/        0, /*End of Scope*/
/* 40692*/      /*Scope*/ 115, /*->40808*/
/* 40693*/        OPC_RecordChild1, // #1 = $Idx
/* 40694*/        OPC_CheckChild1Type, MVT::i64,
/* 40696*/        OPC_Scope, 45, /*->40743*/ // 2 children in Scope
/* 40698*/          OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 40700*/          OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 40704*/          OPC_EmitInteger, MVT::i32, 2, 
/* 40707*/          OPC_EmitInteger, MVT::i32, 61, 
/* 40710*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                        MVT::i64, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/* 40719*/          OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                        MVT::v16i8, 2/*#Ops*/, 2, 5,  // Results = #6
/* 40727*/          OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 6,  // Results = #7
/* 40736*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 7, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                    // Dst: (XSCVSPDPN:{ *:[f32] } (VPERM:{ *:[v4i32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$Idx, 2:{ *:[i32] }, 61:{ *:[i32] }))))
/* 40743*/        /*Scope*/ 63, /*->40807*/
/* 40744*/          OPC_CheckPatternPredicate, 28, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 40746*/          OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 40750*/          OPC_EmitInteger, MVT::i64, 3, 
/* 40753*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 40760*/          OPC_EmitNode1, TARGET_VAL(PPC::XOR8), 0,
                        MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 40768*/          OPC_EmitInteger, MVT::i32, 2, 
/* 40771*/          OPC_EmitInteger, MVT::i32, 61, 
/* 40774*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 40783*/          OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                        MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 40791*/          OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 40800*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                        MVT::f32, 1/*#Ops*/, 10, 
                    // Src: (vector_extract:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, i64:{ *:[i64] }:$Idx) - Complexity = 403
                    // Dst: (XSCVSPDPN:{ *:[f32] } (VPERM:{ *:[v4i32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, (LVSL:{ *:[v16i8] } ZERO8:{ *:[i64] }, (RLDICR:{ *:[i64] } (XOR8:{ *:[i64] } (LI8:{ *:[i64] } 3:{ *:[i64] }), ?:{ *:[i64] }:$Idx), 2:{ *:[i32] }, 61:{ *:[i32] }))))
/* 40807*/        0, /*End of Scope*/
/* 40808*/      0, /*End of Scope*/
/* 40809*/    /*Scope*/ 19, /*->40829*/
/* 40810*/      OPC_CheckChild0Type, MVT::v4f64,
/* 40812*/      OPC_CheckChild1Integer, 0, 
/* 40814*/      OPC_CheckType, MVT::f64,
/* 40816*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 40818*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40821*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (extractelt:{ *:[f64] } v4f64:{ *:[v4f64] }:$S, 0:{ *:[iPTR] }) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v4f64] }:$S, sub_64:{ *:[i32] })
/* 40829*/    /*Scope*/ 17, /*->40847*/
/* 40830*/      OPC_CheckChild1Integer, 0, 
/* 40832*/      OPC_CheckType, MVT::f32,
/* 40834*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 40836*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40839*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 0:{ *:[iPTR] }) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:{ *:[f32] } ?:{ *:[v4f32] }:$S, sub_64:{ *:[i32] })
/* 40847*/    /*Scope*/ 58, /*->40906*/
/* 40848*/      OPC_CheckChild1Integer, 1, 
/* 40850*/      OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->40879
/* 40853*/        OPC_CheckChild0Type, MVT::v4f64,
/* 40855*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 40857*/        OPC_EmitInteger, MVT::i32, 1, 
/* 40860*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATI), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40868*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40871*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3, 
                  // Src: (extractelt:{ *:[f64] } v4f64:{ *:[v4f64] }:$S, 1:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[f64] } (QVESPLATI:{ *:[v4f64] } ?:{ *:[v4f64] }:$S, 1:{ *:[i32] }), sub_64:{ *:[i32] })
/* 40879*/      /*SwitchType*/ 24, MVT::f32,// ->40905
/* 40881*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 40883*/        OPC_EmitInteger, MVT::i32, 1, 
/* 40886*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATIs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40894*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40897*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 2, 3, 
                  // Src: (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 1:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[f32] } (QVESPLATIs:{ *:[v4f32] } ?:{ *:[v4f32] }:$S, 1:{ *:[i32] }), sub_64:{ *:[i32] })
/* 40905*/      0, // EndSwitchType
/* 40906*/    /*Scope*/ 58, /*->40965*/
/* 40907*/      OPC_CheckChild1Integer, 2, 
/* 40909*/      OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->40938
/* 40912*/        OPC_CheckChild0Type, MVT::v4f64,
/* 40914*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 40916*/        OPC_EmitInteger, MVT::i32, 2, 
/* 40919*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATI), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40927*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40930*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3, 
                  // Src: (extractelt:{ *:[f64] } v4f64:{ *:[v4f64] }:$S, 2:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[f64] } (QVESPLATI:{ *:[v4f64] } ?:{ *:[v4f64] }:$S, 2:{ *:[i32] }), sub_64:{ *:[i32] })
/* 40938*/      /*SwitchType*/ 24, MVT::f32,// ->40964
/* 40940*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 40942*/        OPC_EmitInteger, MVT::i32, 2, 
/* 40945*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATIs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40953*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40956*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 2, 3, 
                  // Src: (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 2:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[f32] } (QVESPLATIs:{ *:[v4f32] } ?:{ *:[v4f32] }:$S, 2:{ *:[i32] }), sub_64:{ *:[i32] })
/* 40964*/      0, // EndSwitchType
/* 40965*/    /*Scope*/ 58, /*->41024*/
/* 40966*/      OPC_CheckChild1Integer, 3, 
/* 40968*/      OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->40997
/* 40971*/        OPC_CheckChild0Type, MVT::v4f64,
/* 40973*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 40975*/        OPC_EmitInteger, MVT::i32, 3, 
/* 40978*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATI), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40986*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40989*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3, 
                  // Src: (extractelt:{ *:[f64] } v4f64:{ *:[v4f64] }:$S, 3:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[f64] } (QVESPLATI:{ *:[v4f64] } ?:{ *:[v4f64] }:$S, 3:{ *:[i32] }), sub_64:{ *:[i32] })
/* 40997*/      /*SwitchType*/ 24, MVT::f32,// ->41023
/* 40999*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 41001*/        OPC_EmitInteger, MVT::i32, 3, 
/* 41004*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATIs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 41012*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41015*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 2, 3, 
                  // Src: (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, 3:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[f32] } (QVESPLATIs:{ *:[v4f32] } ?:{ *:[v4f32] }:$S, 3:{ *:[i32] }), sub_64:{ *:[i32] })
/* 41023*/      0, // EndSwitchType
/* 41024*/    /*Scope*/ 51, /*->41076*/
/* 41025*/      OPC_CheckChild0Type, MVT::v4f64,
/* 41027*/      OPC_RecordChild1, // #1 = $F
/* 41028*/      OPC_CheckChild1Type, MVT::i64,
/* 41030*/      OPC_CheckType, MVT::f64,
/* 41032*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 41034*/      OPC_EmitInteger, MVT::i32, 2, 
/* 41037*/      OPC_EmitInteger, MVT::i32, 61, 
/* 41040*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 41049*/      OPC_EmitNode1, TARGET_VAL(PPC::QVLPCLSXint), 0,
                    MVT::v4f64, 1/*#Ops*/, 4,  // Results = #5
/* 41056*/      OPC_EmitNode1, TARGET_VAL(PPC::QVFPERM), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 0, 5,  // Results = #6
/* 41065*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41068*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f64, 2/*#Ops*/, 6, 7, 
                // Src: (extractelt:{ *:[f64] } v4f64:{ *:[v4f64] }:$S, i64:{ *:[i64] }:$F) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[f64] } (QVFPERM:{ *:[v4f64] } ?:{ *:[v4f64] }:$S, ?:{ *:[v4f64] }:$S, (QVLPCLSXint:{ *:[v4f64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$F, 2:{ *:[i32] }, 61:{ *:[i32] }))), sub_64:{ *:[i32] })
/* 41076*/    /*Scope*/ 49, /*->41126*/
/* 41077*/      OPC_RecordChild1, // #1 = $F
/* 41078*/      OPC_CheckChild1Type, MVT::i64,
/* 41080*/      OPC_CheckType, MVT::f32,
/* 41082*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 41084*/      OPC_EmitInteger, MVT::i32, 2, 
/* 41087*/      OPC_EmitInteger, MVT::i32, 61, 
/* 41090*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 41099*/      OPC_EmitNode1, TARGET_VAL(PPC::QVLPCLSXint), 0,
                    MVT::v4f64, 1/*#Ops*/, 4,  // Results = #5
/* 41106*/      OPC_EmitNode1, TARGET_VAL(PPC::QVFPERMs), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 0, 5,  // Results = #6
/* 41115*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41118*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 6, 7, 
                // Src: (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$S, i64:{ *:[i64] }:$F) - Complexity = 3
                // Dst: (EXTRACT_SUBREG:{ *:[f32] } (QVFPERMs:{ *:[v4f32] } ?:{ *:[v4f32] }:$S, ?:{ *:[v4f32] }:$S, (QVLPCLSXint:{ *:[v4f64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$F, 2:{ *:[i32] }, 61:{ *:[i32] }))), sub_64:{ *:[i32] })
/* 41126*/    0, /*End of Scope*/
/* 41127*/  /*SwitchOpcode*/ 27, TARGET_VAL(PPCISD::MFVSR),// ->41157
/* 41130*/    OPC_RecordChild0, // #0 = $XT
/* 41131*/    OPC_CheckChild0Type, MVT::f64,
/* 41133*/    OPC_SwitchType /*2 cases */, 9, MVT::i64,// ->41145
/* 41136*/      OPC_CheckPatternPredicate, 29, // (PPCSubTarget->hasDirectMove())
/* 41138*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (PPCmfvsr:{ *:[i64] } f64:{ *:[f64] }:$XT) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } f64:{ *:[f64] }:$XT)
/* 41145*/    /*SwitchType*/ 9, MVT::i32,// ->41156
/* 41147*/      OPC_CheckPatternPredicate, 29, // (PPCSubTarget->hasDirectMove())
/* 41149*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (PPCmfvsr:{ *:[i32] } f64:{ *:[f64] }:$XT) - Complexity = 403
                // Dst: (MFVSRWZ:{ *:[i32] } f64:{ *:[f64] }:$XT)
/* 41156*/    0, // EndSwitchType
/* 41157*/  /*SwitchOpcode*/ 115|128,5/*755*/, TARGET_VAL(ISD::BITCAST),// ->41916
/* 41161*/    OPC_RecordChild0, // #0 = $S
/* 41162*/    OPC_Scope, 13, /*->41177*/ // 11 children in Scope
/* 41164*/      OPC_CheckChild0Type, MVT::f64,
/* 41166*/      OPC_CheckType, MVT::i64,
/* 41168*/      OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 41170*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (bitconvert:{ *:[i64] } f64:{ *:[f64] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } ?:{ *:[f64] }:$S)
/* 41177*/    /*Scope*/ 50, /*->41228*/
/* 41178*/      OPC_CheckChild0Type, MVT::f32,
/* 41180*/      OPC_CheckType, MVT::i32,
/* 41182*/      OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 41184*/      OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                    MVT::v4i32, 1/*#Ops*/, 0,  // Results = #1
/* 41191*/      OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                    MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/* 41198*/      OPC_EmitInteger, MVT::i32, 3, 
/* 41201*/      OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 41210*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41213*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/* 41221*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                    MVT::i32, 1/*#Ops*/, 6, 
                // Src: (bitconvert:{ *:[i32] } f32:{ *:[f32] }:$S) - Complexity = 403
                // Dst: (MFVSRWZ:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$S), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$S), 3:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 41228*/    /*Scope*/ 13, /*->41242*/
/* 41229*/      OPC_CheckChild0Type, MVT::i64,
/* 41231*/      OPC_CheckType, MVT::f64,
/* 41233*/      OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 41235*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRD), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (bitconvert:{ *:[f64] } i64:{ *:[i64] }:$S) - Complexity = 403
                // Dst: (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$S)
/* 41242*/    /*Scope*/ 111, /*->41354*/
/* 41243*/      OPC_CheckChild0Type, MVT::i32,
/* 41245*/      OPC_CheckType, MVT::f32,
/* 41247*/      OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 41249*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 41255*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #2
/* 41261*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41264*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 41273*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                    MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/* 41280*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41283*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 41292*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2i64, 0/*#Ops*/,  // Results = #8
/* 41298*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #9
/* 41304*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41307*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/* 41316*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                    MVT::f64, 1/*#Ops*/, 11,  // Results = #12
/* 41323*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41326*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2i64, 3/*#Ops*/, 8, 12, 13,  // Results = #14
/* 41335*/      OPC_EmitInteger, MVT::i32, 1, 
/* 41338*/      OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                    MVT::v4i32, 3/*#Ops*/, 7, 14, 15,  // Results = #16
/* 41347*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                    MVT::f32, 1/*#Ops*/, 16, 
                // Src: (bitconvert:{ *:[f32] } i32:{ *:[i32] }:$A) - Complexity = 403
                // Dst: (XSCVSPDPN:{ *:[f32] } (XXSLDWI:{ *:[v4i32] } (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), sub_64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), sub_64:{ *:[i32] }), 1:{ *:[i32] }))
/* 41354*/    /*Scope*/ 94, /*->41449*/
/* 41355*/      OPC_CheckChild0Type, MVT::v2f64,
/* 41357*/      OPC_SwitchType /*6 cases */, 13, MVT::v4i32,// ->41373
/* 41360*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41362*/        OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41365*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, VRRC:{ *:[i32] })
/* 41373*/      /*SwitchType*/ 13, MVT::v8i16,// ->41388
/* 41375*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41377*/        OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41380*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v8i16] } v2f64:{ *:[v2f64] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } ?:{ *:[v2f64] }:$A, VRRC:{ *:[i32] })
/* 41388*/      /*SwitchType*/ 13, MVT::v16i8,// ->41403
/* 41390*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41392*/        OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41395*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v16i8] } v2f64:{ *:[v2f64] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } ?:{ *:[v2f64] }:$A, VRRC:{ *:[i32] })
/* 41403*/      /*SwitchType*/ 13, MVT::v2i64,// ->41418
/* 41405*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41407*/        OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41410*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v2f64] }:$A, VRRC:{ *:[i32] })
/* 41418*/      /*SwitchType*/ 13, MVT::v1i128,// ->41433
/* 41420*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41422*/        OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41425*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i128, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v1i128] } v2f64:{ *:[v2f64] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i128] } ?:{ *:[v2f64] }:$A, VRRC:{ *:[i32] })
/* 41433*/      /*SwitchType*/ 13, MVT::v4f32,// ->41448
/* 41435*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41437*/        OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41440*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v4f32] } v2f64:{ *:[v2f64] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } ?:{ *:[v2f64] }:$A, VRRC:{ *:[i32] })
/* 41448*/      0, // EndSwitchType
/* 41449*/    /*Scope*/ 71, /*->41521*/
/* 41450*/      OPC_CheckChild0Type, MVT::v4f32,
/* 41452*/      OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->41477
/* 41455*/        OPC_Scope, 13, /*->41470*/ // 2 children in Scope
/* 41457*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41459*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41462*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v2i64] } v4f32:{ *:[v4f32] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4f32] }:$A, VSRC:{ *:[i32] })
/* 41470*/        /*Scope*/ 5, /*->41476*/
/* 41471*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41473*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v2i64] }:$src
/* 41476*/        0, /*End of Scope*/
/* 41477*/      /*SwitchType*/ 5, MVT::v16i8,// ->41484
/* 41479*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41481*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v16i8] }:$src
/* 41484*/      /*SwitchType*/ 5, MVT::v8i16,// ->41491
/* 41486*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41488*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v8i16] }:$src
/* 41491*/      /*SwitchType*/ 5, MVT::v4i32,// ->41498
/* 41493*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41495*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v4i32] }:$src
/* 41498*/      /*SwitchType*/ 5, MVT::v1i128,// ->41505
/* 41500*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41502*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v1i128] }:$src
/* 41505*/      /*SwitchType*/ 13, MVT::v2f64,// ->41520
/* 41507*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41509*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41512*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } ?:{ *:[v4f32] }:$A, VSRC:{ *:[i32] })
/* 41520*/      0, // EndSwitchType
/* 41521*/    /*Scope*/ 71, /*->41593*/
/* 41522*/      OPC_CheckChild0Type, MVT::v4i32,
/* 41524*/      OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->41549
/* 41527*/        OPC_Scope, 13, /*->41542*/ // 2 children in Scope
/* 41529*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41531*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41534*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v4i32] }:$A, VSRC:{ *:[i32] })
/* 41542*/        /*Scope*/ 5, /*->41548*/
/* 41543*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41545*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v2i64] }:$src
/* 41548*/        0, /*End of Scope*/
/* 41549*/      /*SwitchType*/ 5, MVT::v16i8,// ->41556
/* 41551*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41553*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v16i8] }:$src
/* 41556*/      /*SwitchType*/ 5, MVT::v8i16,// ->41563
/* 41558*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41560*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v8i16] }:$src
/* 41563*/      /*SwitchType*/ 5, MVT::v1i128,// ->41570
/* 41565*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41567*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v1i128] }:$src
/* 41570*/      /*SwitchType*/ 13, MVT::v2f64,// ->41585
/* 41572*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41574*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41577*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } ?:{ *:[v4i32] }:$A, VSRC:{ *:[i32] })
/* 41585*/      /*SwitchType*/ 5, MVT::v4f32,// ->41592
/* 41587*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41589*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v4f32] }:$src
/* 41592*/      0, // EndSwitchType
/* 41593*/    /*Scope*/ 71, /*->41665*/
/* 41594*/      OPC_CheckChild0Type, MVT::v8i16,
/* 41596*/      OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->41621
/* 41599*/        OPC_Scope, 13, /*->41614*/ // 2 children in Scope
/* 41601*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41603*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41606*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v2i64] } v8i16:{ *:[v8i16] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v8i16] }:$A, VSRC:{ *:[i32] })
/* 41614*/        /*Scope*/ 5, /*->41620*/
/* 41615*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41617*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v2i64] }:$src
/* 41620*/        0, /*End of Scope*/
/* 41621*/      /*SwitchType*/ 5, MVT::v16i8,// ->41628
/* 41623*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41625*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v16i8] }:$src
/* 41628*/      /*SwitchType*/ 5, MVT::v4i32,// ->41635
/* 41630*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41632*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v4i32] }:$src
/* 41635*/      /*SwitchType*/ 5, MVT::v1i128,// ->41642
/* 41637*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41639*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v1i128] }:$src
/* 41642*/      /*SwitchType*/ 13, MVT::v2f64,// ->41657
/* 41644*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41646*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41649*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v2f64] } v8i16:{ *:[v8i16] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } ?:{ *:[v8i16] }:$A, VSRC:{ *:[i32] })
/* 41657*/      /*SwitchType*/ 5, MVT::v4f32,// ->41664
/* 41659*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41661*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v4f32] }:$src
/* 41664*/      0, // EndSwitchType
/* 41665*/    /*Scope*/ 71, /*->41737*/
/* 41666*/      OPC_CheckChild0Type, MVT::v16i8,
/* 41668*/      OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->41693
/* 41671*/        OPC_Scope, 13, /*->41686*/ // 2 children in Scope
/* 41673*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41675*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41678*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[v16i8] }:$A, VSRC:{ *:[i32] })
/* 41686*/        /*Scope*/ 5, /*->41692*/
/* 41687*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41689*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v2i64] }:$src
/* 41692*/        0, /*End of Scope*/
/* 41693*/      /*SwitchType*/ 5, MVT::v8i16,// ->41700
/* 41695*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41697*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v8i16] }:$src
/* 41700*/      /*SwitchType*/ 5, MVT::v4i32,// ->41707
/* 41702*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41704*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v4i32] }:$src
/* 41707*/      /*SwitchType*/ 5, MVT::v1i128,// ->41714
/* 41709*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41711*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v1i128] }:$src
/* 41714*/      /*SwitchType*/ 13, MVT::v2f64,// ->41729
/* 41716*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41718*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41721*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v2f64] } v16i8:{ *:[v16i8] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } ?:{ *:[v16i8] }:$A, VSRC:{ *:[i32] })
/* 41729*/      /*SwitchType*/ 5, MVT::v4f32,// ->41736
/* 41731*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41733*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v4f32] }:$src
/* 41736*/      0, // EndSwitchType
/* 41737*/    /*Scope*/ 122, /*->41860*/
/* 41738*/      OPC_CheckChild0Type, MVT::v2i64,
/* 41740*/      OPC_SwitchType /*6 cases */, 22, MVT::v4i32,// ->41765
/* 41743*/        OPC_Scope, 13, /*->41758*/ // 2 children in Scope
/* 41745*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41747*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41750*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v2i64] }:$A, VRRC:{ *:[i32] })
/* 41758*/        /*Scope*/ 5, /*->41764*/
/* 41759*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41761*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4i32] }:$src
/* 41764*/        0, /*End of Scope*/
/* 41765*/      /*SwitchType*/ 22, MVT::v8i16,// ->41789
/* 41767*/        OPC_Scope, 13, /*->41782*/ // 2 children in Scope
/* 41769*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41771*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41774*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v8i16] } v2i64:{ *:[v2i64] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } ?:{ *:[v2i64] }:$A, VRRC:{ *:[i32] })
/* 41782*/        /*Scope*/ 5, /*->41788*/
/* 41783*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41785*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v8i16] }:$src
/* 41788*/        0, /*End of Scope*/
/* 41789*/      /*SwitchType*/ 22, MVT::v16i8,// ->41813
/* 41791*/        OPC_Scope, 13, /*->41806*/ // 2 children in Scope
/* 41793*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41795*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41798*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v16i8] } v2i64:{ *:[v2i64] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } ?:{ *:[v2i64] }:$A, VRRC:{ *:[i32] })
/* 41806*/        /*Scope*/ 5, /*->41812*/
/* 41807*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41809*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v16i8] }:$src
/* 41812*/        0, /*End of Scope*/
/* 41813*/      /*SwitchType*/ 5, MVT::v1i128,// ->41820
/* 41815*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41817*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v1i128] }:$src
/* 41820*/      /*SwitchType*/ 22, MVT::v4f32,// ->41844
/* 41822*/        OPC_Scope, 13, /*->41837*/ // 2 children in Scope
/* 41824*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41826*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41829*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } ?:{ *:[v2i64] }:$A, VRRC:{ *:[i32] })
/* 41837*/        /*Scope*/ 5, /*->41843*/
/* 41838*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41840*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4f32] }:$src
/* 41843*/        0, /*End of Scope*/
/* 41844*/      /*SwitchType*/ 13, MVT::v2f64,// ->41859
/* 41846*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41848*/        OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41851*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } ?:{ *:[v2i64] }:$A, VRRC:{ *:[i32] })
/* 41859*/      0, // EndSwitchType
/* 41860*/    /*Scope*/ 54, /*->41915*/
/* 41861*/      OPC_CheckChild0Type, MVT::v1i128,
/* 41863*/      OPC_SwitchType /*6 cases */, 5, MVT::v16i8,// ->41871
/* 41866*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41868*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v16i8] }:$src
/* 41871*/      /*SwitchType*/ 5, MVT::v8i16,// ->41878
/* 41873*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41875*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v8i16] }:$src
/* 41878*/      /*SwitchType*/ 5, MVT::v4i32,// ->41885
/* 41880*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41882*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v4i32] }:$src
/* 41885*/      /*SwitchType*/ 5, MVT::v2i64,// ->41892
/* 41887*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41889*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v2i64] }:$src
/* 41892*/      /*SwitchType*/ 13, MVT::v2f64,// ->41907
/* 41894*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 41896*/        OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 41899*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v2f64] } v1i128:{ *:[v1i128] }:$A) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } ?:{ *:[v1i128] }:$A, VRRC:{ *:[i32] })
/* 41907*/      /*SwitchType*/ 5, MVT::v4f32,// ->41914
/* 41909*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 41911*/        OPC_CompleteMatch, 1, 0, 
                   // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                   // Dst: VRRC:{ *:[v4f32] }:$src
/* 41914*/      0, // EndSwitchType
/* 41915*/    0, /*End of Scope*/
/* 41916*/  /*SwitchOpcode*/ 122, TARGET_VAL(ISD::FP_TO_SINT),// ->42041
/* 41919*/    OPC_RecordChild0, // #0 = $src
/* 41920*/    OPC_Scope, 51, /*->41973*/ // 5 children in Scope
/* 41922*/      OPC_CheckChild0Type, MVT::f128,
/* 41924*/      OPC_SwitchType /*2 cases */, 16, MVT::i64,// ->41943
/* 41927*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 41929*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSDZ), 0,
                      MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 41936*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVRD), 0,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (fp_to_sint:{ *:[i64] } f128:{ *:[f128] }:$src) - Complexity = 403
                  // Dst: (MFVRD:{ *:[i64] } (XSCVQPSDZ:{ *:[f128] } ?:{ *:[f128] }:$src))
/* 41943*/      /*SwitchType*/ 27, MVT::i32,// ->41972
/* 41945*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 41947*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSWZ), 0,
                      MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 41954*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 41957*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 41965*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                      MVT::i32, 1/*#Ops*/, 3, 
                  // Src: (fp_to_sint:{ *:[i32] } f128:{ *:[f128] }:$src) - Complexity = 403
                  // Dst: (MFVSRWZ:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPSWZ:{ *:[f128] } ?:{ *:[f128] }:$src), VFRC:{ *:[i32] }))
/* 41972*/      0, // EndSwitchType
/* 41973*/    /*Scope*/ 13, /*->41987*/
/* 41974*/      OPC_CheckChild0Type, MVT::f64,
/* 41976*/      OPC_CheckType, MVT::i32,
/* 41978*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 41980*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDCTSIZ), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (fp_to_sint:{ *:[i32] } f64:{ *:[f64] }:$RB) - Complexity = 3
                // Dst: (EFDCTSIZ:{ *:[i32] } f64:{ *:[f64] }:$RB)
/* 41987*/    /*Scope*/ 13, /*->42001*/
/* 41988*/      OPC_CheckChild0Type, MVT::f32,
/* 41990*/      OPC_CheckType, MVT::i32,
/* 41992*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 41994*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSCTSIZ), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (fp_to_sint:{ *:[i32] } f32:{ *:[f32] }:$RB) - Complexity = 3
                // Dst: (EFSCTSIZ:{ *:[i32] } f32:{ *:[f32] }:$RB)
/* 42001*/    /*Scope*/ 11, /*->42013*/
/* 42002*/      OPC_CheckType, MVT::v2i64,
/* 42004*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 42006*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPSXDS), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (fp_to_sint:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVCVDPSXDS:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XB)
/* 42013*/    /*Scope*/ 26, /*->42040*/
/* 42014*/      OPC_CheckType, MVT::v4i32,
/* 42016*/      OPC_CheckChild0Type, MVT::v4f32,
/* 42018*/      OPC_Scope, 9, /*->42029*/ // 2 children in Scope
/* 42020*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 42022*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPSXWS), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVCVSPSXWS:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XB)
/* 42029*/      /*Scope*/ 9, /*->42039*/
/* 42030*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 42032*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTSXS_0), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$vA) - Complexity = 3
                  // Dst: (VCTSXS_0:{ *:[v4i32] } ?:{ *:[v4f32] }:$vA)
/* 42039*/      0, /*End of Scope*/
/* 42040*/    0, /*End of Scope*/
/* 42041*/  /*SwitchOpcode*/ 122, TARGET_VAL(ISD::FP_TO_UINT),// ->42166
/* 42044*/    OPC_RecordChild0, // #0 = $src
/* 42045*/    OPC_Scope, 51, /*->42098*/ // 5 children in Scope
/* 42047*/      OPC_CheckChild0Type, MVT::f128,
/* 42049*/      OPC_SwitchType /*2 cases */, 16, MVT::i64,// ->42068
/* 42052*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 42054*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUDZ), 0,
                      MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 42061*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVRD), 0,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (fp_to_uint:{ *:[i64] } f128:{ *:[f128] }:$src) - Complexity = 403
                  // Dst: (MFVRD:{ *:[i64] } (XSCVQPUDZ:{ *:[f128] } ?:{ *:[f128] }:$src))
/* 42068*/      /*SwitchType*/ 27, MVT::i32,// ->42097
/* 42070*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 42072*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUWZ), 0,
                      MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 42079*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 42082*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 42090*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRWZ), 0,
                      MVT::i32, 1/*#Ops*/, 3, 
                  // Src: (fp_to_uint:{ *:[i32] } f128:{ *:[f128] }:$src) - Complexity = 403
                  // Dst: (MFVSRWZ:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPUWZ:{ *:[f128] } ?:{ *:[f128] }:$src), VFRC:{ *:[i32] }))
/* 42097*/      0, // EndSwitchType
/* 42098*/    /*Scope*/ 13, /*->42112*/
/* 42099*/      OPC_CheckChild0Type, MVT::f64,
/* 42101*/      OPC_CheckType, MVT::i32,
/* 42103*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 42105*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDCTUIZ), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (fp_to_uint:{ *:[i32] } f64:{ *:[f64] }:$RB) - Complexity = 3
                // Dst: (EFDCTUIZ:{ *:[i32] } f64:{ *:[f64] }:$RB)
/* 42112*/    /*Scope*/ 13, /*->42126*/
/* 42113*/      OPC_CheckChild0Type, MVT::f32,
/* 42115*/      OPC_CheckType, MVT::i32,
/* 42117*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 42119*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSCTUIZ), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (fp_to_uint:{ *:[i32] } f32:{ *:[f32] }:$RB) - Complexity = 3
                // Dst: (EFSCTUIZ:{ *:[i32] } f32:{ *:[f32] }:$RB)
/* 42126*/    /*Scope*/ 11, /*->42138*/
/* 42127*/      OPC_CheckType, MVT::v2i64,
/* 42129*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 42131*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPUXDS), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (fp_to_uint:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVCVDPUXDS:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XB)
/* 42138*/    /*Scope*/ 26, /*->42165*/
/* 42139*/      OPC_CheckType, MVT::v4i32,
/* 42141*/      OPC_CheckChild0Type, MVT::v4f32,
/* 42143*/      OPC_Scope, 9, /*->42154*/ // 2 children in Scope
/* 42145*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 42147*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPUXWS), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_uint:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVCVSPUXWS:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XB)
/* 42154*/      /*Scope*/ 9, /*->42164*/
/* 42155*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 42157*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTUXS_0), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_uint:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$vA) - Complexity = 3
                  // Dst: (VCTUXS_0:{ *:[v4i32] } ?:{ *:[v4f32] }:$vA)
/* 42164*/      0, /*End of Scope*/
/* 42165*/    0, /*End of Scope*/
/* 42166*/  /*SwitchOpcode*/ 82, TARGET_VAL(ISD::PREFETCH),// ->42251
/* 42169*/    OPC_RecordMemRef,
/* 42170*/    OPC_RecordNode, // #0 = 'prefetch' chained node
/* 42171*/    OPC_RecordChild1, // #1 = $dst
/* 42172*/    OPC_Scope, 49, /*->42223*/ // 2 children in Scope
/* 42174*/      OPC_CheckChild2Integer, 0, 
/* 42176*/      OPC_CheckChild2Type, MVT::i32,
/* 42178*/      OPC_MoveChild3,
/* 42179*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 42182*/      OPC_MoveParent,
/* 42183*/      OPC_Scope, 17, /*->42202*/ // 2 children in Scope
/* 42185*/        OPC_CheckChild4Integer, 1, 
/* 42187*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/* 42190*/        OPC_EmitMergeInputChains1_0,
/* 42191*/        OPC_EmitInteger, MVT::i32, 0, 
/* 42194*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBT), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 4, 2, 3, 
                  // Src: (prefetch xoaddr:{ *:[iPTR] }:$dst, 0:{ *:[i32] }, (imm:{ *:[i32] }), 1:{ *:[i32] }) - Complexity = 25
                  // Dst: (DCBT 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/* 42202*/      /*Scope*/ 19, /*->42222*/
/* 42203*/        OPC_CheckChild4Integer, 0, 
/* 42205*/        OPC_CheckPatternPredicate, 31, // (PPCSubTarget->hasICBT())
/* 42207*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/* 42210*/        OPC_EmitMergeInputChains1_0,
/* 42211*/        OPC_EmitInteger, MVT::i32, 0, 
/* 42214*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::ICBT), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 4, 2, 3, 
                  // Src: (prefetch xoaddr:{ *:[iPTR] }:$dst, 0:{ *:[i32] }, (imm:{ *:[i32] }), 0:{ *:[i32] }) - Complexity = 25
                  // Dst: (ICBT 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/* 42222*/      0, /*End of Scope*/
/* 42223*/    /*Scope*/ 26, /*->42250*/
/* 42224*/      OPC_CheckChild2Integer, 1, 
/* 42226*/      OPC_CheckChild2Type, MVT::i32,
/* 42228*/      OPC_MoveChild3,
/* 42229*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 42232*/      OPC_MoveParent,
/* 42233*/      OPC_CheckChild4Integer, 1, 
/* 42235*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/* 42238*/      OPC_EmitMergeInputChains1_0,
/* 42239*/      OPC_EmitInteger, MVT::i32, 0, 
/* 42242*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBTST), 0|OPFL_Chain|OPFL_MemRefs,
                    3/*#Ops*/, 4, 2, 3, 
                // Src: (prefetch xoaddr:{ *:[iPTR] }:$dst, 1:{ *:[i32] }, (imm:{ *:[i32] }), 1:{ *:[i32] }) - Complexity = 25
                // Dst: (DCBTST 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/* 42250*/    0, /*End of Scope*/
/* 42251*/  /*SwitchOpcode*/ 104|128,30/*3944*/, TARGET_VAL(ISD::XOR),// ->46199
/* 42255*/    OPC_Scope, 68|128,6/*836*/, /*->43094*/ // 20 children in Scope
/* 42258*/      OPC_MoveChild0,
/* 42259*/      OPC_SwitchOpcode /*4 cases */, 15|128,5/*655*/, TARGET_VAL(ISD::SETCC),// ->42919
/* 42264*/        OPC_RecordChild0, // #0 = $s1
/* 42265*/        OPC_Scope, 67|128,2/*323*/, /*->42591*/ // 2 children in Scope
/* 42268*/          OPC_CheckChild0Type, MVT::i32,
/* 42270*/          OPC_RecordChild1, // #1 = $imm
/* 42271*/          OPC_MoveChild1,
/* 42272*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 42275*/          OPC_Scope, 42, /*->42319*/ // 6 children in Scope
/* 42277*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 42279*/            OPC_MoveParent,
/* 42280*/            OPC_MoveChild2,
/* 42281*/            OPC_CheckCondCode, ISD::SETUGE,
/* 42283*/            OPC_MoveParent,
/* 42284*/            OPC_MoveParent,
/* 42285*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42296*/            OPC_CheckType, MVT::i1,
/* 42298*/            OPC_EmitConvertToTarget, 1,
/* 42300*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42308*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 42311*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] })
/* 42319*/          /*Scope*/ 42, /*->42362*/
/* 42320*/            OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 42322*/            OPC_MoveParent,
/* 42323*/            OPC_MoveChild2,
/* 42324*/            OPC_CheckCondCode, ISD::SETGE,
/* 42326*/            OPC_MoveParent,
/* 42327*/            OPC_MoveParent,
/* 42328*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42339*/            OPC_CheckType, MVT::i1,
/* 42341*/            OPC_EmitConvertToTarget, 1,
/* 42343*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42351*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 42354*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] })
/* 42362*/          /*Scope*/ 42, /*->42405*/
/* 42363*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 42365*/            OPC_MoveParent,
/* 42366*/            OPC_MoveChild2,
/* 42367*/            OPC_CheckCondCode, ISD::SETULE,
/* 42369*/            OPC_MoveParent,
/* 42370*/            OPC_MoveParent,
/* 42371*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42382*/            OPC_CheckType, MVT::i1,
/* 42384*/            OPC_EmitConvertToTarget, 1,
/* 42386*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42394*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 42397*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] })
/* 42405*/          /*Scope*/ 84, /*->42490*/
/* 42406*/            OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 42408*/            OPC_MoveParent,
/* 42409*/            OPC_MoveChild2,
/* 42410*/            OPC_Scope, 38, /*->42450*/ // 2 children in Scope
/* 42412*/              OPC_CheckCondCode, ISD::SETLE,
/* 42414*/              OPC_MoveParent,
/* 42415*/              OPC_MoveParent,
/* 42416*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42427*/              OPC_CheckType, MVT::i1,
/* 42429*/              OPC_EmitConvertToTarget, 1,
/* 42431*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42439*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 42442*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 3, 4, 
                        // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                        // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] })
/* 42450*/            /*Scope*/ 38, /*->42489*/
/* 42451*/              OPC_CheckCondCode, ISD::SETNE,
/* 42453*/              OPC_MoveParent,
/* 42454*/              OPC_MoveParent,
/* 42455*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42466*/              OPC_CheckType, MVT::i1,
/* 42468*/              OPC_EmitConvertToTarget, 1,
/* 42470*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42478*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 42481*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 3, 4, 
                        // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                        // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] })
/* 42489*/            0, /*End of Scope*/
/* 42490*/          /*Scope*/ 42, /*->42533*/
/* 42491*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 42493*/            OPC_MoveParent,
/* 42494*/            OPC_MoveChild2,
/* 42495*/            OPC_CheckCondCode, ISD::SETNE,
/* 42497*/            OPC_MoveParent,
/* 42498*/            OPC_MoveParent,
/* 42499*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42510*/            OPC_CheckType, MVT::i1,
/* 42512*/            OPC_EmitConvertToTarget, 1,
/* 42514*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42522*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 42525*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] })
/* 42533*/          /*Scope*/ 56, /*->42590*/
/* 42534*/            OPC_MoveParent,
/* 42535*/            OPC_MoveChild2,
/* 42536*/            OPC_CheckCondCode, ISD::SETNE,
/* 42538*/            OPC_MoveParent,
/* 42539*/            OPC_MoveParent,
/* 42540*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42551*/            OPC_CheckType, MVT::i1,
/* 42553*/            OPC_EmitConvertToTarget, 1,
/* 42555*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 42558*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 42566*/            OPC_EmitConvertToTarget, 1,
/* 42568*/            OPC_EmitNodeXForm, 1, 5, // LO16
/* 42571*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 42579*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 42582*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 14
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] })
/* 42590*/          0, /*End of Scope*/
/* 42591*/        /*Scope*/ 69|128,2/*325*/, /*->42918*/
/* 42593*/          OPC_CheckChild0Type, MVT::i64,
/* 42595*/          OPC_RecordChild1, // #1 = $imm
/* 42596*/          OPC_MoveChild1,
/* 42597*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 42600*/          OPC_Scope, 42, /*->42644*/ // 6 children in Scope
/* 42602*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 42604*/            OPC_MoveParent,
/* 42605*/            OPC_MoveChild2,
/* 42606*/            OPC_CheckCondCode, ISD::SETUGE,
/* 42608*/            OPC_MoveParent,
/* 42609*/            OPC_MoveParent,
/* 42610*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42621*/            OPC_CheckType, MVT::i1,
/* 42623*/            OPC_EmitConvertToTarget, 1,
/* 42625*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42633*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 42636*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] })
/* 42644*/          /*Scope*/ 42, /*->42687*/
/* 42645*/            OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 42647*/            OPC_MoveParent,
/* 42648*/            OPC_MoveChild2,
/* 42649*/            OPC_CheckCondCode, ISD::SETGE,
/* 42651*/            OPC_MoveParent,
/* 42652*/            OPC_MoveParent,
/* 42653*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42664*/            OPC_CheckType, MVT::i1,
/* 42666*/            OPC_EmitConvertToTarget, 1,
/* 42668*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42676*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 42679*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] })
/* 42687*/          /*Scope*/ 42, /*->42730*/
/* 42688*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 42690*/            OPC_MoveParent,
/* 42691*/            OPC_MoveChild2,
/* 42692*/            OPC_CheckCondCode, ISD::SETULE,
/* 42694*/            OPC_MoveParent,
/* 42695*/            OPC_MoveParent,
/* 42696*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42707*/            OPC_CheckType, MVT::i1,
/* 42709*/            OPC_EmitConvertToTarget, 1,
/* 42711*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42719*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 42722*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] })
/* 42730*/          /*Scope*/ 84, /*->42815*/
/* 42731*/            OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 42733*/            OPC_MoveParent,
/* 42734*/            OPC_MoveChild2,
/* 42735*/            OPC_Scope, 38, /*->42775*/ // 2 children in Scope
/* 42737*/              OPC_CheckCondCode, ISD::SETLE,
/* 42739*/              OPC_MoveParent,
/* 42740*/              OPC_MoveParent,
/* 42741*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42752*/              OPC_CheckType, MVT::i1,
/* 42754*/              OPC_EmitConvertToTarget, 1,
/* 42756*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42764*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 42767*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 3, 4, 
                        // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                        // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] })
/* 42775*/            /*Scope*/ 38, /*->42814*/
/* 42776*/              OPC_CheckCondCode, ISD::SETNE,
/* 42778*/              OPC_MoveParent,
/* 42779*/              OPC_MoveParent,
/* 42780*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42791*/              OPC_CheckType, MVT::i1,
/* 42793*/              OPC_EmitConvertToTarget, 1,
/* 42795*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42803*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 42806*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 3, 4, 
                        // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                        // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] })
/* 42814*/            0, /*End of Scope*/
/* 42815*/          /*Scope*/ 42, /*->42858*/
/* 42816*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 42818*/            OPC_MoveParent,
/* 42819*/            OPC_MoveChild2,
/* 42820*/            OPC_CheckCondCode, ISD::SETNE,
/* 42822*/            OPC_MoveParent,
/* 42823*/            OPC_MoveParent,
/* 42824*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42835*/            OPC_CheckType, MVT::i1,
/* 42837*/            OPC_EmitConvertToTarget, 1,
/* 42839*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42847*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 42850*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] })
/* 42858*/          /*Scope*/ 58, /*->42917*/
/* 42859*/            OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 42861*/            OPC_MoveParent,
/* 42862*/            OPC_MoveChild2,
/* 42863*/            OPC_CheckCondCode, ISD::SETNE,
/* 42865*/            OPC_MoveParent,
/* 42866*/            OPC_MoveParent,
/* 42867*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42878*/            OPC_CheckType, MVT::i1,
/* 42880*/            OPC_EmitConvertToTarget, 1,
/* 42882*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 42885*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 42893*/            OPC_EmitConvertToTarget, 1,
/* 42895*/            OPC_EmitNodeXForm, 1, 5, // LO16
/* 42898*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 42906*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 42909*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 15
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] })
/* 42917*/          0, /*End of Scope*/
/* 42918*/        0, /*End of Scope*/
/* 42919*/      /*SwitchOpcode*/ 46, TARGET_VAL(ISD::AND),// ->42968
/* 42922*/        OPC_RecordChild0, // #0 = $rS
/* 42923*/        OPC_RecordChild1, // #1 = $rB
/* 42924*/        OPC_MoveParent,
/* 42925*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42936*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->42947
/* 42939*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::NAND), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i32] } (and:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB), -1:{ *:[i32] }) - Complexity = 11
                    // Dst: (NAND:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 42947*/        /*SwitchType*/ 8, MVT::i1,// ->42957
/* 42949*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNAND), 0,
                        MVT::i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i1] } (and:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB), -1:{ *:[i1] }) - Complexity = 11
                    // Dst: (CRNAND:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 42957*/        /*SwitchType*/ 8, MVT::i64,// ->42967
/* 42959*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::NAND8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i64] } (and:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB), -1:{ *:[i64] }) - Complexity = 11
                    // Dst: (NAND8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 42967*/        0, // EndSwitchType
/* 42968*/      /*SwitchOpcode*/ 46, TARGET_VAL(ISD::OR),// ->43017
/* 42971*/        OPC_RecordChild0, // #0 = $rS
/* 42972*/        OPC_RecordChild1, // #1 = $rB
/* 42973*/        OPC_MoveParent,
/* 42974*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42985*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->42996
/* 42988*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::NOR), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i32] } (or:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB), -1:{ *:[i32] }) - Complexity = 11
                    // Dst: (NOR:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 42996*/        /*SwitchType*/ 8, MVT::i1,// ->43006
/* 42998*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i1] } (or:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB), -1:{ *:[i1] }) - Complexity = 11
                    // Dst: (CRNOR:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 43006*/        /*SwitchType*/ 8, MVT::i64,// ->43016
/* 43008*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::NOR8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i64] } (or:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB), -1:{ *:[i64] }) - Complexity = 11
                    // Dst: (NOR8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 43016*/        0, // EndSwitchType
/* 43017*/      /*SwitchOpcode*/ 73, TARGET_VAL(ISD::XOR),// ->43093
/* 43020*/        OPC_RecordChild0, // #0 = $rS
/* 43021*/        OPC_Scope, 45, /*->43068*/ // 2 children in Scope
/* 43023*/          OPC_RecordChild1, // #1 = $rB
/* 43024*/          OPC_MoveParent,
/* 43025*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43036*/          OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->43047
/* 43039*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EQV), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[i32] } (xor:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB), -1:{ *:[i32] }) - Complexity = 11
                      // Dst: (EQV:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 43047*/          /*SwitchType*/ 8, MVT::i1,// ->43057
/* 43049*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::CREQV), 0,
                          MVT::i1, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[i1] } (xor:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (CREQV:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 43057*/          /*SwitchType*/ 8, MVT::i64,// ->43067
/* 43059*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EQV8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[i64] } (xor:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB), -1:{ *:[i64] }) - Complexity = 11
                      // Dst: (EQV8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 43067*/          0, // EndSwitchType
/* 43068*/        /*Scope*/ 23, /*->43092*/
/* 43069*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43080*/          OPC_MoveParent,
/* 43081*/          OPC_RecordChild1, // #1 = $rB
/* 43082*/          OPC_CheckType, MVT::i32,
/* 43084*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EQV), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i32] } (xor:{ *:[i32] } i32:{ *:[i32] }:$rS, -1:{ *:[i32] }), i32:{ *:[i32] }:$rB) - Complexity = 11
                    // Dst: (EQV:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 43092*/        0, /*End of Scope*/
/* 43093*/      0, // EndSwitchOpcode
/* 43094*/    /*Scope*/ 28, /*->43123*/
/* 43095*/      OPC_RecordChild0, // #0 = $rB
/* 43096*/      OPC_MoveChild1,
/* 43097*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 43100*/      OPC_RecordChild0, // #1 = $rS
/* 43101*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43112*/      OPC_MoveParent,
/* 43113*/      OPC_CheckType, MVT::i32,
/* 43115*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::EQV), 0,
                    MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (xor:{ *:[i32] } i32:{ *:[i32] }:$rB, (xor:{ *:[i32] } i32:{ *:[i32] }:$rS, -1:{ *:[i32] })) - Complexity = 11
                // Dst: (EQV:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 43123*/    /*Scope*/ 28, /*->43152*/
/* 43124*/      OPC_MoveChild0,
/* 43125*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 43128*/      OPC_RecordChild0, // #0 = $CRA
/* 43129*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43140*/      OPC_MoveParent,
/* 43141*/      OPC_RecordChild1, // #1 = $CRB
/* 43142*/      OPC_CheckType, MVT::i1,
/* 43144*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1, 
                // Src: (xor:{ *:[i1] } (xor:{ *:[i1] } i1:{ *:[i1] }:$CRA, -1:{ *:[i1] }), i1:{ *:[i1] }:$CRB) - Complexity = 11
                // Dst: (CREQV:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 43152*/    /*Scope*/ 28, /*->43181*/
/* 43153*/      OPC_RecordChild0, // #0 = $CRB
/* 43154*/      OPC_MoveChild1,
/* 43155*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 43158*/      OPC_RecordChild0, // #1 = $CRA
/* 43159*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43170*/      OPC_MoveParent,
/* 43171*/      OPC_CheckType, MVT::i1,
/* 43173*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0, 
                // Src: (xor:{ *:[i1] } i1:{ *:[i1] }:$CRB, (xor:{ *:[i1] } i1:{ *:[i1] }:$CRA, -1:{ *:[i1] })) - Complexity = 11
                // Dst: (CREQV:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 43181*/    /*Scope*/ 28, /*->43210*/
/* 43182*/      OPC_MoveChild0,
/* 43183*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 43186*/      OPC_RecordChild0, // #0 = $rS
/* 43187*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43198*/      OPC_MoveParent,
/* 43199*/      OPC_RecordChild1, // #1 = $rB
/* 43200*/      OPC_CheckType, MVT::i64,
/* 43202*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::EQV8), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (xor:{ *:[i64] } (xor:{ *:[i64] } i64:{ *:[i64] }:$rS, -1:{ *:[i64] }), i64:{ *:[i64] }:$rB) - Complexity = 11
                // Dst: (EQV8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 43210*/    /*Scope*/ 28, /*->43239*/
/* 43211*/      OPC_RecordChild0, // #0 = $rB
/* 43212*/      OPC_MoveChild1,
/* 43213*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 43216*/      OPC_RecordChild0, // #1 = $rS
/* 43217*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43228*/      OPC_MoveParent,
/* 43229*/      OPC_CheckType, MVT::i64,
/* 43231*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::EQV8), 0,
                    MVT::i64, 2/*#Ops*/, 1, 0, 
                // Src: (xor:{ *:[i64] } i64:{ *:[i64] }:$rB, (xor:{ *:[i64] } i64:{ *:[i64] }:$rS, -1:{ *:[i64] })) - Complexity = 11
                // Dst: (EQV8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 43239*/    /*Scope*/ 97|128,13/*1761*/, /*->45002*/
/* 43241*/      OPC_MoveChild0,
/* 43242*/      OPC_SwitchOpcode /*2 cases */, 36|128,13/*1700*/, TARGET_VAL(ISD::SETCC),// ->44947
/* 43247*/        OPC_RecordChild0, // #0 = $s1
/* 43248*/        OPC_Scope, 63|128,1/*191*/, /*->43442*/ // 5 children in Scope
/* 43251*/          OPC_CheckChild0Type, MVT::i32,
/* 43253*/          OPC_RecordChild1, // #1 = $s2
/* 43254*/          OPC_MoveChild2,
/* 43255*/          OPC_Scope, 36, /*->43293*/ // 5 children in Scope
/* 43257*/            OPC_CheckCondCode, ISD::SETUGE,
/* 43259*/            OPC_MoveParent,
/* 43260*/            OPC_MoveParent,
/* 43261*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43272*/            OPC_CheckType, MVT::i1,
/* 43274*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43282*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 43285*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] })
/* 43293*/          /*Scope*/ 36, /*->43330*/
/* 43294*/            OPC_CheckCondCode, ISD::SETGE,
/* 43296*/            OPC_MoveParent,
/* 43297*/            OPC_MoveParent,
/* 43298*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43309*/            OPC_CheckType, MVT::i1,
/* 43311*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43319*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 43322*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] })
/* 43330*/          /*Scope*/ 36, /*->43367*/
/* 43331*/            OPC_CheckCondCode, ISD::SETULE,
/* 43333*/            OPC_MoveParent,
/* 43334*/            OPC_MoveParent,
/* 43335*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43346*/            OPC_CheckType, MVT::i1,
/* 43348*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43356*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 43359*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] })
/* 43367*/          /*Scope*/ 36, /*->43404*/
/* 43368*/            OPC_CheckCondCode, ISD::SETLE,
/* 43370*/            OPC_MoveParent,
/* 43371*/            OPC_MoveParent,
/* 43372*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43383*/            OPC_CheckType, MVT::i1,
/* 43385*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43393*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 43396*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] })
/* 43404*/          /*Scope*/ 36, /*->43441*/
/* 43405*/            OPC_CheckCondCode, ISD::SETNE,
/* 43407*/            OPC_MoveParent,
/* 43408*/            OPC_MoveParent,
/* 43409*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43420*/            OPC_CheckType, MVT::i1,
/* 43422*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43430*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 43433*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] })
/* 43441*/          0, /*End of Scope*/
/* 43442*/        /*Scope*/ 63|128,1/*191*/, /*->43635*/
/* 43444*/          OPC_CheckChild0Type, MVT::i64,
/* 43446*/          OPC_RecordChild1, // #1 = $s2
/* 43447*/          OPC_MoveChild2,
/* 43448*/          OPC_Scope, 36, /*->43486*/ // 5 children in Scope
/* 43450*/            OPC_CheckCondCode, ISD::SETUGE,
/* 43452*/            OPC_MoveParent,
/* 43453*/            OPC_MoveParent,
/* 43454*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43465*/            OPC_CheckType, MVT::i1,
/* 43467*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43475*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 43478*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] })
/* 43486*/          /*Scope*/ 36, /*->43523*/
/* 43487*/            OPC_CheckCondCode, ISD::SETGE,
/* 43489*/            OPC_MoveParent,
/* 43490*/            OPC_MoveParent,
/* 43491*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43502*/            OPC_CheckType, MVT::i1,
/* 43504*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43512*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 43515*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] })
/* 43523*/          /*Scope*/ 36, /*->43560*/
/* 43524*/            OPC_CheckCondCode, ISD::SETULE,
/* 43526*/            OPC_MoveParent,
/* 43527*/            OPC_MoveParent,
/* 43528*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43539*/            OPC_CheckType, MVT::i1,
/* 43541*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43549*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 43552*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] })
/* 43560*/          /*Scope*/ 36, /*->43597*/
/* 43561*/            OPC_CheckCondCode, ISD::SETLE,
/* 43563*/            OPC_MoveParent,
/* 43564*/            OPC_MoveParent,
/* 43565*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43576*/            OPC_CheckType, MVT::i1,
/* 43578*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43586*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 43589*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] })
/* 43597*/          /*Scope*/ 36, /*->43634*/
/* 43598*/            OPC_CheckCondCode, ISD::SETNE,
/* 43600*/            OPC_MoveParent,
/* 43601*/            OPC_MoveParent,
/* 43602*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43613*/            OPC_CheckType, MVT::i1,
/* 43615*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43623*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 43626*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] })
/* 43634*/          0, /*End of Scope*/
/* 43635*/        /*Scope*/ 1|128,4/*513*/, /*->44150*/
/* 43637*/          OPC_CheckChild0Type, MVT::f32,
/* 43639*/          OPC_RecordChild1, // #1 = $s2
/* 43640*/          OPC_MoveChild2,
/* 43641*/          OPC_Scope, 38, /*->43681*/ // 13 children in Scope
/* 43643*/            OPC_CheckCondCode, ISD::SETUGE,
/* 43645*/            OPC_MoveParent,
/* 43646*/            OPC_MoveParent,
/* 43647*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43658*/            OPC_CheckType, MVT::i1,
/* 43660*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 43662*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43670*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 43673*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] })
/* 43681*/          /*Scope*/ 38, /*->43720*/
/* 43682*/            OPC_CheckCondCode, ISD::SETGE,
/* 43684*/            OPC_MoveParent,
/* 43685*/            OPC_MoveParent,
/* 43686*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43697*/            OPC_CheckType, MVT::i1,
/* 43699*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 43701*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43709*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 43712*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] })
/* 43720*/          /*Scope*/ 38, /*->43759*/
/* 43721*/            OPC_CheckCondCode, ISD::SETULE,
/* 43723*/            OPC_MoveParent,
/* 43724*/            OPC_MoveParent,
/* 43725*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43736*/            OPC_CheckType, MVT::i1,
/* 43738*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 43740*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43748*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 43751*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 43759*/          /*Scope*/ 38, /*->43798*/
/* 43760*/            OPC_CheckCondCode, ISD::SETLE,
/* 43762*/            OPC_MoveParent,
/* 43763*/            OPC_MoveParent,
/* 43764*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43775*/            OPC_CheckType, MVT::i1,
/* 43777*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 43779*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43787*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 43790*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 43798*/          /*Scope*/ 38, /*->43837*/
/* 43799*/            OPC_CheckCondCode, ISD::SETUNE,
/* 43801*/            OPC_MoveParent,
/* 43802*/            OPC_MoveParent,
/* 43803*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43814*/            OPC_CheckType, MVT::i1,
/* 43816*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 43818*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43826*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 43829*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] })
/* 43837*/          /*Scope*/ 38, /*->43876*/
/* 43838*/            OPC_CheckCondCode, ISD::SETNE,
/* 43840*/            OPC_MoveParent,
/* 43841*/            OPC_MoveParent,
/* 43842*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43853*/            OPC_CheckType, MVT::i1,
/* 43855*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 43857*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43865*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 43868*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] })
/* 43876*/          /*Scope*/ 38, /*->43915*/
/* 43877*/            OPC_CheckCondCode, ISD::SETO,
/* 43879*/            OPC_MoveParent,
/* 43880*/            OPC_MoveParent,
/* 43881*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43892*/            OPC_CheckType, MVT::i1,
/* 43894*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 43896*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43904*/            OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 43907*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETO:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] })
/* 43915*/          /*Scope*/ 38, /*->43954*/
/* 43916*/            OPC_CheckCondCode, ISD::SETUGE,
/* 43918*/            OPC_MoveParent,
/* 43919*/            OPC_MoveParent,
/* 43920*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43931*/            OPC_CheckType, MVT::i1,
/* 43933*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 43935*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43943*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 43946*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 43954*/          /*Scope*/ 38, /*->43993*/
/* 43955*/            OPC_CheckCondCode, ISD::SETGE,
/* 43957*/            OPC_MoveParent,
/* 43958*/            OPC_MoveParent,
/* 43959*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 43970*/            OPC_CheckType, MVT::i1,
/* 43972*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 43974*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 43982*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 43985*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 43993*/          /*Scope*/ 38, /*->44032*/
/* 43994*/            OPC_CheckCondCode, ISD::SETULE,
/* 43996*/            OPC_MoveParent,
/* 43997*/            OPC_MoveParent,
/* 43998*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44009*/            OPC_CheckType, MVT::i1,
/* 44011*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44013*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44021*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44024*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 44032*/          /*Scope*/ 38, /*->44071*/
/* 44033*/            OPC_CheckCondCode, ISD::SETLE,
/* 44035*/            OPC_MoveParent,
/* 44036*/            OPC_MoveParent,
/* 44037*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44048*/            OPC_CheckType, MVT::i1,
/* 44050*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44052*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44060*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44063*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 44071*/          /*Scope*/ 38, /*->44110*/
/* 44072*/            OPC_CheckCondCode, ISD::SETUNE,
/* 44074*/            OPC_MoveParent,
/* 44075*/            OPC_MoveParent,
/* 44076*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44087*/            OPC_CheckType, MVT::i1,
/* 44089*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44091*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44099*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44102*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 44110*/          /*Scope*/ 38, /*->44149*/
/* 44111*/            OPC_CheckCondCode, ISD::SETNE,
/* 44113*/            OPC_MoveParent,
/* 44114*/            OPC_MoveParent,
/* 44115*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44126*/            OPC_CheckType, MVT::i1,
/* 44128*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44130*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44138*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44141*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 44149*/          0, /*End of Scope*/
/* 44150*/        /*Scope*/ 1|128,4/*513*/, /*->44665*/
/* 44152*/          OPC_CheckChild0Type, MVT::f64,
/* 44154*/          OPC_RecordChild1, // #1 = $s2
/* 44155*/          OPC_MoveChild2,
/* 44156*/          OPC_Scope, 38, /*->44196*/ // 13 children in Scope
/* 44158*/            OPC_CheckCondCode, ISD::SETUGE,
/* 44160*/            OPC_MoveParent,
/* 44161*/            OPC_MoveParent,
/* 44162*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44173*/            OPC_CheckType, MVT::i1,
/* 44175*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44177*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44185*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 44188*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] })
/* 44196*/          /*Scope*/ 38, /*->44235*/
/* 44197*/            OPC_CheckCondCode, ISD::SETGE,
/* 44199*/            OPC_MoveParent,
/* 44200*/            OPC_MoveParent,
/* 44201*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44212*/            OPC_CheckType, MVT::i1,
/* 44214*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44216*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44224*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 44227*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] })
/* 44235*/          /*Scope*/ 38, /*->44274*/
/* 44236*/            OPC_CheckCondCode, ISD::SETULE,
/* 44238*/            OPC_MoveParent,
/* 44239*/            OPC_MoveParent,
/* 44240*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44251*/            OPC_CheckType, MVT::i1,
/* 44253*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44255*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44263*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44266*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 44274*/          /*Scope*/ 38, /*->44313*/
/* 44275*/            OPC_CheckCondCode, ISD::SETLE,
/* 44277*/            OPC_MoveParent,
/* 44278*/            OPC_MoveParent,
/* 44279*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44290*/            OPC_CheckType, MVT::i1,
/* 44292*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44294*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44302*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44305*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 44313*/          /*Scope*/ 38, /*->44352*/
/* 44314*/            OPC_CheckCondCode, ISD::SETUNE,
/* 44316*/            OPC_MoveParent,
/* 44317*/            OPC_MoveParent,
/* 44318*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44329*/            OPC_CheckType, MVT::i1,
/* 44331*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44333*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44341*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 44344*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] })
/* 44352*/          /*Scope*/ 38, /*->44391*/
/* 44353*/            OPC_CheckCondCode, ISD::SETNE,
/* 44355*/            OPC_MoveParent,
/* 44356*/            OPC_MoveParent,
/* 44357*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44368*/            OPC_CheckType, MVT::i1,
/* 44370*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44372*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44380*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 44383*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] })
/* 44391*/          /*Scope*/ 38, /*->44430*/
/* 44392*/            OPC_CheckCondCode, ISD::SETO,
/* 44394*/            OPC_MoveParent,
/* 44395*/            OPC_MoveParent,
/* 44396*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44407*/            OPC_CheckType, MVT::i1,
/* 44409*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44411*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44419*/            OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 44422*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETO:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] })
/* 44430*/          /*Scope*/ 38, /*->44469*/
/* 44431*/            OPC_CheckCondCode, ISD::SETUGE,
/* 44433*/            OPC_MoveParent,
/* 44434*/            OPC_MoveParent,
/* 44435*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44446*/            OPC_CheckType, MVT::i1,
/* 44448*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44450*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44458*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44461*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 44469*/          /*Scope*/ 38, /*->44508*/
/* 44470*/            OPC_CheckCondCode, ISD::SETGE,
/* 44472*/            OPC_MoveParent,
/* 44473*/            OPC_MoveParent,
/* 44474*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44485*/            OPC_CheckType, MVT::i1,
/* 44487*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44489*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44497*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44500*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 44508*/          /*Scope*/ 38, /*->44547*/
/* 44509*/            OPC_CheckCondCode, ISD::SETULE,
/* 44511*/            OPC_MoveParent,
/* 44512*/            OPC_MoveParent,
/* 44513*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44524*/            OPC_CheckType, MVT::i1,
/* 44526*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44528*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44536*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44539*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 44547*/          /*Scope*/ 38, /*->44586*/
/* 44548*/            OPC_CheckCondCode, ISD::SETLE,
/* 44550*/            OPC_MoveParent,
/* 44551*/            OPC_MoveParent,
/* 44552*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44563*/            OPC_CheckType, MVT::i1,
/* 44565*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44567*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44575*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44578*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 44586*/          /*Scope*/ 38, /*->44625*/
/* 44587*/            OPC_CheckCondCode, ISD::SETUNE,
/* 44589*/            OPC_MoveParent,
/* 44590*/            OPC_MoveParent,
/* 44591*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44602*/            OPC_CheckType, MVT::i1,
/* 44604*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44606*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44614*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44617*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 44625*/          /*Scope*/ 38, /*->44664*/
/* 44626*/            OPC_CheckCondCode, ISD::SETNE,
/* 44628*/            OPC_MoveParent,
/* 44629*/            OPC_MoveParent,
/* 44630*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44641*/            OPC_CheckType, MVT::i1,
/* 44643*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 44645*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44653*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44656*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 44664*/          0, /*End of Scope*/
/* 44665*/        /*Scope*/ 23|128,2/*279*/, /*->44946*/
/* 44667*/          OPC_CheckChild0Type, MVT::f128,
/* 44669*/          OPC_RecordChild1, // #1 = $s2
/* 44670*/          OPC_MoveChild2,
/* 44671*/          OPC_Scope, 38, /*->44711*/ // 7 children in Scope
/* 44673*/            OPC_CheckCondCode, ISD::SETUGE,
/* 44675*/            OPC_MoveParent,
/* 44676*/            OPC_MoveParent,
/* 44677*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44688*/            OPC_CheckType, MVT::i1,
/* 44690*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44692*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44700*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 44703*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] })
/* 44711*/          /*Scope*/ 38, /*->44750*/
/* 44712*/            OPC_CheckCondCode, ISD::SETGE,
/* 44714*/            OPC_MoveParent,
/* 44715*/            OPC_MoveParent,
/* 44716*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44727*/            OPC_CheckType, MVT::i1,
/* 44729*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44731*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44739*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 44742*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] })
/* 44750*/          /*Scope*/ 38, /*->44789*/
/* 44751*/            OPC_CheckCondCode, ISD::SETULE,
/* 44753*/            OPC_MoveParent,
/* 44754*/            OPC_MoveParent,
/* 44755*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44766*/            OPC_CheckType, MVT::i1,
/* 44768*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44770*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44778*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44781*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETULE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] })
/* 44789*/          /*Scope*/ 38, /*->44828*/
/* 44790*/            OPC_CheckCondCode, ISD::SETLE,
/* 44792*/            OPC_MoveParent,
/* 44793*/            OPC_MoveParent,
/* 44794*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44805*/            OPC_CheckType, MVT::i1,
/* 44807*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44809*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44817*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 44820*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] })
/* 44828*/          /*Scope*/ 38, /*->44867*/
/* 44829*/            OPC_CheckCondCode, ISD::SETUNE,
/* 44831*/            OPC_MoveParent,
/* 44832*/            OPC_MoveParent,
/* 44833*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44844*/            OPC_CheckType, MVT::i1,
/* 44846*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44848*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44856*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 44859*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] })
/* 44867*/          /*Scope*/ 38, /*->44906*/
/* 44868*/            OPC_CheckCondCode, ISD::SETNE,
/* 44870*/            OPC_MoveParent,
/* 44871*/            OPC_MoveParent,
/* 44872*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44883*/            OPC_CheckType, MVT::i1,
/* 44885*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44887*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44895*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 44898*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETNE:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] })
/* 44906*/          /*Scope*/ 38, /*->44945*/
/* 44907*/            OPC_CheckCondCode, ISD::SETO,
/* 44909*/            OPC_MoveParent,
/* 44910*/            OPC_MoveParent,
/* 44911*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44922*/            OPC_CheckType, MVT::i1,
/* 44924*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 44926*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 44934*/            OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 44937*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 2, 3, 
                      // Src: (xor:{ *:[i1] } (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETO:{ *:[Other] }), -1:{ *:[i1] }) - Complexity = 11
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] })
/* 44945*/          0, /*End of Scope*/
/* 44946*/        0, /*End of Scope*/
/* 44947*/      /*SwitchOpcode*/ 51, TARGET_VAL(ISD::TRUNCATE),// ->45001
/* 44950*/        OPC_RecordChild0, // #0 = $in
/* 44951*/        OPC_Scope, 23, /*->44976*/ // 2 children in Scope
/* 44953*/          OPC_CheckChild0Type, MVT::i32,
/* 44955*/          OPC_MoveParent,
/* 44956*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44967*/          OPC_CheckType, MVT::i1,
/* 44969*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDIo_1_EQ_BIT), 0,
                        MVT::i1, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i1] } (trunc:{ *:[i1] } i32:{ *:[i32] }:$in), -1:{ *:[i1] }) - Complexity = 11
                    // Dst: (ANDIo_1_EQ_BIT:{ *:[i1] } ?:{ *:[i32] }:$in)
/* 44976*/        /*Scope*/ 23, /*->45000*/
/* 44977*/          OPC_CheckChild0Type, MVT::i64,
/* 44979*/          OPC_MoveParent,
/* 44980*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 44991*/          OPC_CheckType, MVT::i1,
/* 44993*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDIo_1_EQ_BIT8), 0,
                        MVT::i1, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i1] } (trunc:{ *:[i1] } i64:{ *:[i64] }:$in), -1:{ *:[i1] }) - Complexity = 11
                    // Dst: (ANDIo_1_EQ_BIT8:{ *:[i1] } ?:{ *:[i64] }:$in)
/* 45000*/        0, /*End of Scope*/
/* 45001*/      0, // EndSwitchOpcode
/* 45002*/    /*Scope*/ 70|128,1/*198*/, /*->45202*/
/* 45004*/      OPC_RecordChild0, // #0 = $in
/* 45005*/      OPC_Scope, 43, /*->45050*/ // 2 children in Scope
/* 45007*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 45018*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->45029
/* 45021*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::NOR), 0,
                        MVT::i32, 2/*#Ops*/, 0, 0, 
                    // Src: (xor:{ *:[i32] } i32:{ *:[i32] }:$in, -1:{ *:[i32] }) - Complexity = 8
                    // Dst: (NOR:{ *:[i32] } ?:{ *:[i32] }:$in, ?:{ *:[i32] }:$in)
/* 45029*/        /*SwitchType*/ 8, MVT::i64,// ->45039
/* 45031*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::NOR8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 0, 
                    // Src: (xor:{ *:[i64] } i64:{ *:[i64] }:$in, -1:{ *:[i64] }) - Complexity = 8
                    // Dst: (NOR8:{ *:[i64] } ?:{ *:[i64] }:$in, ?:{ *:[i64] }:$in)
/* 45039*/        /*SwitchType*/ 8, MVT::i1,// ->45049
/* 45041*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 0, 0, 
                    // Src: (xor:{ *:[i1] } i1:{ *:[i1] }:$in, -1:{ *:[i1] }) - Complexity = 8
                    // Dst: (CRNOR:{ *:[i1] } ?:{ *:[i1] }:$in, ?:{ *:[i1] }:$in)
/* 45049*/        0, // EndSwitchType
/* 45050*/      /*Scope*/ 21|128,1/*149*/, /*->45201*/
/* 45052*/        OPC_RecordChild1, // #1 = $src2
/* 45053*/        OPC_Scope, 112, /*->45167*/ // 4 children in Scope
/* 45055*/          OPC_MoveChild1,
/* 45056*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45059*/          OPC_Scope, 18, /*->45079*/ // 5 children in Scope
/* 45061*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 45063*/            OPC_MoveParent,
/* 45064*/            OPC_CheckType, MVT::i32,
/* 45066*/            OPC_EmitConvertToTarget, 1,
/* 45068*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 45071*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XORI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (xor:{ *:[i32] } i32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$src2) - Complexity = 7
                      // Dst: (XORI:{ *:[i32] } i32:{ *:[i32] }:$src1, (LO16:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 45079*/          /*Scope*/ 18, /*->45098*/
/* 45080*/            OPC_CheckPredicate, 16, // Predicate_imm16ShiftedZExt
/* 45082*/            OPC_MoveParent,
/* 45083*/            OPC_CheckType, MVT::i32,
/* 45085*/            OPC_EmitConvertToTarget, 1,
/* 45087*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 45090*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (xor:{ *:[i32] } i32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_imm16ShiftedZExt>><<X:HI16>>:$src2) - Complexity = 7
                      // Dst: (XORIS:{ *:[i32] } i32:{ *:[i32] }:$src1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 45098*/          /*Scope*/ 18, /*->45117*/
/* 45099*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 45101*/            OPC_MoveParent,
/* 45102*/            OPC_CheckType, MVT::i64,
/* 45104*/            OPC_EmitConvertToTarget, 1,
/* 45106*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 45109*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XORI8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (xor:{ *:[i64] } i64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$src2) - Complexity = 7
                      // Dst: (XORI8:{ *:[i64] } i64:{ *:[i64] }:$src1, (LO16:{ *:[i64] } (imm:{ *:[i64] }):$src2))
/* 45117*/          /*Scope*/ 18, /*->45136*/
/* 45118*/            OPC_CheckPredicate, 16, // Predicate_imm16ShiftedZExt
/* 45120*/            OPC_MoveParent,
/* 45121*/            OPC_CheckType, MVT::i64,
/* 45123*/            OPC_EmitConvertToTarget, 1,
/* 45125*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 45128*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XORIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (xor:{ *:[i64] } i64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_imm16ShiftedZExt>><<X:HI16>>:$src2) - Complexity = 7
                      // Dst: (XORIS8:{ *:[i64] } i64:{ *:[i64] }:$src1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$src2))
/* 45136*/          /*Scope*/ 29, /*->45166*/
/* 45137*/            OPC_MoveParent,
/* 45138*/            OPC_CheckType, MVT::i32,
/* 45140*/            OPC_EmitConvertToTarget, 1,
/* 45142*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 45145*/            OPC_EmitNode1, TARGET_VAL(PPC::XORI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 45153*/            OPC_EmitConvertToTarget, 1,
/* 45155*/            OPC_EmitNodeXForm, 0, 5, // HI16
/* 45158*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6, 
                      // Src: (xor:{ *:[i32] } i32:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                      // Dst: (XORIS:{ *:[i32] } (XORI:{ *:[i32] } ?:{ *:[i32] }:$in, (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 45166*/          0, /*End of Scope*/
/* 45167*/        /*Scope*/ 10, /*->45178*/
/* 45168*/          OPC_CheckType, MVT::i32,
/* 45170*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XOR), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                    // Dst: (XOR:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 45178*/        /*Scope*/ 10, /*->45189*/
/* 45179*/          OPC_CheckType, MVT::i1,
/* 45181*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRXOR), 0,
                        MVT::i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB) - Complexity = 3
                    // Dst: (CRXOR:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 45189*/        /*Scope*/ 10, /*->45200*/
/* 45190*/          OPC_CheckType, MVT::i64,
/* 45192*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XOR8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB) - Complexity = 3
                    // Dst: (XOR8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 45200*/        0, /*End of Scope*/
/* 45201*/      0, /*End of Scope*/
/* 45202*/    /*Scope*/ 88|128,1/*216*/, /*->45420*/
/* 45204*/      OPC_MoveChild0,
/* 45205*/      OPC_SwitchOpcode /*4 cases */, 29, TARGET_VAL(ISD::OR),// ->45238
/* 45209*/        OPC_RecordChild0, // #0 = $XA
/* 45210*/        OPC_RecordChild1, // #1 = $XB
/* 45211*/        OPC_MoveParent,
/* 45212*/        OPC_MoveChild1,
/* 45213*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45216*/        OPC_MoveChild0,
/* 45217*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45220*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45222*/        OPC_CheckType, MVT::v16i8,
/* 45224*/        OPC_MoveParent,
/* 45225*/        OPC_MoveParent,
/* 45226*/        OPC_CheckType, MVT::v4i32,
/* 45228*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 45230*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNOR), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v4i32] } (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB), (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 413
                  // Dst: (XXLNOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45238*/      /*SwitchOpcode*/ 94, TARGET_VAL(ISD::XOR),// ->45335
/* 45241*/        OPC_Scope, 61, /*->45304*/ // 2 children in Scope
/* 45243*/          OPC_RecordChild0, // #0 = $XA
/* 45244*/          OPC_Scope, 28, /*->45274*/ // 2 children in Scope
/* 45246*/            OPC_RecordChild1, // #1 = $XB
/* 45247*/            OPC_MoveParent,
/* 45248*/            OPC_MoveChild1,
/* 45249*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45252*/            OPC_MoveChild0,
/* 45253*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45256*/            OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45258*/            OPC_CheckType, MVT::v16i8,
/* 45260*/            OPC_MoveParent,
/* 45261*/            OPC_MoveParent,
/* 45262*/            OPC_CheckType, MVT::v4i32,
/* 45264*/            OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 45266*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB), (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 413
                      // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45274*/          /*Scope*/ 28, /*->45303*/
/* 45275*/            OPC_MoveChild1,
/* 45276*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45279*/            OPC_MoveChild0,
/* 45280*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45283*/            OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45285*/            OPC_CheckType, MVT::v16i8,
/* 45287*/            OPC_MoveParent,
/* 45288*/            OPC_MoveParent,
/* 45289*/            OPC_MoveParent,
/* 45290*/            OPC_RecordChild1, // #1 = $XB
/* 45291*/            OPC_CheckType, MVT::v4i32,
/* 45293*/            OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 45295*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)), v4i32:{ *:[v4i32] }:$XB) - Complexity = 413
                      // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45303*/          0, /*End of Scope*/
/* 45304*/        /*Scope*/ 29, /*->45334*/
/* 45305*/          OPC_MoveChild0,
/* 45306*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45309*/          OPC_MoveChild0,
/* 45310*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45313*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45315*/          OPC_CheckType, MVT::v16i8,
/* 45317*/          OPC_MoveParent,
/* 45318*/          OPC_MoveParent,
/* 45319*/          OPC_RecordChild1, // #0 = $XA
/* 45320*/          OPC_MoveParent,
/* 45321*/          OPC_RecordChild1, // #1 = $XB
/* 45322*/          OPC_CheckType, MVT::v4i32,
/* 45324*/          OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 45326*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$XA), v4i32:{ *:[v4i32] }:$XB) - Complexity = 413
                    // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45334*/        0, /*End of Scope*/
/* 45335*/      /*SwitchOpcode*/ 29, TARGET_VAL(ISD::AND),// ->45367
/* 45338*/        OPC_RecordChild0, // #0 = $XA
/* 45339*/        OPC_RecordChild1, // #1 = $XB
/* 45340*/        OPC_MoveParent,
/* 45341*/        OPC_MoveChild1,
/* 45342*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45345*/        OPC_MoveChild0,
/* 45346*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45349*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45351*/        OPC_CheckType, MVT::v16i8,
/* 45353*/        OPC_MoveParent,
/* 45354*/        OPC_MoveParent,
/* 45355*/        OPC_CheckType, MVT::v4i32,
/* 45357*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 45359*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNAND), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB), (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 413
                  // Dst: (XXLNAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45367*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->45419
/* 45370*/        OPC_MoveChild0,
/* 45371*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45374*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45376*/        OPC_CheckType, MVT::v16i8,
/* 45378*/        OPC_MoveParent,
/* 45379*/        OPC_MoveParent,
/* 45380*/        OPC_MoveChild1,
/* 45381*/        OPC_SwitchOpcode /*2 cases */, 15, TARGET_VAL(ISD::OR),// ->45400
/* 45385*/          OPC_RecordChild0, // #0 = $XA
/* 45386*/          OPC_RecordChild1, // #1 = $XB
/* 45387*/          OPC_MoveParent,
/* 45388*/          OPC_CheckType, MVT::v4i32,
/* 45390*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 45392*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNOR), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                    // Dst: (XXLNOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45400*/        /*SwitchOpcode*/ 15, TARGET_VAL(ISD::XOR),// ->45418
/* 45403*/          OPC_RecordChild0, // #0 = $XA
/* 45404*/          OPC_RecordChild1, // #1 = $XB
/* 45405*/          OPC_MoveParent,
/* 45406*/          OPC_CheckType, MVT::v4i32,
/* 45408*/          OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 45410*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                    // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45418*/        0, // EndSwitchOpcode
/* 45419*/      0, // EndSwitchOpcode
/* 45420*/    /*Scope*/ 65, /*->45486*/
/* 45421*/      OPC_RecordChild0, // #0 = $XB
/* 45422*/      OPC_MoveChild1,
/* 45423*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 45426*/      OPC_Scope, 28, /*->45456*/ // 2 children in Scope
/* 45428*/        OPC_RecordChild0, // #1 = $XA
/* 45429*/        OPC_MoveChild1,
/* 45430*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45433*/        OPC_MoveChild0,
/* 45434*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45437*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45439*/        OPC_CheckType, MVT::v16i8,
/* 45441*/        OPC_MoveParent,
/* 45442*/        OPC_MoveParent,
/* 45443*/        OPC_MoveParent,
/* 45444*/        OPC_CheckType, MVT::v4i32,
/* 45446*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 45448*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 413
                  // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45456*/      /*Scope*/ 28, /*->45485*/
/* 45457*/        OPC_MoveChild0,
/* 45458*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45461*/        OPC_MoveChild0,
/* 45462*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45465*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45467*/        OPC_CheckType, MVT::v16i8,
/* 45469*/        OPC_MoveParent,
/* 45470*/        OPC_MoveParent,
/* 45471*/        OPC_RecordChild1, // #1 = $XA
/* 45472*/        OPC_MoveParent,
/* 45473*/        OPC_CheckType, MVT::v4i32,
/* 45475*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 45477*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$XA)) - Complexity = 413
                  // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45485*/      0, /*End of Scope*/
/* 45486*/    /*Scope*/ 33, /*->45520*/
/* 45487*/      OPC_MoveChild0,
/* 45488*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45491*/      OPC_MoveChild0,
/* 45492*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45495*/      OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45497*/      OPC_CheckType, MVT::v16i8,
/* 45499*/      OPC_MoveParent,
/* 45500*/      OPC_MoveParent,
/* 45501*/      OPC_MoveChild1,
/* 45502*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 45505*/      OPC_RecordChild0, // #0 = $XA
/* 45506*/      OPC_RecordChild1, // #1 = $XB
/* 45507*/      OPC_MoveParent,
/* 45508*/      OPC_CheckType, MVT::v4i32,
/* 45510*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 45512*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNAND), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                // Dst: (XXLNAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45520*/    /*Scope*/ 27, /*->45548*/
/* 45521*/      OPC_RecordChild0, // #0 = $A
/* 45522*/      OPC_MoveChild1,
/* 45523*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45526*/      OPC_MoveChild0,
/* 45527*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45530*/      OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45532*/      OPC_CheckType, MVT::v16i8,
/* 45534*/      OPC_MoveParent,
/* 45535*/      OPC_MoveParent,
/* 45536*/      OPC_CheckType, MVT::v4i32,
/* 45538*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 45540*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNOR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 0, 
                // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 410
                // Dst: (XXLNOR:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A)
/* 45548*/    /*Scope*/ 27, /*->45576*/
/* 45549*/      OPC_MoveChild0,
/* 45550*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45553*/      OPC_MoveChild0,
/* 45554*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45557*/      OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45559*/      OPC_CheckType, MVT::v16i8,
/* 45561*/      OPC_MoveParent,
/* 45562*/      OPC_MoveParent,
/* 45563*/      OPC_RecordChild1, // #0 = $A
/* 45564*/      OPC_CheckType, MVT::v4i32,
/* 45566*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 45568*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNOR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 0, 
                // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$A) - Complexity = 410
                // Dst: (XXLNOR:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A)
/* 45576*/    /*Scope*/ 14, /*->45591*/
/* 45577*/      OPC_RecordChild0, // #0 = $XA
/* 45578*/      OPC_RecordChild1, // #1 = $XB
/* 45579*/      OPC_CheckType, MVT::v4i32,
/* 45581*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 45583*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXOR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB) - Complexity = 403
                // Dst: (XXLXOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 45591*/    /*Scope*/ 88|128,1/*216*/, /*->45809*/
/* 45593*/      OPC_MoveChild0,
/* 45594*/      OPC_SwitchOpcode /*4 cases */, 29, TARGET_VAL(ISD::OR),// ->45627
/* 45598*/        OPC_RecordChild0, // #0 = $vA
/* 45599*/        OPC_RecordChild1, // #1 = $vB
/* 45600*/        OPC_MoveParent,
/* 45601*/        OPC_MoveChild1,
/* 45602*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45605*/        OPC_MoveChild0,
/* 45606*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45609*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45611*/        OPC_CheckType, MVT::v16i8,
/* 45613*/        OPC_MoveParent,
/* 45614*/        OPC_MoveParent,
/* 45615*/        OPC_CheckType, MVT::v4i32,
/* 45617*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 45619*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNOR), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v4i32] } (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB), (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 13
                  // Dst: (VNOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45627*/      /*SwitchOpcode*/ 94, TARGET_VAL(ISD::XOR),// ->45724
/* 45630*/        OPC_Scope, 61, /*->45693*/ // 2 children in Scope
/* 45632*/          OPC_RecordChild0, // #0 = $vA
/* 45633*/          OPC_Scope, 28, /*->45663*/ // 2 children in Scope
/* 45635*/            OPC_RecordChild1, // #1 = $vB
/* 45636*/            OPC_MoveParent,
/* 45637*/            OPC_MoveChild1,
/* 45638*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45641*/            OPC_MoveChild0,
/* 45642*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45645*/            OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45647*/            OPC_CheckType, MVT::v16i8,
/* 45649*/            OPC_MoveParent,
/* 45650*/            OPC_MoveParent,
/* 45651*/            OPC_CheckType, MVT::v4i32,
/* 45653*/            OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 45655*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB), (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 13
                      // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45663*/          /*Scope*/ 28, /*->45692*/
/* 45664*/            OPC_MoveChild1,
/* 45665*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45668*/            OPC_MoveChild0,
/* 45669*/            OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45672*/            OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45674*/            OPC_CheckType, MVT::v16i8,
/* 45676*/            OPC_MoveParent,
/* 45677*/            OPC_MoveParent,
/* 45678*/            OPC_MoveParent,
/* 45679*/            OPC_RecordChild1, // #1 = $vB
/* 45680*/            OPC_CheckType, MVT::v4i32,
/* 45682*/            OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 45684*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)), v4i32:{ *:[v4i32] }:$vB) - Complexity = 13
                      // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45692*/          0, /*End of Scope*/
/* 45693*/        /*Scope*/ 29, /*->45723*/
/* 45694*/          OPC_MoveChild0,
/* 45695*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45698*/          OPC_MoveChild0,
/* 45699*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45702*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45704*/          OPC_CheckType, MVT::v16i8,
/* 45706*/          OPC_MoveParent,
/* 45707*/          OPC_MoveParent,
/* 45708*/          OPC_RecordChild1, // #0 = $vA
/* 45709*/          OPC_MoveParent,
/* 45710*/          OPC_RecordChild1, // #1 = $vB
/* 45711*/          OPC_CheckType, MVT::v4i32,
/* 45713*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 45715*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$vA), v4i32:{ *:[v4i32] }:$vB) - Complexity = 13
                    // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45723*/        0, /*End of Scope*/
/* 45724*/      /*SwitchOpcode*/ 29, TARGET_VAL(ISD::AND),// ->45756
/* 45727*/        OPC_RecordChild0, // #0 = $vA
/* 45728*/        OPC_RecordChild1, // #1 = $vB
/* 45729*/        OPC_MoveParent,
/* 45730*/        OPC_MoveChild1,
/* 45731*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45734*/        OPC_MoveChild0,
/* 45735*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45738*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45740*/        OPC_CheckType, MVT::v16i8,
/* 45742*/        OPC_MoveParent,
/* 45743*/        OPC_MoveParent,
/* 45744*/        OPC_CheckType, MVT::v4i32,
/* 45746*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 45748*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNAND), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB), (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 13
                  // Dst: (VNAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45756*/      /*SwitchOpcode*/ 49, TARGET_VAL(ISD::BITCAST),// ->45808
/* 45759*/        OPC_MoveChild0,
/* 45760*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45763*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45765*/        OPC_CheckType, MVT::v16i8,
/* 45767*/        OPC_MoveParent,
/* 45768*/        OPC_MoveParent,
/* 45769*/        OPC_MoveChild1,
/* 45770*/        OPC_SwitchOpcode /*2 cases */, 15, TARGET_VAL(ISD::OR),// ->45789
/* 45774*/          OPC_RecordChild0, // #0 = $vA
/* 45775*/          OPC_RecordChild1, // #1 = $vB
/* 45776*/          OPC_MoveParent,
/* 45777*/          OPC_CheckType, MVT::v4i32,
/* 45779*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 45781*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VNOR), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                    // Dst: (VNOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45789*/        /*SwitchOpcode*/ 15, TARGET_VAL(ISD::XOR),// ->45807
/* 45792*/          OPC_RecordChild0, // #0 = $vA
/* 45793*/          OPC_RecordChild1, // #1 = $vB
/* 45794*/          OPC_MoveParent,
/* 45795*/          OPC_CheckType, MVT::v4i32,
/* 45797*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 45799*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                    // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45807*/        0, // EndSwitchOpcode
/* 45808*/      0, // EndSwitchOpcode
/* 45809*/    /*Scope*/ 65, /*->45875*/
/* 45810*/      OPC_RecordChild0, // #0 = $vB
/* 45811*/      OPC_MoveChild1,
/* 45812*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 45815*/      OPC_Scope, 28, /*->45845*/ // 2 children in Scope
/* 45817*/        OPC_RecordChild0, // #1 = $vA
/* 45818*/        OPC_MoveChild1,
/* 45819*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45822*/        OPC_MoveChild0,
/* 45823*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45826*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45828*/        OPC_CheckType, MVT::v16i8,
/* 45830*/        OPC_MoveParent,
/* 45831*/        OPC_MoveParent,
/* 45832*/        OPC_MoveParent,
/* 45833*/        OPC_CheckType, MVT::v4i32,
/* 45835*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 45837*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 13
                  // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45845*/      /*Scope*/ 28, /*->45874*/
/* 45846*/        OPC_MoveChild0,
/* 45847*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 45850*/        OPC_MoveChild0,
/* 45851*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45854*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45856*/        OPC_CheckType, MVT::v16i8,
/* 45858*/        OPC_MoveParent,
/* 45859*/        OPC_MoveParent,
/* 45860*/        OPC_RecordChild1, // #1 = $vA
/* 45861*/        OPC_MoveParent,
/* 45862*/        OPC_CheckType, MVT::v4i32,
/* 45864*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 45866*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$vA)) - Complexity = 13
                  // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45874*/      0, /*End of Scope*/
/* 45875*/    /*Scope*/ 39|128,1/*167*/, /*->46044*/
/* 45877*/      OPC_MoveChild0,
/* 45878*/      OPC_SwitchOpcode /*4 cases */, 29, TARGET_VAL(ISD::BITCAST),// ->45911
/* 45882*/        OPC_MoveChild0,
/* 45883*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 45886*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 45888*/        OPC_CheckType, MVT::v16i8,
/* 45890*/        OPC_MoveParent,
/* 45891*/        OPC_MoveParent,
/* 45892*/        OPC_MoveChild1,
/* 45893*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 45896*/        OPC_RecordChild0, // #0 = $vA
/* 45897*/        OPC_RecordChild1, // #1 = $vB
/* 45898*/        OPC_MoveParent,
/* 45899*/        OPC_CheckType, MVT::v4i32,
/* 45901*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 45903*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNAND), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                  // Dst: (VNAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45911*/      /*SwitchOpcode*/ 30, TARGET_VAL(ISD::OR),// ->45944
/* 45914*/        OPC_RecordChild0, // #0 = $FRA
/* 45915*/        OPC_RecordChild1, // #1 = $FRB
/* 45916*/        OPC_MoveParent,
/* 45917*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 45928*/        OPC_CheckType, MVT::v4i1,
/* 45930*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 45932*/        OPC_EmitInteger, MVT::i32, 8, 
/* 45935*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v4i1] } (or:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB), -1:{ *:[v4i1] }) - Complexity = 11
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 8:{ *:[i32] })
/* 45944*/      /*SwitchOpcode*/ 63, TARGET_VAL(ISD::XOR),// ->46010
/* 45947*/        OPC_RecordChild0, // #0 = $FRA
/* 45948*/        OPC_Scope, 29, /*->45979*/ // 2 children in Scope
/* 45950*/          OPC_RecordChild1, // #1 = $FRB
/* 45951*/          OPC_MoveParent,
/* 45952*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 45963*/          OPC_CheckType, MVT::v4i1,
/* 45965*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 45967*/          OPC_EmitInteger, MVT::i32, 9, 
/* 45970*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v4i1] } (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB), -1:{ *:[v4i1] }) - Complexity = 11
                    // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 9:{ *:[i32] })
/* 45979*/        /*Scope*/ 29, /*->46009*/
/* 45980*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 45991*/          OPC_MoveParent,
/* 45992*/          OPC_RecordChild1, // #1 = $FRB
/* 45993*/          OPC_CheckType, MVT::v4i1,
/* 45995*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 45997*/          OPC_EmitInteger, MVT::i32, 9, 
/* 46000*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v4i1] } (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, -1:{ *:[v4i1] }), v4i1:{ *:[v4i1] }:$FRB) - Complexity = 11
                    // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 9:{ *:[i32] })
/* 46009*/        0, /*End of Scope*/
/* 46010*/      /*SwitchOpcode*/ 30, TARGET_VAL(ISD::AND),// ->46043
/* 46013*/        OPC_RecordChild0, // #0 = $FRA
/* 46014*/        OPC_RecordChild1, // #1 = $FRB
/* 46015*/        OPC_MoveParent,
/* 46016*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 46027*/        OPC_CheckType, MVT::v4i1,
/* 46029*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 46031*/        OPC_EmitInteger, MVT::i32, 14, 
/* 46034*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v4i1] } (and:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB), -1:{ *:[v4i1] }) - Complexity = 11
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 14:{ *:[i32] })
/* 46043*/      0, // EndSwitchOpcode
/* 46044*/    /*Scope*/ 61, /*->46106*/
/* 46045*/      OPC_RecordChild0, // #0 = $FRB
/* 46046*/      OPC_MoveChild1,
/* 46047*/      OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::XOR),// ->46080
/* 46051*/        OPC_RecordChild0, // #1 = $FRA
/* 46052*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 46063*/        OPC_MoveParent,
/* 46064*/        OPC_CheckType, MVT::v4i1,
/* 46066*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 46068*/        OPC_EmitInteger, MVT::i32, 9, 
/* 46071*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRB, (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, -1:{ *:[v4i1] })) - Complexity = 11
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 9:{ *:[i32] })
/* 46080*/      /*SwitchOpcode*/ 22, TARGET_VAL(ISD::BITCAST),// ->46105
/* 46083*/        OPC_MoveChild0,
/* 46084*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 46087*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 46089*/        OPC_CheckType, MVT::v16i8,
/* 46091*/        OPC_MoveParent,
/* 46092*/        OPC_MoveParent,
/* 46093*/        OPC_CheckType, MVT::v4i32,
/* 46095*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 46097*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNOR), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 0, 
                  // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)) - Complexity = 10
                  // Dst: (VNOR:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vA)
/* 46105*/      0, // EndSwitchOpcode
/* 46106*/    /*Scope*/ 27, /*->46134*/
/* 46107*/      OPC_MoveChild0,
/* 46108*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 46111*/      OPC_MoveChild0,
/* 46112*/      OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 46115*/      OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 46117*/      OPC_CheckType, MVT::v16i8,
/* 46119*/      OPC_MoveParent,
/* 46120*/      OPC_MoveParent,
/* 46121*/      OPC_RecordChild1, // #0 = $vA
/* 46122*/      OPC_CheckType, MVT::v4i32,
/* 46124*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 46126*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VNOR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 0, 
                // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$vA) - Complexity = 10
                // Dst: (VNOR:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vA)
/* 46134*/    /*Scope*/ 63, /*->46198*/
/* 46135*/      OPC_RecordChild0, // #0 = $FRA
/* 46136*/      OPC_Scope, 27, /*->46165*/ // 2 children in Scope
/* 46138*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 46149*/        OPC_CheckType, MVT::v4i1,
/* 46151*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 46153*/        OPC_EmitInteger, MVT::i32, 10, 
/* 46156*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 0, 0, 1, 
                  // Src: (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, -1:{ *:[v4i1] }) - Complexity = 8
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRA, 10:{ *:[i32] })
/* 46165*/      /*Scope*/ 31, /*->46197*/
/* 46166*/        OPC_RecordChild1, // #1 = $vB
/* 46167*/        OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->46180
/* 46170*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 46172*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VXOR), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                    // Dst: (VXOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 46180*/        /*SwitchType*/ 14, MVT::v4i1,// ->46196
/* 46182*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 46184*/          OPC_EmitInteger, MVT::i32, 6, 
/* 46187*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB) - Complexity = 3
                    // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 6:{ *:[i32] })
/* 46196*/        0, // EndSwitchType
/* 46197*/      0, /*End of Scope*/
/* 46198*/    0, /*End of Scope*/
/* 46199*/  /*SwitchOpcode*/ 73|128,4/*585*/, TARGET_VAL(ISD::ADD),// ->46788
/* 46203*/    OPC_Scope, 21|128,1/*149*/, /*->46355*/ // 3 children in Scope
/* 46206*/      OPC_RecordChild0, // #0 = $rA
/* 46207*/      OPC_MoveChild1,
/* 46208*/      OPC_SwitchOpcode /*2 cases */, 19, TARGET_VAL(PPCISD::Lo),// ->46231
/* 46212*/        OPC_RecordChild0, // #1 = $sym
/* 46213*/        OPC_MoveChild0,
/* 46214*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 46217*/        OPC_MoveParent,
/* 46218*/        OPC_CheckChild1Integer, 0, 
/* 46220*/        OPC_MoveParent,
/* 46221*/        OPC_CheckType, MVT::i32,
/* 46223*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LA), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$rA, (PPClo:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$sym, 0:{ *:[i32] })) - Complexity = 14
                  // Dst: (LA:{ *:[i32] } i32:{ *:[i32] }:$rA, (tglobaladdr:{ *:[i32] }):$sym)
/* 46231*/      /*SwitchOpcode*/ 120, TARGET_VAL(PPCISD::Hi),// ->46354
/* 46234*/        OPC_RecordChild0, // #1 = $g
/* 46235*/        OPC_MoveChild0,
/* 46236*/        OPC_SwitchOpcode /*4 cases */, 26, TARGET_VAL(ISD::TargetGlobalAddress),// ->46266
/* 46240*/          OPC_MoveParent,
/* 46241*/          OPC_CheckChild1Integer, 0, 
/* 46243*/          OPC_MoveParent,
/* 46244*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46255
/* 46247*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$in, (PPChi:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$g, 0:{ *:[i32] })) - Complexity = 14
                      // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tglobaladdr:{ *:[i32] }):$g)
/* 46255*/          /*SwitchType*/ 8, MVT::i64,// ->46265
/* 46257*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$in, (PPChi:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$g, 0:{ *:[i64] })) - Complexity = 14
                      // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tglobaladdr:{ *:[i64] }):$g)
/* 46265*/          0, // EndSwitchType
/* 46266*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetConstantPool),// ->46295
/* 46269*/          OPC_MoveParent,
/* 46270*/          OPC_CheckChild1Integer, 0, 
/* 46272*/          OPC_MoveParent,
/* 46273*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46284
/* 46276*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$in, (PPChi:{ *:[i32] } (tconstpool:{ *:[i32] }):$g, 0:{ *:[i32] })) - Complexity = 14
                      // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tconstpool:{ *:[i32] }):$g)
/* 46284*/          /*SwitchType*/ 8, MVT::i64,// ->46294
/* 46286*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$in, (PPChi:{ *:[i64] } (tconstpool:{ *:[i64] }):$g, 0:{ *:[i64] })) - Complexity = 14
                      // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tconstpool:{ *:[i64] }):$g)
/* 46294*/          0, // EndSwitchType
/* 46295*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetJumpTable),// ->46324
/* 46298*/          OPC_MoveParent,
/* 46299*/          OPC_CheckChild1Integer, 0, 
/* 46301*/          OPC_MoveParent,
/* 46302*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46313
/* 46305*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$in, (PPChi:{ *:[i32] } (tjumptable:{ *:[i32] }):$g, 0:{ *:[i32] })) - Complexity = 14
                      // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tjumptable:{ *:[i32] }):$g)
/* 46313*/          /*SwitchType*/ 8, MVT::i64,// ->46323
/* 46315*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$in, (PPChi:{ *:[i64] } (tjumptable:{ *:[i64] }):$g, 0:{ *:[i64] })) - Complexity = 14
                      // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tjumptable:{ *:[i64] }):$g)
/* 46323*/          0, // EndSwitchType
/* 46324*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetBlockAddress),// ->46353
/* 46327*/          OPC_MoveParent,
/* 46328*/          OPC_CheckChild1Integer, 0, 
/* 46330*/          OPC_MoveParent,
/* 46331*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46342
/* 46334*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$in, (PPChi:{ *:[i32] } (tblockaddress:{ *:[i32] }):$g, 0:{ *:[i32] })) - Complexity = 14
                      // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tblockaddress:{ *:[i32] }):$g)
/* 46342*/          /*SwitchType*/ 8, MVT::i64,// ->46352
/* 46344*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$in, (PPChi:{ *:[i64] } (tblockaddress:{ *:[i64] }):$g, 0:{ *:[i64] })) - Complexity = 14
                      // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tblockaddress:{ *:[i64] }):$g)
/* 46352*/          0, // EndSwitchType
/* 46353*/        0, // EndSwitchOpcode
/* 46354*/      0, // EndSwitchOpcode
/* 46355*/    /*Scope*/ 25|128,1/*153*/, /*->46510*/
/* 46357*/      OPC_MoveChild0,
/* 46358*/      OPC_SwitchOpcode /*2 cases */, 20, TARGET_VAL(PPCISD::Lo),// ->46382
/* 46362*/        OPC_RecordChild0, // #0 = $sym
/* 46363*/        OPC_MoveChild0,
/* 46364*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 46367*/        OPC_MoveParent,
/* 46368*/        OPC_CheckChild1Integer, 0, 
/* 46370*/        OPC_MoveParent,
/* 46371*/        OPC_RecordChild1, // #1 = $rA
/* 46372*/        OPC_CheckType, MVT::i32,
/* 46374*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LA), 0,
                      MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (add:{ *:[i32] } (PPClo:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$sym, 0:{ *:[i32] }), i32:{ *:[i32] }:$rA) - Complexity = 14
                  // Dst: (LA:{ *:[i32] } i32:{ *:[i32] }:$rA, (tglobaladdr:{ *:[i32] }):$sym)
/* 46382*/      /*SwitchOpcode*/ 124, TARGET_VAL(PPCISD::Hi),// ->46509
/* 46385*/        OPC_RecordChild0, // #0 = $g
/* 46386*/        OPC_MoveChild0,
/* 46387*/        OPC_SwitchOpcode /*4 cases */, 27, TARGET_VAL(ISD::TargetGlobalAddress),// ->46418
/* 46391*/          OPC_MoveParent,
/* 46392*/          OPC_CheckChild1Integer, 0, 
/* 46394*/          OPC_MoveParent,
/* 46395*/          OPC_RecordChild1, // #1 = $in
/* 46396*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46407
/* 46399*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[i32] } (PPChi:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$g, 0:{ *:[i32] }), i32:{ *:[i32] }:$in) - Complexity = 14
                      // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tglobaladdr:{ *:[i32] }):$g)
/* 46407*/          /*SwitchType*/ 8, MVT::i64,// ->46417
/* 46409*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[i64] } (PPChi:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$g, 0:{ *:[i64] }), i64:{ *:[i64] }:$in) - Complexity = 14
                      // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tglobaladdr:{ *:[i64] }):$g)
/* 46417*/          0, // EndSwitchType
/* 46418*/        /*SwitchOpcode*/ 27, TARGET_VAL(ISD::TargetConstantPool),// ->46448
/* 46421*/          OPC_MoveParent,
/* 46422*/          OPC_CheckChild1Integer, 0, 
/* 46424*/          OPC_MoveParent,
/* 46425*/          OPC_RecordChild1, // #1 = $in
/* 46426*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46437
/* 46429*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[i32] } (PPChi:{ *:[i32] } (tconstpool:{ *:[i32] }):$g, 0:{ *:[i32] }), i32:{ *:[i32] }:$in) - Complexity = 14
                      // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tconstpool:{ *:[i32] }):$g)
/* 46437*/          /*SwitchType*/ 8, MVT::i64,// ->46447
/* 46439*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[i64] } (PPChi:{ *:[i64] } (tconstpool:{ *:[i64] }):$g, 0:{ *:[i64] }), i64:{ *:[i64] }:$in) - Complexity = 14
                      // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tconstpool:{ *:[i64] }):$g)
/* 46447*/          0, // EndSwitchType
/* 46448*/        /*SwitchOpcode*/ 27, TARGET_VAL(ISD::TargetJumpTable),// ->46478
/* 46451*/          OPC_MoveParent,
/* 46452*/          OPC_CheckChild1Integer, 0, 
/* 46454*/          OPC_MoveParent,
/* 46455*/          OPC_RecordChild1, // #1 = $in
/* 46456*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46467
/* 46459*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[i32] } (PPChi:{ *:[i32] } (tjumptable:{ *:[i32] }):$g, 0:{ *:[i32] }), i32:{ *:[i32] }:$in) - Complexity = 14
                      // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tjumptable:{ *:[i32] }):$g)
/* 46467*/          /*SwitchType*/ 8, MVT::i64,// ->46477
/* 46469*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[i64] } (PPChi:{ *:[i64] } (tjumptable:{ *:[i64] }):$g, 0:{ *:[i64] }), i64:{ *:[i64] }:$in) - Complexity = 14
                      // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tjumptable:{ *:[i64] }):$g)
/* 46477*/          0, // EndSwitchType
/* 46478*/        /*SwitchOpcode*/ 27, TARGET_VAL(ISD::TargetBlockAddress),// ->46508
/* 46481*/          OPC_MoveParent,
/* 46482*/          OPC_CheckChild1Integer, 0, 
/* 46484*/          OPC_MoveParent,
/* 46485*/          OPC_RecordChild1, // #1 = $in
/* 46486*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46497
/* 46489*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[i32] } (PPChi:{ *:[i32] } (tblockaddress:{ *:[i32] }):$g, 0:{ *:[i32] }), i32:{ *:[i32] }:$in) - Complexity = 14
                      // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tblockaddress:{ *:[i32] }):$g)
/* 46497*/          /*SwitchType*/ 8, MVT::i64,// ->46507
/* 46499*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 1, 0, 
                      // Src: (add:{ *:[i64] } (PPChi:{ *:[i64] } (tblockaddress:{ *:[i64] }):$g, 0:{ *:[i64] }), i64:{ *:[i64] }:$in) - Complexity = 14
                      // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tblockaddress:{ *:[i64] }):$g)
/* 46507*/          0, // EndSwitchType
/* 46508*/        0, // EndSwitchOpcode
/* 46509*/      0, // EndSwitchOpcode
/* 46510*/    /*Scope*/ 19|128,2/*275*/, /*->46787*/
/* 46512*/      OPC_RecordChild0, // #0 = $rA
/* 46513*/      OPC_Scope, 105, /*->46620*/ // 3 children in Scope
/* 46515*/        OPC_RecordChild1, // #1 = $imm
/* 46516*/        OPC_MoveChild1,
/* 46517*/        OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::Constant),// ->46593
/* 46521*/          OPC_Scope, 15, /*->46538*/ // 4 children in Scope
/* 46523*/            OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 46525*/            OPC_MoveParent,
/* 46526*/            OPC_CheckType, MVT::i32,
/* 46528*/            OPC_EmitConvertToTarget, 1,
/* 46530*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$rA, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm) - Complexity = 7
                      // Dst: (ADDI:{ *:[i32] } i32:{ *:[i32] }:$rA, (imm:{ *:[i32] }):$imm)
/* 46538*/          /*Scope*/ 18, /*->46557*/
/* 46539*/            OPC_CheckPredicate, 18, // Predicate_imm16ShiftedSExt
/* 46541*/            OPC_MoveParent,
/* 46542*/            OPC_CheckType, MVT::i32,
/* 46544*/            OPC_EmitConvertToTarget, 1,
/* 46546*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 46549*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$rA, (imm:{ *:[i32] })<<P:Predicate_imm16ShiftedSExt>><<X:HI16>>:$imm) - Complexity = 7
                      // Dst: (ADDIS:{ *:[i32] } i32:{ *:[i32] }:$rA, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 46557*/          /*Scope*/ 15, /*->46573*/
/* 46558*/            OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 46560*/            OPC_MoveParent,
/* 46561*/            OPC_CheckType, MVT::i64,
/* 46563*/            OPC_EmitConvertToTarget, 1,
/* 46565*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDI8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 2, 
                      // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$rA, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm) - Complexity = 7
                      // Dst: (ADDI8:{ *:[i64] } i64:{ *:[i64] }:$rA, (imm:{ *:[i64] }):$imm)
/* 46573*/          /*Scope*/ 18, /*->46592*/
/* 46574*/            OPC_CheckPredicate, 18, // Predicate_imm16ShiftedSExt
/* 46576*/            OPC_MoveParent,
/* 46577*/            OPC_CheckType, MVT::i64,
/* 46579*/            OPC_EmitConvertToTarget, 1,
/* 46581*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 46584*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$rA, (imm:{ *:[i64] })<<P:Predicate_imm16ShiftedSExt>><<X:HI16>>:$imm) - Complexity = 7
                      // Dst: (ADDIS8:{ *:[i64] } i64:{ *:[i64] }:$rA, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm))
/* 46592*/          0, /*End of Scope*/
/* 46593*/        /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->46619
/* 46596*/          OPC_MoveParent,
/* 46597*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46608
/* 46600*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADD4TLS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$rA, (tglobaltlsaddr:{ *:[i32] }):$rB) - Complexity = 6
                      // Dst: (ADD4TLS:{ *:[i32] } i32:{ *:[i32] }:$rA, (tglobaltlsaddr:{ *:[i32] }):$rB)
/* 46608*/          /*SwitchType*/ 8, MVT::i64,// ->46618
/* 46610*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ADD8TLS), 0,
                          MVT::i64, 2/*#Ops*/, 0, 1, 
                      // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$rA, (tglobaltlsaddr:{ *:[i64] }):$rB) - Complexity = 6
                      // Dst: (ADD8TLS:{ *:[i64] } i64:{ *:[i64] }:$rA, (tglobaltlsaddr:{ *:[i64] }):$rB)
/* 46618*/          0, // EndSwitchType
/* 46619*/        0, // EndSwitchOpcode
/* 46620*/      /*Scope*/ 28, /*->46649*/
/* 46621*/        OPC_MoveChild0,
/* 46622*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 46625*/        OPC_MoveParent,
/* 46626*/        OPC_RecordChild1, // #1 = $rA
/* 46627*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->46638
/* 46630*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ADD4TLS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$rB, i32:{ *:[i32] }:$rA) - Complexity = 6
                    // Dst: (ADD4TLS:{ *:[i32] } i32:{ *:[i32] }:$rA, (tglobaltlsaddr:{ *:[i32] }):$rB)
/* 46638*/        /*SwitchType*/ 8, MVT::i64,// ->46648
/* 46640*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ADD8TLS), 0,
                        MVT::i64, 2/*#Ops*/, 1, 0, 
                    // Src: (add:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$rB, i64:{ *:[i64] }:$rA) - Complexity = 6
                    // Dst: (ADD8TLS:{ *:[i64] } i64:{ *:[i64] }:$rA, (tglobaltlsaddr:{ *:[i64] }):$rB)
/* 46648*/        0, // EndSwitchType
/* 46649*/      /*Scope*/ 7|128,1/*135*/, /*->46786*/
/* 46651*/        OPC_RecordChild1, // #1 = $imm
/* 46652*/        OPC_Scope, 33, /*->46687*/ // 9 children in Scope
/* 46654*/          OPC_MoveChild1,
/* 46655*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46658*/          OPC_MoveParent,
/* 46659*/          OPC_CheckType, MVT::i32,
/* 46661*/          OPC_EmitConvertToTarget, 1,
/* 46663*/          OPC_EmitNodeXForm, 1, 2, // LO16
/* 46666*/          OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 46674*/          OPC_EmitConvertToTarget, 1,
/* 46676*/          OPC_EmitNodeXForm, 2, 5, // HA16
/* 46679*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                        MVT::i32, 2/*#Ops*/, 4, 6, 
                    // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                    // Dst: (ADDIS:{ *:[i32] } (ADDI:{ *:[i32] } ?:{ *:[i32] }:$in, (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (HA16:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 46687*/        /*Scope*/ 10, /*->46698*/
/* 46688*/          OPC_CheckType, MVT::i32,
/* 46690*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ADD4), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                    // Dst: (ADD4:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 46698*/        /*Scope*/ 10, /*->46709*/
/* 46699*/          OPC_CheckType, MVT::i64,
/* 46701*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ADD8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                    // Dst: (ADD8:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 46709*/        /*Scope*/ 10, /*->46720*/
/* 46710*/          OPC_CheckType, MVT::i1,
/* 46712*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRXOR), 0,
                        MVT::i1, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[i1] } i1:{ *:[i1] }:$a, i1:{ *:[i1] }:$b) - Complexity = 3
                    // Dst: (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$a, ?:{ *:[i1] }:$b)
/* 46720*/        /*Scope*/ 12, /*->46733*/
/* 46721*/          OPC_CheckType, MVT::v16i8,
/* 46723*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 46725*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUBM), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                    // Dst: (VADDUBM:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 46733*/        /*Scope*/ 12, /*->46746*/
/* 46734*/          OPC_CheckType, MVT::v8i16,
/* 46736*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 46738*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUHM), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                    // Dst: (VADDUHM:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 46746*/        /*Scope*/ 12, /*->46759*/
/* 46747*/          OPC_CheckType, MVT::v4i32,
/* 46749*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 46751*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUWM), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                    // Dst: (VADDUWM:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 46759*/        /*Scope*/ 12, /*->46772*/
/* 46760*/          OPC_CheckType, MVT::v2i64,
/* 46762*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 46764*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUDM), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                    // Dst: (VADDUDM:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 46772*/        /*Scope*/ 12, /*->46785*/
/* 46773*/          OPC_CheckType, MVT::v1i128,
/* 46775*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 46777*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUQM), 0,
                        MVT::v1i128, 2/*#Ops*/, 0, 1, 
                    // Src: (add:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 3
                    // Dst: (VADDUQM:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB)
/* 46785*/        0, /*End of Scope*/
/* 46786*/      0, /*End of Scope*/
/* 46787*/    0, /*End of Scope*/
/* 46788*/  /*SwitchOpcode*/ 23|128,11/*1431*/, TARGET_VAL(ISD::LOAD),// ->48223
/* 46792*/    OPC_RecordMemRef,
/* 46793*/    OPC_RecordNode, // #0 = 'ld' chained node
/* 46794*/    OPC_RecordChild1, // #1 = $src
/* 46795*/    OPC_CheckPredicate, 19, // Predicate_unindexedload
/* 46797*/    OPC_Scope, 18, /*->46817*/ // 23 children in Scope
/* 46799*/      OPC_CheckPredicate, 20, // Predicate_zextload
/* 46801*/      OPC_CheckPredicate, 21, // Predicate_zextloadi8
/* 46803*/      OPC_CheckType, MVT::i32,
/* 46805*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 46808*/      OPC_EmitMergeInputChains1_0,
/* 46809*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                // Dst: (LBZ:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)
/* 46817*/    /*Scope*/ 18, /*->46836*/
/* 46818*/      OPC_CheckPredicate, 22, // Predicate_sextload
/* 46820*/      OPC_CheckPredicate, 23, // Predicate_sextloadi16
/* 46822*/      OPC_CheckType, MVT::i32,
/* 46824*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 46827*/      OPC_EmitMergeInputChains1_0,
/* 46828*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LHA), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                // Dst: (LHA:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)
/* 46836*/    /*Scope*/ 18, /*->46855*/
/* 46837*/      OPC_CheckPredicate, 20, // Predicate_zextload
/* 46839*/      OPC_CheckPredicate, 23, // Predicate_zextloadi16
/* 46841*/      OPC_CheckType, MVT::i32,
/* 46843*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 46846*/      OPC_EmitMergeInputChains1_0,
/* 46847*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZ), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                // Dst: (LHZ:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)
/* 46855*/    /*Scope*/ 16, /*->46872*/
/* 46856*/      OPC_CheckPredicate, 24, // Predicate_load
/* 46858*/      OPC_CheckType, MVT::i32,
/* 46860*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 46863*/      OPC_EmitMergeInputChains1_0,
/* 46864*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZ), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                // Dst: (LWZ:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)
/* 46872*/    /*Scope*/ 18, /*->46891*/
/* 46873*/      OPC_CheckPredicate, 20, // Predicate_zextload
/* 46875*/      OPC_CheckPredicate, 21, // Predicate_zextloadi8
/* 46877*/      OPC_CheckType, MVT::i32,
/* 46879*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 46882*/      OPC_EmitMergeInputChains1_0,
/* 46883*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                // Dst: (LBZX:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)
/* 46891*/    /*Scope*/ 18, /*->46910*/
/* 46892*/      OPC_CheckPredicate, 22, // Predicate_sextload
/* 46894*/      OPC_CheckPredicate, 23, // Predicate_sextloadi16
/* 46896*/      OPC_CheckType, MVT::i32,
/* 46898*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 46901*/      OPC_EmitMergeInputChains1_0,
/* 46902*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LHAX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                // Dst: (LHAX:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)
/* 46910*/    /*Scope*/ 18, /*->46929*/
/* 46911*/      OPC_CheckPredicate, 20, // Predicate_zextload
/* 46913*/      OPC_CheckPredicate, 23, // Predicate_zextloadi16
/* 46915*/      OPC_CheckType, MVT::i32,
/* 46917*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 46920*/      OPC_EmitMergeInputChains1_0,
/* 46921*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                // Dst: (LHZX:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)
/* 46929*/    /*Scope*/ 16, /*->46946*/
/* 46930*/      OPC_CheckPredicate, 24, // Predicate_load
/* 46932*/      OPC_CheckType, MVT::i32,
/* 46934*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 46937*/      OPC_EmitMergeInputChains1_0,
/* 46938*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                // Dst: (LWZX:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)
/* 46946*/    /*Scope*/ 34, /*->46981*/
/* 46947*/      OPC_CheckPredicate, 20, // Predicate_zextload
/* 46949*/      OPC_CheckPredicate, 25, // Predicate_zextloadi1
/* 46951*/      OPC_CheckType, MVT::i32,
/* 46953*/      OPC_Scope, 12, /*->46967*/ // 2 children in Scope
/* 46955*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 46958*/        OPC_EmitMergeInputChains1_0,
/* 46959*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                  // Dst: (LBZ:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)
/* 46967*/      /*Scope*/ 12, /*->46980*/
/* 46968*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 46971*/        OPC_EmitMergeInputChains1_0,
/* 46972*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                  // Dst: (LBZX:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)
/* 46980*/      0, /*End of Scope*/
/* 46981*/    /*Scope*/ 99, /*->47081*/
/* 46982*/      OPC_CheckPredicate, 26, // Predicate_extload
/* 46984*/      OPC_CheckType, MVT::i32,
/* 46986*/      OPC_Scope, 30, /*->47018*/ // 3 children in Scope
/* 46988*/        OPC_CheckPredicate, 25, // Predicate_extloadi1
/* 46990*/        OPC_Scope, 12, /*->47004*/ // 2 children in Scope
/* 46992*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 46995*/          OPC_EmitMergeInputChains1_0,
/* 46996*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                    // Dst: (LBZ:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)
/* 47004*/        /*Scope*/ 12, /*->47017*/
/* 47005*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47008*/          OPC_EmitMergeInputChains1_0,
/* 47009*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                    // Dst: (LBZX:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)
/* 47017*/        0, /*End of Scope*/
/* 47018*/      /*Scope*/ 30, /*->47049*/
/* 47019*/        OPC_CheckPredicate, 21, // Predicate_extloadi8
/* 47021*/        OPC_Scope, 12, /*->47035*/ // 2 children in Scope
/* 47023*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47026*/          OPC_EmitMergeInputChains1_0,
/* 47027*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                    // Dst: (LBZ:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)
/* 47035*/        /*Scope*/ 12, /*->47048*/
/* 47036*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47039*/          OPC_EmitMergeInputChains1_0,
/* 47040*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                    // Dst: (LBZX:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)
/* 47048*/        0, /*End of Scope*/
/* 47049*/      /*Scope*/ 30, /*->47080*/
/* 47050*/        OPC_CheckPredicate, 23, // Predicate_extloadi16
/* 47052*/        OPC_Scope, 12, /*->47066*/ // 2 children in Scope
/* 47054*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47057*/          OPC_EmitMergeInputChains1_0,
/* 47058*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZ), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                    // Dst: (LHZ:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)
/* 47066*/        /*Scope*/ 12, /*->47079*/
/* 47067*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47070*/          OPC_EmitMergeInputChains1_0,
/* 47071*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                    // Dst: (LHZX:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)
/* 47079*/        0, /*End of Scope*/
/* 47080*/      0, /*End of Scope*/
/* 47081*/    /*Scope*/ 68, /*->47150*/
/* 47082*/      OPC_CheckPredicate, 22, // Predicate_sextload
/* 47084*/      OPC_CheckType, MVT::i64,
/* 47086*/      OPC_Scope, 14, /*->47102*/ // 4 children in Scope
/* 47088*/        OPC_CheckPredicate, 23, // Predicate_sextloadi16
/* 47090*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47093*/        OPC_EmitMergeInputChains1_0,
/* 47094*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LHA8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                  // Dst: (LHA8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47102*/      /*Scope*/ 16, /*->47119*/
/* 47103*/        OPC_CheckPredicate, 27, // Predicate_sextloadi32
/* 47105*/        OPC_CheckPredicate, 28, // Predicate_aligned4sextloadi32
/* 47107*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 47110*/        OPC_EmitMergeInputChains1_0,
/* 47111*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWA), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>><<P:Predicate_aligned4sextloadi32>> - Complexity = 13
                  // Dst: (LWA:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)
/* 47119*/      /*Scope*/ 14, /*->47134*/
/* 47120*/        OPC_CheckPredicate, 23, // Predicate_sextloadi16
/* 47122*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47125*/        OPC_EmitMergeInputChains1_0,
/* 47126*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LHAX8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 13
                  // Dst: (LHAX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47134*/      /*Scope*/ 14, /*->47149*/
/* 47135*/        OPC_CheckPredicate, 27, // Predicate_sextloadi32
/* 47137*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47140*/        OPC_EmitMergeInputChains1_0,
/* 47141*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 13
                  // Dst: (LWAX:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47149*/      0, /*End of Scope*/
/* 47150*/    /*Scope*/ 96, /*->47247*/
/* 47151*/      OPC_CheckPredicate, 20, // Predicate_zextload
/* 47153*/      OPC_CheckType, MVT::i64,
/* 47155*/      OPC_Scope, 14, /*->47171*/ // 6 children in Scope
/* 47157*/        OPC_CheckPredicate, 21, // Predicate_zextloadi8
/* 47159*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47162*/        OPC_EmitMergeInputChains1_0,
/* 47163*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                  // Dst: (LBZ8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47171*/      /*Scope*/ 14, /*->47186*/
/* 47172*/        OPC_CheckPredicate, 23, // Predicate_zextloadi16
/* 47174*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47177*/        OPC_EmitMergeInputChains1_0,
/* 47178*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZ8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                  // Dst: (LHZ8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47186*/      /*Scope*/ 14, /*->47201*/
/* 47187*/        OPC_CheckPredicate, 27, // Predicate_zextloadi32
/* 47189*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47192*/        OPC_EmitMergeInputChains1_0,
/* 47193*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZ8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 13
                  // Dst: (LWZ8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47201*/      /*Scope*/ 14, /*->47216*/
/* 47202*/        OPC_CheckPredicate, 21, // Predicate_zextloadi8
/* 47204*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47207*/        OPC_EmitMergeInputChains1_0,
/* 47208*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
                  // Dst: (LBZX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47216*/      /*Scope*/ 14, /*->47231*/
/* 47217*/        OPC_CheckPredicate, 23, // Predicate_zextloadi16
/* 47219*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47222*/        OPC_EmitMergeInputChains1_0,
/* 47223*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZX8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
                  // Dst: (LHZX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47231*/      /*Scope*/ 14, /*->47246*/
/* 47232*/        OPC_CheckPredicate, 27, // Predicate_zextloadi32
/* 47234*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47237*/        OPC_EmitMergeInputChains1_0,
/* 47238*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZX8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 13
                  // Dst: (LWZX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47246*/      0, /*End of Scope*/
/* 47247*/    /*Scope*/ 34, /*->47282*/
/* 47248*/      OPC_CheckPredicate, 24, // Predicate_load
/* 47250*/      OPC_CheckType, MVT::i64,
/* 47252*/      OPC_Scope, 14, /*->47268*/ // 2 children in Scope
/* 47254*/        OPC_CheckPredicate, 28, // Predicate_aligned4load
/* 47256*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 47259*/        OPC_EmitMergeInputChains1_0,
/* 47260*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LD), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_aligned4load>> - Complexity = 13
                  // Dst: (LD:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)
/* 47268*/      /*Scope*/ 12, /*->47281*/
/* 47269*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47272*/        OPC_EmitMergeInputChains1_0,
/* 47273*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LDX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                  // Dst: (LDX:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47281*/      0, /*End of Scope*/
/* 47282*/    /*Scope*/ 34, /*->47317*/
/* 47283*/      OPC_CheckPredicate, 20, // Predicate_zextload
/* 47285*/      OPC_CheckPredicate, 25, // Predicate_zextloadi1
/* 47287*/      OPC_CheckType, MVT::i64,
/* 47289*/      OPC_Scope, 12, /*->47303*/ // 2 children in Scope
/* 47291*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47294*/        OPC_EmitMergeInputChains1_0,
/* 47295*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                  // Dst: (LBZ8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47303*/      /*Scope*/ 12, /*->47316*/
/* 47304*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47307*/        OPC_EmitMergeInputChains1_0,
/* 47308*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 13
                  // Dst: (LBZX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47316*/      0, /*End of Scope*/
/* 47317*/    /*Scope*/ 2|128,1/*130*/, /*->47449*/
/* 47319*/      OPC_CheckPredicate, 26, // Predicate_extload
/* 47321*/      OPC_CheckType, MVT::i64,
/* 47323*/      OPC_Scope, 30, /*->47355*/ // 4 children in Scope
/* 47325*/        OPC_CheckPredicate, 25, // Predicate_extloadi1
/* 47327*/        OPC_Scope, 12, /*->47341*/ // 2 children in Scope
/* 47329*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47332*/          OPC_EmitMergeInputChains1_0,
/* 47333*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                    // Dst: (LBZ8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47341*/        /*Scope*/ 12, /*->47354*/
/* 47342*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47345*/          OPC_EmitMergeInputChains1_0,
/* 47346*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 13
                    // Dst: (LBZX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47354*/        0, /*End of Scope*/
/* 47355*/      /*Scope*/ 30, /*->47386*/
/* 47356*/        OPC_CheckPredicate, 21, // Predicate_extloadi8
/* 47358*/        OPC_Scope, 12, /*->47372*/ // 2 children in Scope
/* 47360*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47363*/          OPC_EmitMergeInputChains1_0,
/* 47364*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                    // Dst: (LBZ8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47372*/        /*Scope*/ 12, /*->47385*/
/* 47373*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47376*/          OPC_EmitMergeInputChains1_0,
/* 47377*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
                    // Dst: (LBZX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47385*/        0, /*End of Scope*/
/* 47386*/      /*Scope*/ 30, /*->47417*/
/* 47387*/        OPC_CheckPredicate, 23, // Predicate_extloadi16
/* 47389*/        OPC_Scope, 12, /*->47403*/ // 2 children in Scope
/* 47391*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47394*/          OPC_EmitMergeInputChains1_0,
/* 47395*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZ8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                    // Dst: (LHZ8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47403*/        /*Scope*/ 12, /*->47416*/
/* 47404*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47407*/          OPC_EmitMergeInputChains1_0,
/* 47408*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZX8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
                    // Dst: (LHZX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47416*/        0, /*End of Scope*/
/* 47417*/      /*Scope*/ 30, /*->47448*/
/* 47418*/        OPC_CheckPredicate, 27, // Predicate_extloadi32
/* 47420*/        OPC_Scope, 12, /*->47434*/ // 2 children in Scope
/* 47422*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47425*/          OPC_EmitMergeInputChains1_0,
/* 47426*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZ8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 13
                    // Dst: (LWZ8:{ *:[i64] } iaddr:{ *:[iPTR] }:$src)
/* 47434*/        /*Scope*/ 12, /*->47447*/
/* 47435*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47438*/          OPC_EmitMergeInputChains1_0,
/* 47439*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZX8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 13
                    // Dst: (LWZX8:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)
/* 47447*/        0, /*End of Scope*/
/* 47448*/      0, /*End of Scope*/
/* 47449*/    /*Scope*/ 20, /*->47470*/
/* 47450*/      OPC_CheckPredicate, 22, // Predicate_sextload
/* 47452*/      OPC_CheckPredicate, 27, // Predicate_sextloadi32
/* 47454*/      OPC_CheckPredicate, 29, // Predicate_unaligned4sextloadi32
/* 47456*/      OPC_CheckType, MVT::i64,
/* 47458*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 47461*/      OPC_EmitMergeInputChains1_0,
/* 47462*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LWAX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>><<P:Predicate_unaligned4sextloadi32>> - Complexity = 13
                // Dst: (LWAX:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)
/* 47470*/    /*Scope*/ 20|128,1/*148*/, /*->47620*/
/* 47472*/      OPC_CheckPredicate, 24, // Predicate_load
/* 47474*/      OPC_SwitchType /*4 cases */, 14, MVT::i64,// ->47491
/* 47477*/        OPC_CheckPredicate, 29, // Predicate_unaligned4load
/* 47479*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 47482*/        OPC_EmitMergeInputChains1_0,
/* 47483*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LDX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_unaligned4load>> - Complexity = 13
                  // Dst: (LDX:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)
/* 47491*/      /*SwitchType*/ 32, MVT::f32,// ->47525
/* 47493*/        OPC_Scope, 14, /*->47509*/ // 2 children in Scope
/* 47495*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 47497*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 47500*/          OPC_EmitMergeInputChains1_0,
/* 47501*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f32] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (DFLOADf32:{ *:[f32] } ixaddr:{ *:[iPTR] }:$src)
/* 47509*/        /*Scope*/ 14, /*->47524*/
/* 47510*/          OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 47512*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 47515*/          OPC_EmitMergeInputChains1_0,
/* 47516*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (XFLOADf32:{ *:[f32] } xoaddr:{ *:[iPTR] }:$src)
/* 47524*/        0, /*End of Scope*/
/* 47525*/      /*SwitchType*/ 32, MVT::f64,// ->47559
/* 47527*/        OPC_Scope, 14, /*->47543*/ // 2 children in Scope
/* 47529*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 47531*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 47534*/          OPC_EmitMergeInputChains1_0,
/* 47535*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (DFLOADf64:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src)
/* 47543*/        /*Scope*/ 14, /*->47558*/
/* 47544*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 47546*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 47549*/          OPC_EmitMergeInputChains1_0,
/* 47550*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (XFLOADf64:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)
/* 47558*/        0, /*End of Scope*/
/* 47559*/      /*SwitchType*/ 58, MVT::f128,// ->47619
/* 47561*/        OPC_Scope, 27, /*->47590*/ // 2 children in Scope
/* 47563*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 47565*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 47567*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 47570*/          OPC_EmitMergeInputChains1_0,
/* 47571*/          OPC_EmitNode1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 47579*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 47582*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f128, 2/*#Ops*/, 4, 5, 
                    // Src: (ld:{ *:[f128] } iqaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                    // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (LXV:{ *:[v4i32] } memrix16:{ *:[iPTR] }:$src), VRRC:{ *:[i32] })
/* 47590*/        /*Scope*/ 27, /*->47618*/
/* 47591*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 47593*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 47595*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 47598*/          OPC_EmitMergeInputChains1_0,
/* 47599*/          OPC_EmitNode1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 47607*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 47610*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f128, 2/*#Ops*/, 4, 5, 
                    // Src: (ld:{ *:[f128] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nonQuadwOffsetLoad>> - Complexity = 413
                    // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (LXVX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src), VRRC:{ *:[i32] })
/* 47618*/        0, /*End of Scope*/
/* 47619*/      0, // EndSwitchType
/* 47620*/    /*Scope*/ 60, /*->47681*/
/* 47621*/      OPC_CheckPredicate, 26, // Predicate_extload
/* 47623*/      OPC_CheckPredicate, 30, // Predicate_extloadf32
/* 47625*/      OPC_CheckType, MVT::f64,
/* 47627*/      OPC_Scope, 25, /*->47654*/ // 2 children in Scope
/* 47629*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 47631*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 47634*/        OPC_EmitMergeInputChains1_0,
/* 47635*/        OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 47643*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 47646*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::f64, 2/*#Ops*/, 4, 5, 
                  // Src: (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 413
                  // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf32:{ *:[f32] } ixaddr:{ *:[iPTR] }:$src), VSFRC:{ *:[i32] })
/* 47654*/      /*Scope*/ 25, /*->47680*/
/* 47655*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 47657*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 47660*/        OPC_EmitMergeInputChains1_0,
/* 47661*/        OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 47669*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 47672*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::f64, 2/*#Ops*/, 4, 5, 
                  // Src: (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 413
                  // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XFLOADf32:{ *:[f32] } xoaddr:{ *:[iPTR] }:$src), VSFRC:{ *:[i32] })
/* 47680*/      0, /*End of Scope*/
/* 47681*/    /*Scope*/ 8|128,1/*136*/, /*->47819*/
/* 47683*/      OPC_CheckPredicate, 24, // Predicate_load
/* 47685*/      OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->47752
/* 47688*/        OPC_Scope, 30, /*->47720*/ // 2 children in Scope
/* 47690*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 47692*/          OPC_Scope, 12, /*->47706*/ // 2 children in Scope
/* 47694*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47697*/            OPC_EmitMergeInputChains1_0,
/* 47698*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LFS), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[f32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LFS:{ *:[f32] } iaddr:{ *:[iPTR] }:$src)
/* 47706*/          /*Scope*/ 12, /*->47719*/
/* 47707*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47710*/            OPC_EmitMergeInputChains1_0,
/* 47711*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LFSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[f32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LFSX:{ *:[f32] } xaddr:{ *:[iPTR] }:$src)
/* 47719*/          0, /*End of Scope*/
/* 47720*/        /*Scope*/ 30, /*->47751*/
/* 47721*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 47723*/          OPC_Scope, 12, /*->47737*/ // 2 children in Scope
/* 47725*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47728*/            OPC_EmitMergeInputChains1_0,
/* 47729*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::SPELWZ), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[f32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (SPELWZ:{ *:[f32] } iaddr:{ *:[iPTR] }:$src)
/* 47737*/          /*Scope*/ 12, /*->47750*/
/* 47738*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47741*/            OPC_EmitMergeInputChains1_0,
/* 47742*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::SPELWZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[f32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (SPELWZX:{ *:[f32] } xaddr:{ *:[iPTR] }:$src)
/* 47750*/          0, /*End of Scope*/
/* 47751*/        0, /*End of Scope*/
/* 47752*/      /*SwitchType*/ 64, MVT::f64,// ->47818
/* 47754*/        OPC_Scope, 30, /*->47786*/ // 2 children in Scope
/* 47756*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 47758*/          OPC_Scope, 12, /*->47772*/ // 2 children in Scope
/* 47760*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47763*/            OPC_EmitMergeInputChains1_0,
/* 47764*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LFD), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[f64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LFD:{ *:[f64] } iaddr:{ *:[iPTR] }:$src)
/* 47772*/          /*Scope*/ 12, /*->47785*/
/* 47773*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47776*/            OPC_EmitMergeInputChains1_0,
/* 47777*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LFDX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[f64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (LFDX:{ *:[f64] } xaddr:{ *:[iPTR] }:$src)
/* 47785*/          0, /*End of Scope*/
/* 47786*/        /*Scope*/ 30, /*->47817*/
/* 47787*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 47789*/          OPC_Scope, 12, /*->47803*/ // 2 children in Scope
/* 47791*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$dst #2 #3
/* 47794*/            OPC_EmitMergeInputChains1_0,
/* 47795*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EVLDD), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[f64] } iaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (EVLDD:{ *:[f64] } iaddr:{ *:[iPTR] }:$dst)
/* 47803*/          /*Scope*/ 12, /*->47816*/
/* 47804*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47807*/            OPC_EmitMergeInputChains1_0,
/* 47808*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EVLDDX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[f64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (EVLDDX:{ *:[f64] } xaddr:{ *:[iPTR] }:$src)
/* 47816*/          0, /*End of Scope*/
/* 47817*/        0, /*End of Scope*/
/* 47818*/      0, // EndSwitchType
/* 47819*/    /*Scope*/ 114, /*->47934*/
/* 47820*/      OPC_CheckPredicate, 26, // Predicate_extload
/* 47822*/      OPC_CheckPredicate, 30, // Predicate_extloadf32
/* 47824*/      OPC_CheckType, MVT::f64,
/* 47826*/      OPC_Scope, 52, /*->47880*/ // 2 children in Scope
/* 47828*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 47830*/        OPC_Scope, 23, /*->47855*/ // 2 children in Scope
/* 47832*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47835*/          OPC_EmitMergeInputChains1_0,
/* 47836*/          OPC_EmitNode1, TARGET_VAL(PPC::LFS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 47844*/          OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 47847*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 4, 5, 
                    // Src: (ld:{ *:[f64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (LFS:{ *:[f32] } iaddr:{ *:[iPTR] }:$src), F8RC:{ *:[i32] })
/* 47855*/        /*Scope*/ 23, /*->47879*/
/* 47856*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47859*/          OPC_EmitMergeInputChains1_0,
/* 47860*/          OPC_EmitNode1, TARGET_VAL(PPC::LFSX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 47868*/          OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 47871*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 4, 5, 
                    // Src: (ld:{ *:[f64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (LFSX:{ *:[f32] } xaddr:{ *:[iPTR] }:$src), F8RC:{ *:[i32] })
/* 47879*/        0, /*End of Scope*/
/* 47880*/      /*Scope*/ 52, /*->47933*/
/* 47881*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 47883*/        OPC_Scope, 23, /*->47908*/ // 2 children in Scope
/* 47885*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 47888*/          OPC_EmitMergeInputChains1_0,
/* 47889*/          OPC_EmitNode1, TARGET_VAL(PPC::SPELWZ), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 47897*/          OPC_EmitInteger, MVT::i32, PPC::SPERCRegClassID,
/* 47900*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 4, 5, 
                    // Src: (ld:{ *:[f64] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (SPELWZ:{ *:[f32] } iaddr:{ *:[iPTR] }:$src), SPERC:{ *:[i32] })
/* 47908*/        /*Scope*/ 23, /*->47932*/
/* 47909*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 47912*/          OPC_EmitMergeInputChains1_0,
/* 47913*/          OPC_EmitNode1, TARGET_VAL(PPC::SPELWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 47921*/          OPC_EmitInteger, MVT::i32, PPC::SPERCRegClassID,
/* 47924*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 4, 5, 
                    // Src: (ld:{ *:[f64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 13
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (SPELWZX:{ *:[f32] } xaddr:{ *:[iPTR] }:$src), SPERC:{ *:[i32] })
/* 47932*/        0, /*End of Scope*/
/* 47933*/      0, /*End of Scope*/
/* 47934*/    /*Scope*/ 118|128,1/*246*/, /*->48182*/
/* 47936*/      OPC_CheckPredicate, 24, // Predicate_load
/* 47938*/      OPC_SwitchType /*5 cases */, 51, MVT::v2i64,// ->47992
/* 47941*/        OPC_Scope, 14, /*->47957*/ // 3 children in Scope
/* 47943*/          OPC_CheckPatternPredicate, 2, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 47945*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 47948*/          OPC_EmitMergeInputChains1_0,
/* 47949*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (LXVD2X:{ *:[v2i64] } xoaddr:{ *:[iPTR] }:$src)
/* 47957*/        /*Scope*/ 16, /*->47974*/
/* 47958*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 47960*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 47962*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 47965*/          OPC_EmitMergeInputChains1_0,
/* 47966*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2i64] } iqaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXV:{ *:[v2i64] } memrix16:{ *:[iPTR] }:$src)
/* 47974*/        /*Scope*/ 16, /*->47991*/
/* 47975*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 47977*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 47979*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 47982*/          OPC_EmitMergeInputChains1_0,
/* 47983*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nonQuadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXVX:{ *:[v2i64] } xoaddr:{ *:[iPTR] }:$src)
/* 47991*/        0, /*End of Scope*/
/* 47992*/      /*SwitchType*/ 66, MVT::v4i32,// ->48060
/* 47994*/        OPC_Scope, 14, /*->48010*/ // 4 children in Scope
/* 47996*/          OPC_CheckPatternPredicate, 2, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 47998*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48001*/          OPC_EmitMergeInputChains1_0,
/* 48002*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVW4X), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (LXVW4X:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 48010*/        /*Scope*/ 16, /*->48027*/
/* 48011*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 48013*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 48015*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 48018*/          OPC_EmitMergeInputChains1_0,
/* 48019*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4i32] } iqaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXV:{ *:[v4i32] } memrix16:{ *:[iPTR] }:$src)
/* 48027*/        /*Scope*/ 16, /*->48044*/
/* 48028*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 48030*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 48032*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48035*/          OPC_EmitMergeInputChains1_0,
/* 48036*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nonQuadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXVX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 48044*/        /*Scope*/ 14, /*->48059*/
/* 48045*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 48047*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48050*/          OPC_EmitMergeInputChains1_0,
/* 48051*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LVX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (LVX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 48059*/        0, /*End of Scope*/
/* 48060*/      /*SwitchType*/ 65, MVT::v2f64,// ->48127
/* 48062*/        OPC_Scope, 14, /*->48078*/ // 2 children in Scope
/* 48064*/          OPC_CheckPatternPredicate, 2, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 48066*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48069*/          OPC_EmitMergeInputChains1_0,
/* 48070*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (LXVD2X:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/* 48078*/        /*Scope*/ 47, /*->48126*/
/* 48079*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 48081*/          OPC_Scope, 12, /*->48095*/ // 3 children in Scope
/* 48083*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 48086*/            OPC_EmitMergeInputChains1_0,
/* 48087*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2f64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                      // Dst: (LXVX:{ *:[v2f64] } xaddr:{ *:[iPTR] }:$src)
/* 48095*/          /*Scope*/ 14, /*->48110*/
/* 48096*/            OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 48098*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 48101*/            OPC_EmitMergeInputChains1_0,
/* 48102*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2f64] } iqaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                      // Dst: (LXV:{ *:[v2f64] } memrix16:{ *:[iPTR] }:$src)
/* 48110*/          /*Scope*/ 14, /*->48125*/
/* 48111*/            OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 48113*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48116*/            OPC_EmitMergeInputChains1_0,
/* 48117*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nonQuadwOffsetLoad>> - Complexity = 413
                      // Dst: (LXVX:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/* 48125*/          0, /*End of Scope*/
/* 48126*/        0, /*End of Scope*/
/* 48127*/      /*SwitchType*/ 36, MVT::v4f32,// ->48165
/* 48129*/        OPC_Scope, 16, /*->48147*/ // 2 children in Scope
/* 48131*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 48133*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 48135*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 48138*/          OPC_EmitMergeInputChains1_0,
/* 48139*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4f32] } iqaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXV:{ *:[v4f32] } memrix16:{ *:[iPTR] }:$src)
/* 48147*/        /*Scope*/ 16, /*->48164*/
/* 48148*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 48150*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 48152*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48155*/          OPC_EmitMergeInputChains1_0,
/* 48156*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4f32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nonQuadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXVX:{ *:[v4f32] } xoaddr:{ *:[iPTR] }:$src)
/* 48164*/        0, /*End of Scope*/
/* 48165*/      /*SwitchType*/ 14, MVT::v4f64,// ->48181
/* 48167*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 48169*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48172*/        OPC_EmitMergeInputChains1_0,
/* 48173*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFDX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                  // Dst: (QVLFDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 48181*/      0, // EndSwitchType
/* 48182*/    /*Scope*/ 20, /*->48203*/
/* 48183*/      OPC_CheckPredicate, 26, // Predicate_extload
/* 48185*/      OPC_CheckPredicate, 31, // Predicate_extloadv4f32
/* 48187*/      OPC_CheckType, MVT::v4f64,
/* 48189*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 48191*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48194*/      OPC_EmitMergeInputChains1_0,
/* 48195*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFSX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadv4f32>> - Complexity = 13
                // Dst: (QVLFSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 48203*/    /*Scope*/ 18, /*->48222*/
/* 48204*/      OPC_CheckPredicate, 24, // Predicate_load
/* 48206*/      OPC_CheckType, MVT::v4f32,
/* 48208*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 48210*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 48213*/      OPC_EmitMergeInputChains1_0,
/* 48214*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFSXs), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 2/*#Ops*/, 2, 3, 
                // Src: (ld:{ *:[v4f32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                // Dst: (QVLFSXs:{ *:[v4f32] } xoaddr:{ *:[iPTR] }:$src)
/* 48222*/    0, /*End of Scope*/
/* 48223*/  /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::ATOMIC_LOAD),// ->48358
/* 48227*/    OPC_RecordMemRef,
/* 48228*/    OPC_RecordNode, // #0 = 'atomic_load' chained node
/* 48229*/    OPC_RecordChild1, // #1 = $src
/* 48230*/    OPC_SwitchType /*2 cases */, 30, MVT::i64,// ->48263
/* 48233*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_64
/* 48235*/      OPC_Scope, 12, /*->48249*/ // 2 children in Scope
/* 48237*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 48240*/        OPC_EmitMergeInputChains1_0,
/* 48241*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LD), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_64>> - Complexity = 13
                  // Dst: (LD:{ *:[i64] } memrix:{ *:[iPTR] }:$src)
/* 48249*/      /*Scope*/ 12, /*->48262*/
/* 48250*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 48253*/        OPC_EmitMergeInputChains1_0,
/* 48254*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LDX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_64>> - Complexity = 13
                  // Dst: (LDX:{ *:[i64] } memrr:{ *:[iPTR] }:$src)
/* 48262*/      0, /*End of Scope*/
/* 48263*/    /*SwitchType*/ 92, MVT::i32,// ->48357
/* 48265*/      OPC_Scope, 14, /*->48281*/ // 6 children in Scope
/* 48267*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_8
/* 48269*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 48272*/        OPC_EmitMergeInputChains1_0,
/* 48273*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_8>> - Complexity = 13
                  // Dst: (LBZ:{ *:[i32] } memri:{ *:[iPTR] }:$src)
/* 48281*/      /*Scope*/ 14, /*->48296*/
/* 48282*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_16
/* 48284*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 48287*/        OPC_EmitMergeInputChains1_0,
/* 48288*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZ), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_16>> - Complexity = 13
                  // Dst: (LHZ:{ *:[i32] } memri:{ *:[iPTR] }:$src)
/* 48296*/      /*Scope*/ 14, /*->48311*/
/* 48297*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 48299*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$src #2 #3
/* 48302*/        OPC_EmitMergeInputChains1_0,
/* 48303*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZ), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } iaddr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_32>> - Complexity = 13
                  // Dst: (LWZ:{ *:[i32] } memri:{ *:[iPTR] }:$src)
/* 48311*/      /*Scope*/ 14, /*->48326*/
/* 48312*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_8
/* 48314*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 48317*/        OPC_EmitMergeInputChains1_0,
/* 48318*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_8>> - Complexity = 13
                  // Dst: (LBZX:{ *:[i32] } memrr:{ *:[iPTR] }:$src)
/* 48326*/      /*Scope*/ 14, /*->48341*/
/* 48327*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_16
/* 48329*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 48332*/        OPC_EmitMergeInputChains1_0,
/* 48333*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LHZX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_16>> - Complexity = 13
                  // Dst: (LHZX:{ *:[i32] } memrr:{ *:[iPTR] }:$src)
/* 48341*/      /*Scope*/ 14, /*->48356*/
/* 48342*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_32
/* 48344*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 48347*/        OPC_EmitMergeInputChains1_0,
/* 48348*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i32] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_32>> - Complexity = 13
                  // Dst: (LWZX:{ *:[i32] } memrr:{ *:[iPTR] }:$src)
/* 48356*/      0, /*End of Scope*/
/* 48357*/    0, // EndSwitchType
/* 48358*/  /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->48496
/* 48362*/    OPC_RecordMemRef,
/* 48363*/    OPC_RecordNode, // #0 = 'atomic_store' chained node
/* 48364*/    OPC_RecordChild1, // #1 = $ptr
/* 48365*/    OPC_RecordChild2, // #2 = $val
/* 48366*/    OPC_Scope, 32, /*->48400*/ // 2 children in Scope
/* 48368*/      OPC_CheckChild2Type, MVT::i64,
/* 48370*/      OPC_CheckPredicate, 32, // Predicate_atomic_store_64
/* 48372*/      OPC_Scope, 12, /*->48386*/ // 2 children in Scope
/* 48374*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$ptr #3 #4
/* 48377*/        OPC_EmitMergeInputChains1_0,
/* 48378*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STD), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store ixaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>> - Complexity = 13
                  // Dst: (STD g8rc:{ *:[i64] }:$val, memrix:{ *:[iPTR] }:$ptr)
/* 48386*/      /*Scope*/ 12, /*->48399*/
/* 48387*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$ptr #3 #4
/* 48390*/        OPC_EmitMergeInputChains1_0,
/* 48391*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STDX), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store xaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>> - Complexity = 13
                  // Dst: (STDX g8rc:{ *:[i64] }:$val, memrr:{ *:[iPTR] }:$ptr)
/* 48399*/      0, /*End of Scope*/
/* 48400*/    /*Scope*/ 94, /*->48495*/
/* 48401*/      OPC_CheckChild2Type, MVT::i32,
/* 48403*/      OPC_Scope, 14, /*->48419*/ // 6 children in Scope
/* 48405*/        OPC_CheckPredicate, 33, // Predicate_atomic_store_8
/* 48407*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$ptr #3 #4
/* 48410*/        OPC_EmitMergeInputChains1_0,
/* 48411*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STB), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store iaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 13
                  // Dst: (STB gprc:{ *:[i32] }:$val, memri:{ *:[iPTR] }:$ptr)
/* 48419*/      /*Scope*/ 14, /*->48434*/
/* 48420*/        OPC_CheckPredicate, 34, // Predicate_atomic_store_16
/* 48422*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$ptr #3 #4
/* 48425*/        OPC_EmitMergeInputChains1_0,
/* 48426*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STH), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store iaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>> - Complexity = 13
                  // Dst: (STH gprc:{ *:[i32] }:$val, memri:{ *:[iPTR] }:$ptr)
/* 48434*/      /*Scope*/ 14, /*->48449*/
/* 48435*/        OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 48437*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$ptr #3 #4
/* 48440*/        OPC_EmitMergeInputChains1_0,
/* 48441*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STW), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store iaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 13
                  // Dst: (STW gprc:{ *:[i32] }:$val, memri:{ *:[iPTR] }:$ptr)
/* 48449*/      /*Scope*/ 14, /*->48464*/
/* 48450*/        OPC_CheckPredicate, 33, // Predicate_atomic_store_8
/* 48452*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$ptr #3 #4
/* 48455*/        OPC_EmitMergeInputChains1_0,
/* 48456*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STBX), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store xaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_8>> - Complexity = 13
                  // Dst: (STBX gprc:{ *:[i32] }:$val, memrr:{ *:[iPTR] }:$ptr)
/* 48464*/      /*Scope*/ 14, /*->48479*/
/* 48465*/        OPC_CheckPredicate, 34, // Predicate_atomic_store_16
/* 48467*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$ptr #3 #4
/* 48470*/        OPC_EmitMergeInputChains1_0,
/* 48471*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STHX), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store xaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_16>> - Complexity = 13
                  // Dst: (STHX gprc:{ *:[i32] }:$val, memrr:{ *:[iPTR] }:$ptr)
/* 48479*/      /*Scope*/ 14, /*->48494*/
/* 48480*/        OPC_CheckPredicate, 35, // Predicate_atomic_store_32
/* 48482*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$ptr #3 #4
/* 48485*/        OPC_EmitMergeInputChains1_0,
/* 48486*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STWX), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store xaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$val)<<P:Predicate_atomic_store_32>> - Complexity = 13
                  // Dst: (STWX gprc:{ *:[i32] }:$val, memrr:{ *:[iPTR] }:$ptr)
/* 48494*/      0, /*End of Scope*/
/* 48495*/    0, /*End of Scope*/
/* 48496*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->48578
/* 48499*/    OPC_RecordMemRef,
/* 48500*/    OPC_RecordNode, // #0 = 'atomic_load_add' chained node
/* 48501*/    OPC_RecordChild1, // #1 = $ptr
/* 48502*/    OPC_RecordChild2, // #2 = $incr
/* 48503*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->48559
/* 48506*/      OPC_Scope, 16, /*->48524*/ // 3 children in Scope
/* 48508*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_add_8
/* 48510*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48513*/        OPC_EmitMergeInputChains1_0,
/* 48514*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_ADD_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_add:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_add_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_ADD_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48524*/      /*Scope*/ 16, /*->48541*/
/* 48525*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_add_16
/* 48527*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48530*/        OPC_EmitMergeInputChains1_0,
/* 48531*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_ADD_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_add:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_add_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_ADD_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48541*/      /*Scope*/ 16, /*->48558*/
/* 48542*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_add_32
/* 48544*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48547*/        OPC_EmitMergeInputChains1_0,
/* 48548*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_ADD_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_add:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_add_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_ADD_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48558*/      0, /*End of Scope*/
/* 48559*/    /*SwitchType*/ 16, MVT::i64,// ->48577
/* 48561*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_add_64
/* 48563*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48566*/      OPC_EmitMergeInputChains1_0,
/* 48567*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_ADD_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_add:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_add_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_ADD_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 48577*/    0, // EndSwitchType
/* 48578*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),// ->48660
/* 48581*/    OPC_RecordMemRef,
/* 48582*/    OPC_RecordNode, // #0 = 'atomic_load_sub' chained node
/* 48583*/    OPC_RecordChild1, // #1 = $ptr
/* 48584*/    OPC_RecordChild2, // #2 = $incr
/* 48585*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->48641
/* 48588*/      OPC_Scope, 16, /*->48606*/ // 3 children in Scope
/* 48590*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_sub_8
/* 48592*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48595*/        OPC_EmitMergeInputChains1_0,
/* 48596*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_SUB_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_sub:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_SUB_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48606*/      /*Scope*/ 16, /*->48623*/
/* 48607*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_sub_16
/* 48609*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48612*/        OPC_EmitMergeInputChains1_0,
/* 48613*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_SUB_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_sub:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_SUB_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48623*/      /*Scope*/ 16, /*->48640*/
/* 48624*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_sub_32
/* 48626*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48629*/        OPC_EmitMergeInputChains1_0,
/* 48630*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_SUB_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_sub:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_SUB_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48640*/      0, /*End of Scope*/
/* 48641*/    /*SwitchType*/ 16, MVT::i64,// ->48659
/* 48643*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_sub_64
/* 48645*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48648*/      OPC_EmitMergeInputChains1_0,
/* 48649*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_SUB_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_sub:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_SUB_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 48659*/    0, // EndSwitchType
/* 48660*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_AND),// ->48742
/* 48663*/    OPC_RecordMemRef,
/* 48664*/    OPC_RecordNode, // #0 = 'atomic_load_and' chained node
/* 48665*/    OPC_RecordChild1, // #1 = $ptr
/* 48666*/    OPC_RecordChild2, // #2 = $incr
/* 48667*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->48723
/* 48670*/      OPC_Scope, 16, /*->48688*/ // 3 children in Scope
/* 48672*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_and_8
/* 48674*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48677*/        OPC_EmitMergeInputChains1_0,
/* 48678*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_AND_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_and:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_and_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_AND_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48688*/      /*Scope*/ 16, /*->48705*/
/* 48689*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_and_16
/* 48691*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48694*/        OPC_EmitMergeInputChains1_0,
/* 48695*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_AND_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_and:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_and_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_AND_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48705*/      /*Scope*/ 16, /*->48722*/
/* 48706*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_and_32
/* 48708*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48711*/        OPC_EmitMergeInputChains1_0,
/* 48712*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_AND_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_and:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_and_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_AND_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48722*/      0, /*End of Scope*/
/* 48723*/    /*SwitchType*/ 16, MVT::i64,// ->48741
/* 48725*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_and_64
/* 48727*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48730*/      OPC_EmitMergeInputChains1_0,
/* 48731*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_AND_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_and:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_and_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_AND_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 48741*/    0, // EndSwitchType
/* 48742*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_OR),// ->48824
/* 48745*/    OPC_RecordMemRef,
/* 48746*/    OPC_RecordNode, // #0 = 'atomic_load_or' chained node
/* 48747*/    OPC_RecordChild1, // #1 = $ptr
/* 48748*/    OPC_RecordChild2, // #2 = $incr
/* 48749*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->48805
/* 48752*/      OPC_Scope, 16, /*->48770*/ // 3 children in Scope
/* 48754*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_or_8
/* 48756*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48759*/        OPC_EmitMergeInputChains1_0,
/* 48760*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_OR_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_or:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_or_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_OR_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48770*/      /*Scope*/ 16, /*->48787*/
/* 48771*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_or_16
/* 48773*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48776*/        OPC_EmitMergeInputChains1_0,
/* 48777*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_OR_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_or:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_or_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_OR_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48787*/      /*Scope*/ 16, /*->48804*/
/* 48788*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_or_32
/* 48790*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48793*/        OPC_EmitMergeInputChains1_0,
/* 48794*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_OR_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_or:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_or_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_OR_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48804*/      0, /*End of Scope*/
/* 48805*/    /*SwitchType*/ 16, MVT::i64,// ->48823
/* 48807*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_or_64
/* 48809*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48812*/      OPC_EmitMergeInputChains1_0,
/* 48813*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_OR_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_or:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_or_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_OR_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 48823*/    0, // EndSwitchType
/* 48824*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),// ->48906
/* 48827*/    OPC_RecordMemRef,
/* 48828*/    OPC_RecordNode, // #0 = 'atomic_load_xor' chained node
/* 48829*/    OPC_RecordChild1, // #1 = $ptr
/* 48830*/    OPC_RecordChild2, // #2 = $incr
/* 48831*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->48887
/* 48834*/      OPC_Scope, 16, /*->48852*/ // 3 children in Scope
/* 48836*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_xor_8
/* 48838*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48841*/        OPC_EmitMergeInputChains1_0,
/* 48842*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_XOR_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_xor:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_xor_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_XOR_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48852*/      /*Scope*/ 16, /*->48869*/
/* 48853*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_xor_16
/* 48855*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48858*/        OPC_EmitMergeInputChains1_0,
/* 48859*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_XOR_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_xor:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_xor_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_XOR_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48869*/      /*Scope*/ 16, /*->48886*/
/* 48870*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_xor_32
/* 48872*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48875*/        OPC_EmitMergeInputChains1_0,
/* 48876*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_XOR_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_xor:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_xor_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_XOR_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48886*/      0, /*End of Scope*/
/* 48887*/    /*SwitchType*/ 16, MVT::i64,// ->48905
/* 48889*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_xor_64
/* 48891*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48894*/      OPC_EmitMergeInputChains1_0,
/* 48895*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_XOR_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_xor:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_xor_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_XOR_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 48905*/    0, // EndSwitchType
/* 48906*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_NAND),// ->48988
/* 48909*/    OPC_RecordMemRef,
/* 48910*/    OPC_RecordNode, // #0 = 'atomic_load_nand' chained node
/* 48911*/    OPC_RecordChild1, // #1 = $ptr
/* 48912*/    OPC_RecordChild2, // #2 = $incr
/* 48913*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->48969
/* 48916*/      OPC_Scope, 16, /*->48934*/ // 3 children in Scope
/* 48918*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_nand_8
/* 48920*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48923*/        OPC_EmitMergeInputChains1_0,
/* 48924*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_NAND_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_nand:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_NAND_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48934*/      /*Scope*/ 16, /*->48951*/
/* 48935*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_nand_16
/* 48937*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48940*/        OPC_EmitMergeInputChains1_0,
/* 48941*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_NAND_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_nand:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_NAND_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48951*/      /*Scope*/ 16, /*->48968*/
/* 48952*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_nand_32
/* 48954*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48957*/        OPC_EmitMergeInputChains1_0,
/* 48958*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_NAND_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_nand:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_NAND_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 48968*/      0, /*End of Scope*/
/* 48969*/    /*SwitchType*/ 16, MVT::i64,// ->48987
/* 48971*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_nand_64
/* 48973*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 48976*/      OPC_EmitMergeInputChains1_0,
/* 48977*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_NAND_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_nand:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_NAND_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 48987*/    0, // EndSwitchType
/* 48988*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_MIN),// ->49070
/* 48991*/    OPC_RecordMemRef,
/* 48992*/    OPC_RecordNode, // #0 = 'atomic_load_min' chained node
/* 48993*/    OPC_RecordChild1, // #1 = $ptr
/* 48994*/    OPC_RecordChild2, // #2 = $incr
/* 48995*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->49051
/* 48998*/      OPC_Scope, 16, /*->49016*/ // 3 children in Scope
/* 49000*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_min_8
/* 49002*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49005*/        OPC_EmitMergeInputChains1_0,
/* 49006*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_MIN_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_min:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_min_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_MIN_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49016*/      /*Scope*/ 16, /*->49033*/
/* 49017*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_min_16
/* 49019*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49022*/        OPC_EmitMergeInputChains1_0,
/* 49023*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_MIN_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_min:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_min_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_MIN_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49033*/      /*Scope*/ 16, /*->49050*/
/* 49034*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_min_32
/* 49036*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49039*/        OPC_EmitMergeInputChains1_0,
/* 49040*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_MIN_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_min:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_min_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_MIN_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49050*/      0, /*End of Scope*/
/* 49051*/    /*SwitchType*/ 16, MVT::i64,// ->49069
/* 49053*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_min_64
/* 49055*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49058*/      OPC_EmitMergeInputChains1_0,
/* 49059*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_MIN_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_min:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_min_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_MIN_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 49069*/    0, // EndSwitchType
/* 49070*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_MAX),// ->49152
/* 49073*/    OPC_RecordMemRef,
/* 49074*/    OPC_RecordNode, // #0 = 'atomic_load_max' chained node
/* 49075*/    OPC_RecordChild1, // #1 = $ptr
/* 49076*/    OPC_RecordChild2, // #2 = $incr
/* 49077*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->49133
/* 49080*/      OPC_Scope, 16, /*->49098*/ // 3 children in Scope
/* 49082*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_max_8
/* 49084*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49087*/        OPC_EmitMergeInputChains1_0,
/* 49088*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_MAX_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_max:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_max_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_MAX_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49098*/      /*Scope*/ 16, /*->49115*/
/* 49099*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_max_16
/* 49101*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49104*/        OPC_EmitMergeInputChains1_0,
/* 49105*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_MAX_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_max:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_max_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_MAX_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49115*/      /*Scope*/ 16, /*->49132*/
/* 49116*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_max_32
/* 49118*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49121*/        OPC_EmitMergeInputChains1_0,
/* 49122*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_MAX_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_max:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_max_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_MAX_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49132*/      0, /*End of Scope*/
/* 49133*/    /*SwitchType*/ 16, MVT::i64,// ->49151
/* 49135*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_max_64
/* 49137*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49140*/      OPC_EmitMergeInputChains1_0,
/* 49141*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_MAX_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_max:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_max_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_MAX_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 49151*/    0, // EndSwitchType
/* 49152*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_UMIN),// ->49234
/* 49155*/    OPC_RecordMemRef,
/* 49156*/    OPC_RecordNode, // #0 = 'atomic_load_umin' chained node
/* 49157*/    OPC_RecordChild1, // #1 = $ptr
/* 49158*/    OPC_RecordChild2, // #2 = $incr
/* 49159*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->49215
/* 49162*/      OPC_Scope, 16, /*->49180*/ // 3 children in Scope
/* 49164*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_umin_8
/* 49166*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49169*/        OPC_EmitMergeInputChains1_0,
/* 49170*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_UMIN_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_umin:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_umin_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_UMIN_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49180*/      /*Scope*/ 16, /*->49197*/
/* 49181*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_umin_16
/* 49183*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49186*/        OPC_EmitMergeInputChains1_0,
/* 49187*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_UMIN_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_umin:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_umin_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_UMIN_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49197*/      /*Scope*/ 16, /*->49214*/
/* 49198*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_umin_32
/* 49200*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49203*/        OPC_EmitMergeInputChains1_0,
/* 49204*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_UMIN_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_umin:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_umin_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_UMIN_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49214*/      0, /*End of Scope*/
/* 49215*/    /*SwitchType*/ 16, MVT::i64,// ->49233
/* 49217*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_umin_64
/* 49219*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49222*/      OPC_EmitMergeInputChains1_0,
/* 49223*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_UMIN_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_umin:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_umin_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_UMIN_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 49233*/    0, // EndSwitchType
/* 49234*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_UMAX),// ->49316
/* 49237*/    OPC_RecordMemRef,
/* 49238*/    OPC_RecordNode, // #0 = 'atomic_load_umax' chained node
/* 49239*/    OPC_RecordChild1, // #1 = $ptr
/* 49240*/    OPC_RecordChild2, // #2 = $incr
/* 49241*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->49297
/* 49244*/      OPC_Scope, 16, /*->49262*/ // 3 children in Scope
/* 49246*/        OPC_CheckPredicate, 33, // Predicate_atomic_load_umax_8
/* 49248*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49251*/        OPC_EmitMergeInputChains1_0,
/* 49252*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_UMAX_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_umax:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_umax_8>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_UMAX_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49262*/      /*Scope*/ 16, /*->49279*/
/* 49263*/        OPC_CheckPredicate, 34, // Predicate_atomic_load_umax_16
/* 49265*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49268*/        OPC_EmitMergeInputChains1_0,
/* 49269*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_UMAX_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_umax:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_umax_16>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_UMAX_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49279*/      /*Scope*/ 16, /*->49296*/
/* 49280*/        OPC_CheckPredicate, 35, // Predicate_atomic_load_umax_32
/* 49282*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49285*/        OPC_EmitMergeInputChains1_0,
/* 49286*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_UMAX_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_load_umax:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_umax_32>> - Complexity = 13
                  // Dst: (ATOMIC_LOAD_UMAX_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$incr)
/* 49296*/      0, /*End of Scope*/
/* 49297*/    /*SwitchType*/ 16, MVT::i64,// ->49315
/* 49299*/      OPC_CheckPredicate, 32, // Predicate_atomic_load_umax_64
/* 49301*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49304*/      OPC_EmitMergeInputChains1_0,
/* 49305*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_LOAD_UMAX_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_load_umax:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_umax_64>> - Complexity = 13
                // Dst: (ATOMIC_LOAD_UMAX_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$incr)
/* 49315*/    0, // EndSwitchType
/* 49316*/  /*SwitchOpcode*/ 84, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),// ->49403
/* 49319*/    OPC_RecordMemRef,
/* 49320*/    OPC_RecordNode, // #0 = 'atomic_cmp_swap' chained node
/* 49321*/    OPC_RecordChild1, // #1 = $ptr
/* 49322*/    OPC_RecordChild2, // #2 = $old
/* 49323*/    OPC_RecordChild3, // #3 = $new
/* 49324*/    OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->49383
/* 49327*/      OPC_Scope, 17, /*->49346*/ // 3 children in Scope
/* 49329*/        OPC_CheckPredicate, 33, // Predicate_atomic_cmp_swap_8
/* 49331*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 49334*/        OPC_EmitMergeInputChains1_0,
/* 49335*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_CMP_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 4, 5, 2, 3, 
                  // Src: (atomic_cmp_swap:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_8>> - Complexity = 13
                  // Dst: (ATOMIC_CMP_SWAP_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new)
/* 49346*/      /*Scope*/ 17, /*->49364*/
/* 49347*/        OPC_CheckPredicate, 34, // Predicate_atomic_cmp_swap_16
/* 49349*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 49352*/        OPC_EmitMergeInputChains1_0,
/* 49353*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_CMP_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 4, 5, 2, 3, 
                  // Src: (atomic_cmp_swap:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_16>> - Complexity = 13
                  // Dst: (ATOMIC_CMP_SWAP_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new)
/* 49364*/      /*Scope*/ 17, /*->49382*/
/* 49365*/        OPC_CheckPredicate, 35, // Predicate_atomic_cmp_swap_32
/* 49367*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 49370*/        OPC_EmitMergeInputChains1_0,
/* 49371*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_CMP_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 4, 5, 2, 3, 
                  // Src: (atomic_cmp_swap:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>> - Complexity = 13
                  // Dst: (ATOMIC_CMP_SWAP_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new)
/* 49382*/      0, /*End of Scope*/
/* 49383*/    /*SwitchType*/ 17, MVT::i64,// ->49402
/* 49385*/      OPC_CheckPredicate, 32, // Predicate_atomic_cmp_swap_64
/* 49387*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 49390*/      OPC_EmitMergeInputChains1_0,
/* 49391*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_CMP_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 4/*#Ops*/, 4, 5, 2, 3, 
                // Src: (atomic_cmp_swap:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$old, i64:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_64>> - Complexity = 13
                // Dst: (ATOMIC_CMP_SWAP_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$old, i64:{ *:[i64] }:$new)
/* 49402*/    0, // EndSwitchType
/* 49403*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_SWAP),// ->49485
/* 49406*/    OPC_RecordMemRef,
/* 49407*/    OPC_RecordNode, // #0 = 'atomic_swap' chained node
/* 49408*/    OPC_RecordChild1, // #1 = $ptr
/* 49409*/    OPC_RecordChild2, // #2 = $new
/* 49410*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->49466
/* 49413*/      OPC_Scope, 16, /*->49431*/ // 3 children in Scope
/* 49415*/        OPC_CheckPredicate, 33, // Predicate_atomic_swap_8
/* 49417*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49420*/        OPC_EmitMergeInputChains1_0,
/* 49421*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_swap:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$new)<<P:Predicate_atomic_swap_8>> - Complexity = 13
                  // Dst: (ATOMIC_SWAP_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$new)
/* 49431*/      /*Scope*/ 16, /*->49448*/
/* 49432*/        OPC_CheckPredicate, 34, // Predicate_atomic_swap_16
/* 49434*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49437*/        OPC_EmitMergeInputChains1_0,
/* 49438*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_swap:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$new)<<P:Predicate_atomic_swap_16>> - Complexity = 13
                  // Dst: (ATOMIC_SWAP_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$new)
/* 49448*/      /*Scope*/ 16, /*->49465*/
/* 49449*/        OPC_CheckPredicate, 35, // Predicate_atomic_swap_32
/* 49451*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49454*/        OPC_EmitMergeInputChains1_0,
/* 49455*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                  // Src: (atomic_swap:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$new)<<P:Predicate_atomic_swap_32>> - Complexity = 13
                  // Dst: (ATOMIC_SWAP_I32:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$new)
/* 49465*/      0, /*End of Scope*/
/* 49466*/    /*SwitchType*/ 16, MVT::i64,// ->49484
/* 49468*/      OPC_CheckPredicate, 32, // Predicate_atomic_swap_64
/* 49470*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 49473*/      OPC_EmitMergeInputChains1_0,
/* 49474*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, MVT::i32, 3/*#Ops*/, 3, 4, 2, 
                // Src: (atomic_swap:{ *:[i64] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$new)<<P:Predicate_atomic_swap_64>> - Complexity = 13
                // Dst: (ATOMIC_SWAP_I64:{ *:[i64] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$new)
/* 49484*/    0, // EndSwitchType
/* 49485*/  /*SwitchOpcode*/ 44, TARGET_VAL(PPCISD::DYNALLOC),// ->49532
/* 49488*/    OPC_RecordNode, // #0 = 'PPCdynalloc' chained node
/* 49489*/    OPC_RecordChild1, // #1 = $negsize
/* 49490*/    OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->49511
/* 49493*/      OPC_CheckChild1Type, MVT::i32,
/* 49495*/      OPC_RecordChild2, // #2 = $fpsi
/* 49496*/      OPC_CheckChild2Type, MVT::iPTR,
/* 49498*/      OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$fpsi #3 #4
/* 49501*/      OPC_EmitMergeInputChains1_0,
/* 49502*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DYNALLOC), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCdynalloc:{ *:[i32] } i32:{ *:[i32] }:$negsize, iaddr:{ *:[iPTR] }:$fpsi) - Complexity = 12
                // Dst: (DYNALLOC:{ *:[i32] } i32:{ *:[i32] }:$negsize, iaddr:{ *:[iPTR] }:$fpsi)
/* 49511*/    /*SwitchType*/ 18, MVT::i64,// ->49531
/* 49513*/      OPC_CheckChild1Type, MVT::i64,
/* 49515*/      OPC_RecordChild2, // #2 = $fpsi
/* 49516*/      OPC_CheckChild2Type, MVT::iPTR,
/* 49518*/      OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImm:$fpsi #3 #4
/* 49521*/      OPC_EmitMergeInputChains1_0,
/* 49522*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DYNALLOC8), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCdynalloc:{ *:[i64] } i64:{ *:[i64] }:$negsize, iaddr:{ *:[iPTR] }:$fpsi) - Complexity = 12
                // Dst: (DYNALLOC8:{ *:[i64] } i64:{ *:[i64] }:$negsize, iaddr:{ *:[iPTR] }:$fpsi)
/* 49531*/    0, // EndSwitchType
/* 49532*/  /*SwitchOpcode*/ 34, TARGET_VAL(PPCISD::DYNAREAOFFSET),// ->49569
/* 49535*/    OPC_RecordNode, // #0 = 'PPCdynareaoffset' chained node
/* 49536*/    OPC_RecordChild1, // #1 = $fpsi
/* 49537*/    OPC_CheckChild1Type, MVT::iPTR,
/* 49539*/    OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->49554
/* 49542*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$fpsi #2 #3
/* 49545*/      OPC_EmitMergeInputChains1_0,
/* 49546*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DYNAREAOFFSET), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (PPCdynareaoffset:{ *:[i32] } iaddr:{ *:[iPTR] }:$fpsi) - Complexity = 12
                // Dst: (DYNAREAOFFSET:{ *:[i32] } iaddr:{ *:[iPTR] }:$fpsi)
/* 49554*/    /*SwitchType*/ 12, MVT::i64,// ->49568
/* 49556*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImm:$fpsi #2 #3
/* 49559*/      OPC_EmitMergeInputChains1_0,
/* 49560*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DYNAREAOFFSET8), 0|OPFL_Chain,
                    MVT::i64, 2/*#Ops*/, 2, 3, 
                // Src: (PPCdynareaoffset:{ *:[i64] } iaddr:{ *:[iPTR] }:$fpsi) - Complexity = 12
                // Dst: (DYNAREAOFFSET8:{ *:[i64] } iaddr:{ *:[iPTR] }:$fpsi)
/* 49568*/    0, // EndSwitchType
/* 49569*/  /*SwitchOpcode*/ 60, TARGET_VAL(PPCISD::LBRX),// ->49632
/* 49572*/    OPC_RecordMemRef,
/* 49573*/    OPC_RecordNode, // #0 = 'PPClbrx' chained node
/* 49574*/    OPC_RecordChild1, // #1 = $src
/* 49575*/    OPC_MoveChild2,
/* 49576*/    OPC_Scope, 17, /*->49595*/ // 3 children in Scope
/* 49578*/      OPC_CheckValueType, MVT::i16,
/* 49580*/      OPC_MoveParent,
/* 49581*/      OPC_CheckType, MVT::i32,
/* 49583*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 49586*/      OPC_EmitMergeInputChains1_0,
/* 49587*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LHBRX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (PPClbrx:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src, i16:{ *:[Other] }) - Complexity = 12
                // Dst: (LHBRX:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)
/* 49595*/    /*Scope*/ 17, /*->49613*/
/* 49596*/      OPC_CheckValueType, MVT::i32,
/* 49598*/      OPC_MoveParent,
/* 49599*/      OPC_CheckType, MVT::i32,
/* 49601*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 49604*/      OPC_EmitMergeInputChains1_0,
/* 49605*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LWBRX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 2, 3, 
                // Src: (PPClbrx:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src, i32:{ *:[Other] }) - Complexity = 12
                // Dst: (LWBRX:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)
/* 49613*/    /*Scope*/ 17, /*->49631*/
/* 49614*/      OPC_CheckValueType, MVT::i64,
/* 49616*/      OPC_MoveParent,
/* 49617*/      OPC_CheckType, MVT::i64,
/* 49619*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 49622*/      OPC_EmitMergeInputChains1_0,
/* 49623*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LDBRX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 2/*#Ops*/, 2, 3, 
                // Src: (PPClbrx:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src, i64:{ *:[Other] }) - Complexity = 12
                // Dst: (LDBRX:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)
/* 49631*/    0, /*End of Scope*/
/* 49632*/  /*SwitchOpcode*/ 63, TARGET_VAL(PPCISD::STBRX),// ->49698
/* 49635*/    OPC_RecordNode, // #0 = 'PPCstbrx' chained node
/* 49636*/    OPC_RecordChild1, // #1 = $rS
/* 49637*/    OPC_Scope, 38, /*->49677*/ // 2 children in Scope
/* 49639*/      OPC_CheckChild1Type, MVT::i32,
/* 49641*/      OPC_RecordChild2, // #2 = $dst
/* 49642*/      OPC_MoveChild3,
/* 49643*/      OPC_Scope, 15, /*->49660*/ // 2 children in Scope
/* 49645*/        OPC_CheckValueType, MVT::i16,
/* 49647*/        OPC_MoveParent,
/* 49648*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/* 49651*/        OPC_EmitMergeInputChains1_0,
/* 49652*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STHBRX), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (PPCstbrx i32:{ *:[i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst, i16:{ *:[Other] }) - Complexity = 12
                  // Dst: (STHBRX i32:{ *:[i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/* 49660*/      /*Scope*/ 15, /*->49676*/
/* 49661*/        OPC_CheckValueType, MVT::i32,
/* 49663*/        OPC_MoveParent,
/* 49664*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/* 49667*/        OPC_EmitMergeInputChains1_0,
/* 49668*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STWBRX), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (PPCstbrx i32:{ *:[i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst, i32:{ *:[Other] }) - Complexity = 12
                  // Dst: (STWBRX i32:{ *:[i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/* 49676*/      0, /*End of Scope*/
/* 49677*/    /*Scope*/ 19, /*->49697*/
/* 49678*/      OPC_CheckChild1Type, MVT::i64,
/* 49680*/      OPC_RecordChild2, // #2 = $dst
/* 49681*/      OPC_MoveChild3,
/* 49682*/      OPC_CheckValueType, MVT::i64,
/* 49684*/      OPC_MoveParent,
/* 49685*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/* 49688*/      OPC_EmitMergeInputChains1_0,
/* 49689*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STDBRX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCstbrx i64:{ *:[i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst, i64:{ *:[Other] }) - Complexity = 12
                // Dst: (STDBRX i64:{ *:[i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/* 49697*/    0, /*End of Scope*/
/* 49698*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::BCTRL_LOAD_TOC),// ->49719
/* 49701*/    OPC_RecordNode, // #0 = 'PPCbctrl_load_toc' chained node
/* 49702*/    OPC_CaptureGlueInput,
/* 49703*/    OPC_RecordChild1, // #1 = $src
/* 49704*/    OPC_CheckChild1Type, MVT::iPTR,
/* 49706*/    OPC_CheckPatternPredicate, 33, // (PPCSubTarget->isPPC64())
/* 49708*/    OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 49711*/    OPC_EmitMergeInputChains1_0,
/* 49712*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::BCTRL8_LDinto_toc), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                  2/*#Ops*/, 2, 3, 
              // Src: (PPCbctrl_load_toc ixaddr:{ *:[iPTR] }:$src) - Complexity = 12
              // Dst: (BCTRL8_LDinto_toc ixaddr:{ *:[iPTR] }:$src)
/* 49719*/  /*SwitchOpcode*/ 22, TARGET_VAL(PPCISD::ATOMIC_CMP_SWAP_8),// ->49744
/* 49722*/    OPC_RecordMemRef,
/* 49723*/    OPC_RecordNode, // #0 = 'PPCatomicCmpSwap_8' chained node
/* 49724*/    OPC_RecordChild1, // #1 = $ptr
/* 49725*/    OPC_RecordChild2, // #2 = $old
/* 49726*/    OPC_RecordChild3, // #3 = $new
/* 49727*/    OPC_CheckType, MVT::i32,
/* 49729*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 49732*/    OPC_EmitMergeInputChains1_0,
/* 49733*/    OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_CMP_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
                  MVT::i32, MVT::i32, 4/*#Ops*/, 4, 5, 2, 3, 
              // Src: (PPCatomicCmpSwap_8:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new) - Complexity = 12
              // Dst: (ATOMIC_CMP_SWAP_I8:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new)
/* 49744*/  /*SwitchOpcode*/ 22, TARGET_VAL(PPCISD::ATOMIC_CMP_SWAP_16),// ->49769
/* 49747*/    OPC_RecordMemRef,
/* 49748*/    OPC_RecordNode, // #0 = 'PPCatomicCmpSwap_16' chained node
/* 49749*/    OPC_RecordChild1, // #1 = $ptr
/* 49750*/    OPC_RecordChild2, // #2 = $old
/* 49751*/    OPC_RecordChild3, // #3 = $new
/* 49752*/    OPC_CheckType, MVT::i32,
/* 49754*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 49757*/    OPC_EmitMergeInputChains1_0,
/* 49758*/    OPC_MorphNodeTo2, TARGET_VAL(PPC::ATOMIC_CMP_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
                  MVT::i32, MVT::i32, 4/*#Ops*/, 4, 5, 2, 3, 
              // Src: (PPCatomicCmpSwap_16:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new) - Complexity = 12
              // Dst: (ATOMIC_CMP_SWAP_I16:{ *:[i32] }:{ *:[i32] } xoaddr:{ *:[iPTR] }:$ptr, i32:{ *:[i32] }:$old, i32:{ *:[i32] }:$new)
/* 49769*/  /*SwitchOpcode*/ 55, TARGET_VAL(ISD::BRCOND),// ->49827
/* 49772*/    OPC_RecordNode, // #0 = 'brcond' chained node
/* 49773*/    OPC_Scope, 33, /*->49808*/ // 2 children in Scope
/* 49775*/      OPC_MoveChild1,
/* 49776*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 49779*/      OPC_RecordChild0, // #1 = $bi
/* 49780*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49791*/      OPC_CheckType, MVT::i1,
/* 49793*/      OPC_MoveParent,
/* 49794*/      OPC_RecordChild2, // #2 = $dst
/* 49795*/      OPC_MoveChild2,
/* 49796*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 49799*/      OPC_MoveParent,
/* 49800*/      OPC_EmitMergeInputChains1_0,
/* 49801*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BCn), 0|OPFL_Chain,
                    2/*#Ops*/, 1, 2, 
                // Src: (brcond (xor:{ *:[i1] } i1:{ *:[i1] }:$bi, -1:{ *:[i1] }), (bb:{ *:[Other] }):$dst) - Complexity = 11
                // Dst: (BCn i1:{ *:[i1] }:$bi, (bb:{ *:[Other] }):$dst)
/* 49808*/    /*Scope*/ 17, /*->49826*/
/* 49809*/      OPC_RecordChild1, // #1 = $bi
/* 49810*/      OPC_CheckChild1Type, MVT::i1,
/* 49812*/      OPC_RecordChild2, // #2 = $dst
/* 49813*/      OPC_MoveChild2,
/* 49814*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 49817*/      OPC_MoveParent,
/* 49818*/      OPC_EmitMergeInputChains1_0,
/* 49819*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BC), 0|OPFL_Chain,
                    2/*#Ops*/, 1, 2, 
                // Src: (brcond i1:{ *:[i1] }:$bi, (bb:{ *:[Other] }):$dst) - Complexity = 3
                // Dst: (BC i1:{ *:[i1] }:$bi, (bb:{ *:[Other] }):$dst)
/* 49826*/    0, /*End of Scope*/
/* 49827*/  /*SwitchOpcode*/ 18|128,5/*658*/, TARGET_VAL(ISD::AND),// ->50489
/* 49831*/    OPC_Scope, 50, /*->49883*/ // 9 children in Scope
/* 49833*/      OPC_RecordChild0, // #0 = $rS
/* 49834*/      OPC_MoveChild1,
/* 49835*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 49838*/      OPC_RecordChild0, // #1 = $rB
/* 49839*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49850*/      OPC_MoveParent,
/* 49851*/      OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->49862
/* 49854*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDC), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[i32] } i32:{ *:[i32] }:$rS, (xor:{ *:[i32] } i32:{ *:[i32] }:$rB, -1:{ *:[i32] })) - Complexity = 11
                  // Dst: (ANDC:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 49862*/      /*SwitchType*/ 8, MVT::i1,// ->49872
/* 49864*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRANDC), 0,
                      MVT::i1, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[i1] } i1:{ *:[i1] }:$CRA, (xor:{ *:[i1] } i1:{ *:[i1] }:$CRB, -1:{ *:[i1] })) - Complexity = 11
                  // Dst: (CRANDC:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 49872*/      /*SwitchType*/ 8, MVT::i64,// ->49882
/* 49874*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[i64] } i64:{ *:[i64] }:$rS, (xor:{ *:[i64] } i64:{ *:[i64] }:$rB, -1:{ *:[i64] })) - Complexity = 11
                  // Dst: (ANDC8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 49882*/      0, // EndSwitchType
/* 49883*/    /*Scope*/ 90, /*->49974*/
/* 49884*/      OPC_MoveChild0,
/* 49885*/      OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::XOR),// ->49935
/* 49889*/        OPC_RecordChild0, // #0 = $rB
/* 49890*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49901*/        OPC_MoveParent,
/* 49902*/        OPC_RecordChild1, // #1 = $rS
/* 49903*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->49914
/* 49906*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDC), 0,
                        MVT::i32, 2/*#Ops*/, 1, 0, 
                    // Src: (and:{ *:[i32] } (xor:{ *:[i32] } i32:{ *:[i32] }:$rB, -1:{ *:[i32] }), i32:{ *:[i32] }:$rS) - Complexity = 11
                    // Dst: (ANDC:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 49914*/        /*SwitchType*/ 8, MVT::i1,// ->49924
/* 49916*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRANDC), 0,
                        MVT::i1, 2/*#Ops*/, 1, 0, 
                    // Src: (and:{ *:[i1] } (xor:{ *:[i1] } i1:{ *:[i1] }:$CRB, -1:{ *:[i1] }), i1:{ *:[i1] }:$CRA) - Complexity = 11
                    // Dst: (CRANDC:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 49924*/        /*SwitchType*/ 8, MVT::i64,// ->49934
/* 49926*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDC8), 0,
                        MVT::i64, 2/*#Ops*/, 1, 0, 
                    // Src: (and:{ *:[i64] } (xor:{ *:[i64] } i64:{ *:[i64] }:$rB, -1:{ *:[i64] }), i64:{ *:[i64] }:$rS) - Complexity = 11
                    // Dst: (ANDC8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 49934*/        0, // EndSwitchType
/* 49935*/      /*SwitchOpcode*/ 35, TARGET_VAL(ISD::ROTL),// ->49973
/* 49938*/        OPC_RecordChild0, // #0 = $in
/* 49939*/        OPC_RecordChild1, // #1 = $sh
/* 49940*/        OPC_CheckChild1Type, MVT::i32,
/* 49942*/        OPC_MoveParent,
/* 49943*/        OPC_RecordChild1, // #2 = $imm
/* 49944*/        OPC_MoveChild1,
/* 49945*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49948*/        OPC_CheckPredicate, 36, // Predicate_maskimm32
/* 49950*/        OPC_MoveParent,
/* 49951*/        OPC_CheckType, MVT::i32,
/* 49953*/        OPC_EmitConvertToTarget, 2,
/* 49955*/        OPC_EmitNodeXForm, 3, 3, // MB
/* 49958*/        OPC_EmitConvertToTarget, 2,
/* 49960*/        OPC_EmitNodeXForm, 4, 5, // ME
/* 49963*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 4, 6, 
                  // Src: (and:{ *:[i32] } (rotl:{ *:[i32] } i32:{ *:[i32] }:$in, i32:{ *:[i32] }:$sh), (imm:{ *:[i32] })<<P:Predicate_maskimm32>>:$imm) - Complexity = 10
                  // Dst: (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$in, ?:{ *:[i32] }:$sh, (MB:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_maskimm32>>:$imm), (ME:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_maskimm32>>:$imm))
/* 49973*/      0, // EndSwitchOpcode
/* 49974*/    /*Scope*/ 64|128,1/*192*/, /*->50168*/
/* 49976*/      OPC_RecordChild0, // #0 = $src1
/* 49977*/      OPC_Scope, 123, /*->50102*/ // 2 children in Scope
/* 49979*/        OPC_RecordChild1, // #1 = $src2
/* 49980*/        OPC_Scope, 86, /*->50068*/ // 4 children in Scope
/* 49982*/          OPC_MoveChild1,
/* 49983*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49986*/          OPC_Scope, 19, /*->50007*/ // 4 children in Scope
/* 49988*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 49990*/            OPC_MoveParent,
/* 49991*/            OPC_CheckType, MVT::i32,
/* 49993*/            OPC_EmitConvertToTarget, 1,
/* 49995*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 49998*/            OPC_MorphNodeTo2, TARGET_VAL(PPC::ANDIo), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (and:{ *:[i32] } i32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$src2) - Complexity = 7
                      // Dst: (ANDIo:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$src1, (LO16:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 50007*/          /*Scope*/ 19, /*->50027*/
/* 50008*/            OPC_CheckPredicate, 16, // Predicate_imm16ShiftedZExt
/* 50010*/            OPC_MoveParent,
/* 50011*/            OPC_CheckType, MVT::i32,
/* 50013*/            OPC_EmitConvertToTarget, 1,
/* 50015*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 50018*/            OPC_MorphNodeTo2, TARGET_VAL(PPC::ANDISo), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (and:{ *:[i32] } i32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_imm16ShiftedZExt>><<X:HI16>>:$src2) - Complexity = 7
                      // Dst: (ANDISo:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$src1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 50027*/          /*Scope*/ 19, /*->50047*/
/* 50028*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 50030*/            OPC_MoveParent,
/* 50031*/            OPC_CheckType, MVT::i64,
/* 50033*/            OPC_EmitConvertToTarget, 1,
/* 50035*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 50038*/            OPC_MorphNodeTo2, TARGET_VAL(PPC::ANDIo8), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (and:{ *:[i64] } i64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$src2) - Complexity = 7
                      // Dst: (ANDIo8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$src1, (LO16:{ *:[i64] } (imm:{ *:[i64] }):$src2))
/* 50047*/          /*Scope*/ 19, /*->50067*/
/* 50048*/            OPC_CheckPredicate, 16, // Predicate_imm16ShiftedZExt
/* 50050*/            OPC_MoveParent,
/* 50051*/            OPC_CheckType, MVT::i64,
/* 50053*/            OPC_EmitConvertToTarget, 1,
/* 50055*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 50058*/            OPC_MorphNodeTo2, TARGET_VAL(PPC::ANDISo8), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (and:{ *:[i64] } i64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_imm16ShiftedZExt>><<X:HI16>>:$src2) - Complexity = 7
                      // Dst: (ANDISo8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$src1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$src2))
/* 50067*/          0, /*End of Scope*/
/* 50068*/        /*Scope*/ 10, /*->50079*/
/* 50069*/          OPC_CheckType, MVT::i32,
/* 50071*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::AND), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                    // Dst: (AND:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 50079*/        /*Scope*/ 10, /*->50090*/
/* 50080*/          OPC_CheckType, MVT::i1,
/* 50082*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRAND), 0,
                        MVT::i1, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB) - Complexity = 3
                    // Dst: (CRAND:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 50090*/        /*Scope*/ 10, /*->50101*/
/* 50091*/          OPC_CheckType, MVT::i64,
/* 50093*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::AND8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB) - Complexity = 3
                    // Dst: (AND8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 50101*/        0, /*End of Scope*/
/* 50102*/      /*Scope*/ 64, /*->50167*/
/* 50103*/        OPC_MoveChild1,
/* 50104*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50107*/        OPC_Scope, 28, /*->50137*/ // 2 children in Scope
/* 50109*/          OPC_RecordChild0, // #1 = $XB
/* 50110*/          OPC_MoveChild1,
/* 50111*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50114*/          OPC_MoveChild0,
/* 50115*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50118*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50120*/          OPC_CheckType, MVT::v16i8,
/* 50122*/          OPC_MoveParent,
/* 50123*/          OPC_MoveParent,
/* 50124*/          OPC_MoveParent,
/* 50125*/          OPC_CheckType, MVT::v4i32,
/* 50127*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 50129*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLANDC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 413
                    // Dst: (XXLANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50137*/        /*Scope*/ 28, /*->50166*/
/* 50138*/          OPC_MoveChild0,
/* 50139*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50142*/          OPC_MoveChild0,
/* 50143*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50146*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50148*/          OPC_CheckType, MVT::v16i8,
/* 50150*/          OPC_MoveParent,
/* 50151*/          OPC_MoveParent,
/* 50152*/          OPC_RecordChild1, // #1 = $XB
/* 50153*/          OPC_MoveParent,
/* 50154*/          OPC_CheckType, MVT::v4i32,
/* 50156*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 50158*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLANDC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                    // Dst: (XXLANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50166*/        0, /*End of Scope*/
/* 50167*/      0, /*End of Scope*/
/* 50168*/    /*Scope*/ 66, /*->50235*/
/* 50169*/      OPC_MoveChild0,
/* 50170*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50173*/      OPC_Scope, 29, /*->50204*/ // 2 children in Scope
/* 50175*/        OPC_RecordChild0, // #0 = $XB
/* 50176*/        OPC_MoveChild1,
/* 50177*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50180*/        OPC_MoveChild0,
/* 50181*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50184*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50186*/        OPC_CheckType, MVT::v16i8,
/* 50188*/        OPC_MoveParent,
/* 50189*/        OPC_MoveParent,
/* 50190*/        OPC_MoveParent,
/* 50191*/        OPC_RecordChild1, // #1 = $XA
/* 50192*/        OPC_CheckType, MVT::v4i32,
/* 50194*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 50196*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLANDC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)), v4i32:{ *:[v4i32] }:$XA) - Complexity = 413
                  // Dst: (XXLANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50204*/      /*Scope*/ 29, /*->50234*/
/* 50205*/        OPC_MoveChild0,
/* 50206*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50209*/        OPC_MoveChild0,
/* 50210*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50213*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50215*/        OPC_CheckType, MVT::v16i8,
/* 50217*/        OPC_MoveParent,
/* 50218*/        OPC_MoveParent,
/* 50219*/        OPC_RecordChild1, // #0 = $XB
/* 50220*/        OPC_MoveParent,
/* 50221*/        OPC_RecordChild1, // #1 = $XA
/* 50222*/        OPC_CheckType, MVT::v4i32,
/* 50224*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 50226*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLANDC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$XB), v4i32:{ *:[v4i32] }:$XA) - Complexity = 413
                  // Dst: (XXLANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50234*/      0, /*End of Scope*/
/* 50235*/    /*Scope*/ 82, /*->50318*/
/* 50236*/      OPC_RecordChild0, // #0 = $XA
/* 50237*/      OPC_Scope, 13, /*->50252*/ // 2 children in Scope
/* 50239*/        OPC_RecordChild1, // #1 = $XB
/* 50240*/        OPC_CheckType, MVT::v4i32,
/* 50242*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 50244*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLAND), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB) - Complexity = 403
                  // Dst: (XXLAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50252*/      /*Scope*/ 64, /*->50317*/
/* 50253*/        OPC_MoveChild1,
/* 50254*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50257*/        OPC_Scope, 28, /*->50287*/ // 2 children in Scope
/* 50259*/          OPC_RecordChild0, // #1 = $vB
/* 50260*/          OPC_MoveChild1,
/* 50261*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50264*/          OPC_MoveChild0,
/* 50265*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50268*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50270*/          OPC_CheckType, MVT::v16i8,
/* 50272*/          OPC_MoveParent,
/* 50273*/          OPC_MoveParent,
/* 50274*/          OPC_MoveParent,
/* 50275*/          OPC_CheckType, MVT::v4i32,
/* 50277*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 50279*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VANDC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 13
                    // Dst: (VANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 50287*/        /*Scope*/ 28, /*->50316*/
/* 50288*/          OPC_MoveChild0,
/* 50289*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50292*/          OPC_MoveChild0,
/* 50293*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50296*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50298*/          OPC_CheckType, MVT::v16i8,
/* 50300*/          OPC_MoveParent,
/* 50301*/          OPC_MoveParent,
/* 50302*/          OPC_RecordChild1, // #1 = $vB
/* 50303*/          OPC_MoveParent,
/* 50304*/          OPC_CheckType, MVT::v4i32,
/* 50306*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 50308*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VANDC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                    // Dst: (VANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 50316*/        0, /*End of Scope*/
/* 50317*/      0, /*End of Scope*/
/* 50318*/    /*Scope*/ 66, /*->50385*/
/* 50319*/      OPC_MoveChild0,
/* 50320*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50323*/      OPC_Scope, 29, /*->50354*/ // 2 children in Scope
/* 50325*/        OPC_RecordChild0, // #0 = $vB
/* 50326*/        OPC_MoveChild1,
/* 50327*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50330*/        OPC_MoveChild0,
/* 50331*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50334*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50336*/        OPC_CheckType, MVT::v16i8,
/* 50338*/        OPC_MoveParent,
/* 50339*/        OPC_MoveParent,
/* 50340*/        OPC_MoveParent,
/* 50341*/        OPC_RecordChild1, // #1 = $vA
/* 50342*/        OPC_CheckType, MVT::v4i32,
/* 50344*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 50346*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VANDC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)), v4i32:{ *:[v4i32] }:$vA) - Complexity = 13
                  // Dst: (VANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 50354*/      /*Scope*/ 29, /*->50384*/
/* 50355*/        OPC_MoveChild0,
/* 50356*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50359*/        OPC_MoveChild0,
/* 50360*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50363*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50365*/        OPC_CheckType, MVT::v16i8,
/* 50367*/        OPC_MoveParent,
/* 50368*/        OPC_MoveParent,
/* 50369*/        OPC_RecordChild1, // #0 = $vB
/* 50370*/        OPC_MoveParent,
/* 50371*/        OPC_RecordChild1, // #1 = $vA
/* 50372*/        OPC_CheckType, MVT::v4i32,
/* 50374*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 50376*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VANDC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$vB), v4i32:{ *:[v4i32] }:$vA) - Complexity = 13
                  // Dst: (VANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 50384*/      0, /*End of Scope*/
/* 50385*/    /*Scope*/ 34, /*->50420*/
/* 50386*/      OPC_RecordChild0, // #0 = $FRA
/* 50387*/      OPC_MoveChild1,
/* 50388*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50391*/      OPC_RecordChild0, // #1 = $FRB
/* 50392*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50403*/      OPC_MoveParent,
/* 50404*/      OPC_CheckType, MVT::v4i1,
/* 50406*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 50408*/      OPC_EmitInteger, MVT::i32, 4, 
/* 50411*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                    MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (and:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRB, -1:{ *:[v4i1] })) - Complexity = 11
                // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 4:{ *:[i32] })
/* 50420*/    /*Scope*/ 34, /*->50455*/
/* 50421*/      OPC_MoveChild0,
/* 50422*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50425*/      OPC_RecordChild0, // #0 = $FRB
/* 50426*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50437*/      OPC_MoveParent,
/* 50438*/      OPC_RecordChild1, // #1 = $FRA
/* 50439*/      OPC_CheckType, MVT::v4i1,
/* 50441*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 50443*/      OPC_EmitInteger, MVT::i32, 4, 
/* 50446*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                    MVT::v4i1, 3/*#Ops*/, 1, 0, 2, 
                // Src: (and:{ *:[v4i1] } (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRB, -1:{ *:[v4i1] }), v4i1:{ *:[v4i1] }:$FRA) - Complexity = 11
                // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 4:{ *:[i32] })
/* 50455*/    /*Scope*/ 32, /*->50488*/
/* 50456*/      OPC_RecordChild0, // #0 = $vA
/* 50457*/      OPC_RecordChild1, // #1 = $vB
/* 50458*/      OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->50471
/* 50461*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 50463*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VAND), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                  // Dst: (VAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 50471*/      /*SwitchType*/ 14, MVT::v4i1,// ->50487
/* 50473*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 50475*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50478*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (and:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 1:{ *:[i32] })
/* 50487*/      0, // EndSwitchType
/* 50488*/    0, /*End of Scope*/
/* 50489*/  /*SwitchOpcode*/ 5|128,5/*645*/, TARGET_VAL(ISD::OR),// ->51138
/* 50493*/    OPC_Scope, 50, /*->50545*/ // 9 children in Scope
/* 50495*/      OPC_RecordChild0, // #0 = $rS
/* 50496*/      OPC_MoveChild1,
/* 50497*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50500*/      OPC_RecordChild0, // #1 = $rB
/* 50501*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50512*/      OPC_MoveParent,
/* 50513*/      OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->50524
/* 50516*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ORC), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[i32] } i32:{ *:[i32] }:$rS, (xor:{ *:[i32] } i32:{ *:[i32] }:$rB, -1:{ *:[i32] })) - Complexity = 11
                  // Dst: (ORC:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 50524*/      /*SwitchType*/ 8, MVT::i1,// ->50534
/* 50526*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRORC), 0,
                      MVT::i1, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[i1] } i1:{ *:[i1] }:$CRA, (xor:{ *:[i1] } i1:{ *:[i1] }:$CRB, -1:{ *:[i1] })) - Complexity = 11
                  // Dst: (CRORC:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 50534*/      /*SwitchType*/ 8, MVT::i64,// ->50544
/* 50536*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ORC8), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[i64] } i64:{ *:[i64] }:$rS, (xor:{ *:[i64] } i64:{ *:[i64] }:$rB, -1:{ *:[i64] })) - Complexity = 11
                  // Dst: (ORC8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 50544*/      0, // EndSwitchType
/* 50545*/    /*Scope*/ 50, /*->50596*/
/* 50546*/      OPC_MoveChild0,
/* 50547*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50550*/      OPC_RecordChild0, // #0 = $rB
/* 50551*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50562*/      OPC_MoveParent,
/* 50563*/      OPC_RecordChild1, // #1 = $rS
/* 50564*/      OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->50575
/* 50567*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ORC), 0,
                      MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[i32] } (xor:{ *:[i32] } i32:{ *:[i32] }:$rB, -1:{ *:[i32] }), i32:{ *:[i32] }:$rS) - Complexity = 11
                  // Dst: (ORC:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 50575*/      /*SwitchType*/ 8, MVT::i1,// ->50585
/* 50577*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRORC), 0,
                      MVT::i1, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[i1] } (xor:{ *:[i1] } i1:{ *:[i1] }:$CRB, -1:{ *:[i1] }), i1:{ *:[i1] }:$CRA) - Complexity = 11
                  // Dst: (CRORC:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 50585*/      /*SwitchType*/ 8, MVT::i64,// ->50595
/* 50587*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ORC8), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[i64] } (xor:{ *:[i64] } i64:{ *:[i64] }:$rB, -1:{ *:[i64] }), i64:{ *:[i64] }:$rS) - Complexity = 11
                  // Dst: (ORC8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 50595*/      0, // EndSwitchType
/* 50596*/    /*Scope*/ 91|128,1/*219*/, /*->50817*/
/* 50598*/      OPC_RecordChild0, // #0 = $src1
/* 50599*/      OPC_Scope, 21|128,1/*149*/, /*->50751*/ // 2 children in Scope
/* 50602*/        OPC_RecordChild1, // #1 = $src2
/* 50603*/        OPC_Scope, 112, /*->50717*/ // 4 children in Scope
/* 50605*/          OPC_MoveChild1,
/* 50606*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50609*/          OPC_Scope, 18, /*->50629*/ // 5 children in Scope
/* 50611*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 50613*/            OPC_MoveParent,
/* 50614*/            OPC_CheckType, MVT::i32,
/* 50616*/            OPC_EmitConvertToTarget, 1,
/* 50618*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 50621*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ORI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (or:{ *:[i32] } i32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$src2) - Complexity = 7
                      // Dst: (ORI:{ *:[i32] } i32:{ *:[i32] }:$src1, (LO16:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 50629*/          /*Scope*/ 18, /*->50648*/
/* 50630*/            OPC_CheckPredicate, 16, // Predicate_imm16ShiftedZExt
/* 50632*/            OPC_MoveParent,
/* 50633*/            OPC_CheckType, MVT::i32,
/* 50635*/            OPC_EmitConvertToTarget, 1,
/* 50637*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 50640*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3, 
                      // Src: (or:{ *:[i32] } i32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_imm16ShiftedZExt>><<X:HI16>>:$src2) - Complexity = 7
                      // Dst: (ORIS:{ *:[i32] } i32:{ *:[i32] }:$src1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 50648*/          /*Scope*/ 18, /*->50667*/
/* 50649*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 50651*/            OPC_MoveParent,
/* 50652*/            OPC_CheckType, MVT::i64,
/* 50654*/            OPC_EmitConvertToTarget, 1,
/* 50656*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 50659*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ORI8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (or:{ *:[i64] } i64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$src2) - Complexity = 7
                      // Dst: (ORI8:{ *:[i64] } i64:{ *:[i64] }:$src1, (LO16:{ *:[i64] } (imm:{ *:[i64] }):$src2))
/* 50667*/          /*Scope*/ 18, /*->50686*/
/* 50668*/            OPC_CheckPredicate, 16, // Predicate_imm16ShiftedZExt
/* 50670*/            OPC_MoveParent,
/* 50671*/            OPC_CheckType, MVT::i64,
/* 50673*/            OPC_EmitConvertToTarget, 1,
/* 50675*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 50678*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ORIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3, 
                      // Src: (or:{ *:[i64] } i64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_imm16ShiftedZExt>><<X:HI16>>:$src2) - Complexity = 7
                      // Dst: (ORIS8:{ *:[i64] } i64:{ *:[i64] }:$src1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$src2))
/* 50686*/          /*Scope*/ 29, /*->50716*/
/* 50687*/            OPC_MoveParent,
/* 50688*/            OPC_CheckType, MVT::i32,
/* 50690*/            OPC_EmitConvertToTarget, 1,
/* 50692*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 50695*/            OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 50703*/            OPC_EmitConvertToTarget, 1,
/* 50705*/            OPC_EmitNodeXForm, 0, 5, // HI16
/* 50708*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::ORIS), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6, 
                      // Src: (or:{ *:[i32] } i32:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                      // Dst: (ORIS:{ *:[i32] } (ORI:{ *:[i32] } ?:{ *:[i32] }:$in, (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 50716*/          0, /*End of Scope*/
/* 50717*/        /*Scope*/ 10, /*->50728*/
/* 50718*/          OPC_CheckType, MVT::i32,
/* 50720*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::OR), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                    // Dst: (OR:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 50728*/        /*Scope*/ 10, /*->50739*/
/* 50729*/          OPC_CheckType, MVT::i1,
/* 50731*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                        MVT::i1, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB) - Complexity = 3
                    // Dst: (CROR:{ *:[i1] } i1:{ *:[i1] }:$CRA, i1:{ *:[i1] }:$CRB)
/* 50739*/        /*Scope*/ 10, /*->50750*/
/* 50740*/          OPC_CheckType, MVT::i64,
/* 50742*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::OR8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB) - Complexity = 3
                    // Dst: (OR8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 50750*/        0, /*End of Scope*/
/* 50751*/      /*Scope*/ 64, /*->50816*/
/* 50752*/        OPC_MoveChild1,
/* 50753*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50756*/        OPC_Scope, 28, /*->50786*/ // 2 children in Scope
/* 50758*/          OPC_RecordChild0, // #1 = $XB
/* 50759*/          OPC_MoveChild1,
/* 50760*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50763*/          OPC_MoveChild0,
/* 50764*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50767*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50769*/          OPC_CheckType, MVT::v16i8,
/* 50771*/          OPC_MoveParent,
/* 50772*/          OPC_MoveParent,
/* 50773*/          OPC_MoveParent,
/* 50774*/          OPC_CheckType, MVT::v4i32,
/* 50776*/          OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 50778*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLORC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 413
                    // Dst: (XXLORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50786*/        /*Scope*/ 28, /*->50815*/
/* 50787*/          OPC_MoveChild0,
/* 50788*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50791*/          OPC_MoveChild0,
/* 50792*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50795*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50797*/          OPC_CheckType, MVT::v16i8,
/* 50799*/          OPC_MoveParent,
/* 50800*/          OPC_MoveParent,
/* 50801*/          OPC_RecordChild1, // #1 = $XB
/* 50802*/          OPC_MoveParent,
/* 50803*/          OPC_CheckType, MVT::v4i32,
/* 50805*/          OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 50807*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLORC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                    // Dst: (XXLORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50815*/        0, /*End of Scope*/
/* 50816*/      0, /*End of Scope*/
/* 50817*/    /*Scope*/ 66, /*->50884*/
/* 50818*/      OPC_MoveChild0,
/* 50819*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50822*/      OPC_Scope, 29, /*->50853*/ // 2 children in Scope
/* 50824*/        OPC_RecordChild0, // #0 = $XB
/* 50825*/        OPC_MoveChild1,
/* 50826*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50829*/        OPC_MoveChild0,
/* 50830*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50833*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50835*/        OPC_CheckType, MVT::v16i8,
/* 50837*/        OPC_MoveParent,
/* 50838*/        OPC_MoveParent,
/* 50839*/        OPC_MoveParent,
/* 50840*/        OPC_RecordChild1, // #1 = $XA
/* 50841*/        OPC_CheckType, MVT::v4i32,
/* 50843*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 50845*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)), v4i32:{ *:[v4i32] }:$XA) - Complexity = 413
                  // Dst: (XXLORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50853*/      /*Scope*/ 29, /*->50883*/
/* 50854*/        OPC_MoveChild0,
/* 50855*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50858*/        OPC_MoveChild0,
/* 50859*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50862*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50864*/        OPC_CheckType, MVT::v16i8,
/* 50866*/        OPC_MoveParent,
/* 50867*/        OPC_MoveParent,
/* 50868*/        OPC_RecordChild1, // #0 = $XB
/* 50869*/        OPC_MoveParent,
/* 50870*/        OPC_RecordChild1, // #1 = $XA
/* 50871*/        OPC_CheckType, MVT::v4i32,
/* 50873*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 50875*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$XB), v4i32:{ *:[v4i32] }:$XA) - Complexity = 413
                  // Dst: (XXLORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50883*/      0, /*End of Scope*/
/* 50884*/    /*Scope*/ 82, /*->50967*/
/* 50885*/      OPC_RecordChild0, // #0 = $XA
/* 50886*/      OPC_Scope, 13, /*->50901*/ // 2 children in Scope
/* 50888*/        OPC_RecordChild1, // #1 = $XB
/* 50889*/        OPC_CheckType, MVT::v4i32,
/* 50891*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 50893*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLOR), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB) - Complexity = 403
                  // Dst: (XXLOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 50901*/      /*Scope*/ 64, /*->50966*/
/* 50902*/        OPC_MoveChild1,
/* 50903*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50906*/        OPC_Scope, 28, /*->50936*/ // 2 children in Scope
/* 50908*/          OPC_RecordChild0, // #1 = $vB
/* 50909*/          OPC_MoveChild1,
/* 50910*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50913*/          OPC_MoveChild0,
/* 50914*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50917*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50919*/          OPC_CheckType, MVT::v16i8,
/* 50921*/          OPC_MoveParent,
/* 50922*/          OPC_MoveParent,
/* 50923*/          OPC_MoveParent,
/* 50924*/          OPC_CheckType, MVT::v4i32,
/* 50926*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 50928*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VORC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>))) - Complexity = 13
                    // Dst: (VORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 50936*/        /*Scope*/ 28, /*->50965*/
/* 50937*/          OPC_MoveChild0,
/* 50938*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50941*/          OPC_MoveChild0,
/* 50942*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50945*/          OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50947*/          OPC_CheckType, MVT::v16i8,
/* 50949*/          OPC_MoveParent,
/* 50950*/          OPC_MoveParent,
/* 50951*/          OPC_RecordChild1, // #1 = $vB
/* 50952*/          OPC_MoveParent,
/* 50953*/          OPC_CheckType, MVT::v4i32,
/* 50955*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 50957*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VORC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                    // Dst: (VORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 50965*/        0, /*End of Scope*/
/* 50966*/      0, /*End of Scope*/
/* 50967*/    /*Scope*/ 66, /*->51034*/
/* 50968*/      OPC_MoveChild0,
/* 50969*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 50972*/      OPC_Scope, 29, /*->51003*/ // 2 children in Scope
/* 50974*/        OPC_RecordChild0, // #0 = $vB
/* 50975*/        OPC_MoveChild1,
/* 50976*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 50979*/        OPC_MoveChild0,
/* 50980*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 50983*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 50985*/        OPC_CheckType, MVT::v16i8,
/* 50987*/        OPC_MoveParent,
/* 50988*/        OPC_MoveParent,
/* 50989*/        OPC_MoveParent,
/* 50990*/        OPC_RecordChild1, // #1 = $vA
/* 50991*/        OPC_CheckType, MVT::v4i32,
/* 50993*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 50995*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>)), v4i32:{ *:[v4i32] }:$vA) - Complexity = 13
                  // Dst: (VORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 51003*/      /*Scope*/ 29, /*->51033*/
/* 51004*/        OPC_MoveChild0,
/* 51005*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51008*/        OPC_MoveChild0,
/* 51009*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 51012*/        OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 51014*/        OPC_CheckType, MVT::v16i8,
/* 51016*/        OPC_MoveParent,
/* 51017*/        OPC_MoveParent,
/* 51018*/        OPC_RecordChild1, // #0 = $vB
/* 51019*/        OPC_MoveParent,
/* 51020*/        OPC_RecordChild1, // #1 = $vA
/* 51021*/        OPC_CheckType, MVT::v4i32,
/* 51023*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 51025*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>>), v4i32:{ *:[v4i32] }:$vB), v4i32:{ *:[v4i32] }:$vA) - Complexity = 13
                  // Dst: (VORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 51033*/      0, /*End of Scope*/
/* 51034*/    /*Scope*/ 34, /*->51069*/
/* 51035*/      OPC_RecordChild0, // #0 = $FRA
/* 51036*/      OPC_MoveChild1,
/* 51037*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 51040*/      OPC_RecordChild0, // #1 = $FRB
/* 51041*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51052*/      OPC_MoveParent,
/* 51053*/      OPC_CheckType, MVT::v4i1,
/* 51055*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 51057*/      OPC_EmitInteger, MVT::i32, 13, 
/* 51060*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                    MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (or:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRB, -1:{ *:[v4i1] })) - Complexity = 11
                // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 13:{ *:[i32] })
/* 51069*/    /*Scope*/ 34, /*->51104*/
/* 51070*/      OPC_MoveChild0,
/* 51071*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 51074*/      OPC_RecordChild0, // #0 = $FRB
/* 51075*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51086*/      OPC_MoveParent,
/* 51087*/      OPC_RecordChild1, // #1 = $FRA
/* 51088*/      OPC_CheckType, MVT::v4i1,
/* 51090*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 51092*/      OPC_EmitInteger, MVT::i32, 13, 
/* 51095*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                    MVT::v4i1, 3/*#Ops*/, 1, 0, 2, 
                // Src: (or:{ *:[v4i1] } (xor:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRB, -1:{ *:[v4i1] }), v4i1:{ *:[v4i1] }:$FRA) - Complexity = 11
                // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 13:{ *:[i32] })
/* 51104*/    /*Scope*/ 32, /*->51137*/
/* 51105*/      OPC_RecordChild0, // #0 = $vA
/* 51106*/      OPC_RecordChild1, // #1 = $vB
/* 51107*/      OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->51120
/* 51110*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 51112*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VOR), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                  // Dst: (VOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 51120*/      /*SwitchType*/ 14, MVT::v4i1,// ->51136
/* 51122*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 51124*/        OPC_EmitInteger, MVT::i32, 7, 
/* 51127*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (or:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } ?:{ *:[v4i1] }:$FRA, ?:{ *:[v4i1] }:$FRB, 7:{ *:[i32] })
/* 51136*/      0, // EndSwitchType
/* 51137*/    0, /*End of Scope*/
/* 51138*/  /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(PPCISD::Hi),// ->51277
/* 51142*/    OPC_RecordChild0, // #0 = $in
/* 51143*/    OPC_MoveChild0,
/* 51144*/    OPC_SwitchOpcode /*5 cases */, 23, TARGET_VAL(ISD::TargetGlobalAddress),// ->51171
/* 51148*/      OPC_MoveParent,
/* 51149*/      OPC_CheckChild1Integer, 0, 
/* 51151*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->51161
/* 51154*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$in, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (LIS:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$in)
/* 51161*/      /*SwitchType*/ 7, MVT::i64,// ->51170
/* 51163*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$in, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (LIS8:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$in)
/* 51170*/      0, // EndSwitchType
/* 51171*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetConstantPool),// ->51197
/* 51174*/      OPC_MoveParent,
/* 51175*/      OPC_CheckChild1Integer, 0, 
/* 51177*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->51187
/* 51180*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[i32] } (tconstpool:{ *:[i32] }):$in, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (LIS:{ *:[i32] } (tconstpool:{ *:[i32] }):$in)
/* 51187*/      /*SwitchType*/ 7, MVT::i64,// ->51196
/* 51189*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[i64] } (tconstpool:{ *:[i64] }):$in, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (LIS8:{ *:[i64] } (tconstpool:{ *:[i64] }):$in)
/* 51196*/      0, // EndSwitchType
/* 51197*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetJumpTable),// ->51223
/* 51200*/      OPC_MoveParent,
/* 51201*/      OPC_CheckChild1Integer, 0, 
/* 51203*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->51213
/* 51206*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[i32] } (tjumptable:{ *:[i32] }):$in, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (LIS:{ *:[i32] } (tjumptable:{ *:[i32] }):$in)
/* 51213*/      /*SwitchType*/ 7, MVT::i64,// ->51222
/* 51215*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[i64] } (tjumptable:{ *:[i64] }):$in, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (LIS8:{ *:[i64] } (tjumptable:{ *:[i64] }):$in)
/* 51222*/      0, // EndSwitchType
/* 51223*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetBlockAddress),// ->51249
/* 51226*/      OPC_MoveParent,
/* 51227*/      OPC_CheckChild1Integer, 0, 
/* 51229*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->51239
/* 51232*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[i32] } (tblockaddress:{ *:[i32] }):$in, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (LIS:{ *:[i32] } (tblockaddress:{ *:[i32] }):$in)
/* 51239*/      /*SwitchType*/ 7, MVT::i64,// ->51248
/* 51241*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[i64] } (tblockaddress:{ *:[i64] }):$in, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (LIS8:{ *:[i64] } (tblockaddress:{ *:[i64] }):$in)
/* 51248*/      0, // EndSwitchType
/* 51249*/    /*SwitchOpcode*/ 24, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->51276
/* 51252*/      OPC_MoveParent,
/* 51253*/      OPC_RecordChild1, // #1 = $in
/* 51254*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->51265
/* 51257*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS), 0,
                      MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (PPChi:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$g, i32:{ *:[i32] }:$in) - Complexity = 6
                  // Dst: (ADDIS:{ *:[i32] } ?:{ *:[i32] }:$in, (tglobaltlsaddr:{ *:[i32] }):$g)
/* 51265*/      /*SwitchType*/ 8, MVT::i64,// ->51275
/* 51267*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIS8), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0, 
                  // Src: (PPChi:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$g, i64:{ *:[i64] }:$in) - Complexity = 6
                  // Dst: (ADDIS8:{ *:[i64] } ?:{ *:[i64] }:$in, (tglobaltlsaddr:{ *:[i64] }):$g)
/* 51275*/      0, // EndSwitchType
/* 51276*/    0, // EndSwitchOpcode
/* 51277*/  /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(PPCISD::Lo),// ->51416
/* 51281*/    OPC_RecordChild0, // #0 = $in
/* 51282*/    OPC_MoveChild0,
/* 51283*/    OPC_SwitchOpcode /*5 cases */, 23, TARGET_VAL(ISD::TargetGlobalAddress),// ->51310
/* 51287*/      OPC_MoveParent,
/* 51288*/      OPC_CheckChild1Integer, 0, 
/* 51290*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->51300
/* 51293*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$in, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (LI:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$in)
/* 51300*/      /*SwitchType*/ 7, MVT::i64,// ->51309
/* 51302*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$in, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (LI8:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$in)
/* 51309*/      0, // EndSwitchType
/* 51310*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetConstantPool),// ->51336
/* 51313*/      OPC_MoveParent,
/* 51314*/      OPC_CheckChild1Integer, 0, 
/* 51316*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->51326
/* 51319*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[i32] } (tconstpool:{ *:[i32] }):$in, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (LI:{ *:[i32] } (tconstpool:{ *:[i32] }):$in)
/* 51326*/      /*SwitchType*/ 7, MVT::i64,// ->51335
/* 51328*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[i64] } (tconstpool:{ *:[i64] }):$in, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (LI8:{ *:[i64] } (tconstpool:{ *:[i64] }):$in)
/* 51335*/      0, // EndSwitchType
/* 51336*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetJumpTable),// ->51362
/* 51339*/      OPC_MoveParent,
/* 51340*/      OPC_CheckChild1Integer, 0, 
/* 51342*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->51352
/* 51345*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[i32] } (tjumptable:{ *:[i32] }):$in, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (LI:{ *:[i32] } (tjumptable:{ *:[i32] }):$in)
/* 51352*/      /*SwitchType*/ 7, MVT::i64,// ->51361
/* 51354*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[i64] } (tjumptable:{ *:[i64] }):$in, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (LI8:{ *:[i64] } (tjumptable:{ *:[i64] }):$in)
/* 51361*/      0, // EndSwitchType
/* 51362*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetBlockAddress),// ->51388
/* 51365*/      OPC_MoveParent,
/* 51366*/      OPC_CheckChild1Integer, 0, 
/* 51368*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->51378
/* 51371*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[i32] } (tblockaddress:{ *:[i32] }):$in, 0:{ *:[i32] }) - Complexity = 11
                  // Dst: (LI:{ *:[i32] } (tblockaddress:{ *:[i32] }):$in)
/* 51378*/      /*SwitchType*/ 7, MVT::i64,// ->51387
/* 51380*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[i64] } (tblockaddress:{ *:[i64] }):$in, 0:{ *:[i64] }) - Complexity = 11
                  // Dst: (LI8:{ *:[i64] } (tblockaddress:{ *:[i64] }):$in)
/* 51387*/      0, // EndSwitchType
/* 51388*/    /*SwitchOpcode*/ 24, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->51415
/* 51391*/      OPC_MoveParent,
/* 51392*/      OPC_RecordChild1, // #1 = $in
/* 51393*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->51404
/* 51396*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDI), 0,
                      MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (PPClo:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$g, i32:{ *:[i32] }:$in) - Complexity = 6
                  // Dst: (ADDI:{ *:[i32] } ?:{ *:[i32] }:$in, (tglobaltlsaddr:{ *:[i32] }):$g)
/* 51404*/      /*SwitchType*/ 8, MVT::i64,// ->51414
/* 51406*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDI8), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0, 
                  // Src: (PPClo:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$g, i64:{ *:[i64] }:$in) - Complexity = 6
                  // Dst: (ADDI8:{ *:[i64] } ?:{ *:[i64] }:$in, (tglobaltlsaddr:{ *:[i64] }):$g)
/* 51414*/      0, // EndSwitchType
/* 51415*/    0, // EndSwitchOpcode
/* 51416*/  /*SwitchOpcode*/ 83, TARGET_VAL(ISD::ATOMIC_FENCE),// ->51502
/* 51419*/    OPC_RecordNode, // #0 = 'atomic_fence' chained node
/* 51420*/    OPC_Scope, 44, /*->51466*/ // 2 children in Scope
/* 51422*/      OPC_CheckChild1Integer, 7, 
/* 51424*/      OPC_Scope, 19, /*->51445*/ // 2 children in Scope
/* 51426*/        OPC_CheckChild1Type, MVT::i64,
/* 51428*/        OPC_MoveChild2,
/* 51429*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51432*/        OPC_MoveParent,
/* 51433*/        OPC_CheckPatternPredicate, 12, // (!PPCSubTarget->hasOnlyMSYNC())
/* 51435*/        OPC_EmitMergeInputChains1_0,
/* 51436*/        OPC_EmitInteger, MVT::i32, 0, 
/* 51439*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (atomic_fence 7:{ *:[i64] }, (imm:{ *:[i64] })) - Complexity = 11
                  // Dst: (SYNC 0:{ *:[i32] })
/* 51445*/      /*Scope*/ 19, /*->51465*/
/* 51446*/        OPC_CheckChild1Type, MVT::i32,
/* 51448*/        OPC_MoveChild2,
/* 51449*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51452*/        OPC_MoveParent,
/* 51453*/        OPC_CheckPatternPredicate, 12, // (!PPCSubTarget->hasOnlyMSYNC())
/* 51455*/        OPC_EmitMergeInputChains1_0,
/* 51456*/        OPC_EmitInteger, MVT::i32, 0, 
/* 51459*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (atomic_fence 7:{ *:[i32] }, (imm:{ *:[i32] })) - Complexity = 11
                  // Dst: (SYNC 0:{ *:[i32] })
/* 51465*/      0, /*End of Scope*/
/* 51466*/    /*Scope*/ 34, /*->51501*/
/* 51467*/      OPC_MoveChild1,
/* 51468*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51471*/      OPC_MoveParent,
/* 51472*/      OPC_MoveChild2,
/* 51473*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51476*/      OPC_MoveParent,
/* 51477*/      OPC_Scope, 12, /*->51491*/ // 2 children in Scope
/* 51479*/        OPC_CheckPatternPredicate, 12, // (!PPCSubTarget->hasOnlyMSYNC())
/* 51481*/        OPC_EmitMergeInputChains1_0,
/* 51482*/        OPC_EmitInteger, MVT::i32, 1, 
/* 51485*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (atomic_fence (imm:{ *:[iPTR] }), (imm:{ *:[iPTR] })) - Complexity = 9
                  // Dst: (SYNC 1:{ *:[i32] })
/* 51491*/      /*Scope*/ 8, /*->51500*/
/* 51492*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasOnlyMSYNC())
/* 51494*/        OPC_EmitMergeInputChains1_0,
/* 51495*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::MSYNC), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (atomic_fence (imm:{ *:[iPTR] }), (imm:{ *:[iPTR] })) - Complexity = 9
                  // Dst: (MSYNC)
/* 51500*/      0, /*End of Scope*/
/* 51501*/    0, /*End of Scope*/
/* 51502*/  /*SwitchOpcode*/ 86, TARGET_VAL(ISD::TRUNCATE),// ->51591
/* 51505*/    OPC_Scope, 42, /*->51549*/ // 2 children in Scope
/* 51507*/      OPC_MoveChild0,
/* 51508*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 51511*/      OPC_RecordChild0, // #0 = $in
/* 51512*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51523*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->51536
/* 51526*/        OPC_MoveParent,
/* 51527*/        OPC_CheckType, MVT::i1,
/* 51529*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDIo_1_EQ_BIT), 0,
                      MVT::i1, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[i1] } (xor:{ *:[i32] } i32:{ *:[i32] }:$in, -1:{ *:[i32] })) - Complexity = 11
                  // Dst: (ANDIo_1_EQ_BIT:{ *:[i1] } i32:{ *:[i32] }:$in)
/* 51536*/      /*SwitchType*/ 10, MVT::i64,// ->51548
/* 51538*/        OPC_MoveParent,
/* 51539*/        OPC_CheckType, MVT::i1,
/* 51541*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDIo_1_EQ_BIT8), 0,
                      MVT::i1, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[i1] } (xor:{ *:[i64] } i64:{ *:[i64] }:$in, -1:{ *:[i64] })) - Complexity = 11
                  // Dst: (ANDIo_1_EQ_BIT8:{ *:[i1] } i64:{ *:[i64] }:$in)
/* 51548*/      0, // EndSwitchType
/* 51549*/    /*Scope*/ 40, /*->51590*/
/* 51550*/      OPC_RecordChild0, // #0 = $in
/* 51551*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->51565
/* 51554*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 51557*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (trunc:{ *:[i32] } i64:{ *:[i64] }:$in) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } ?:{ *:[i64] }:$in, sub_32:{ *:[i32] })
/* 51565*/      /*SwitchType*/ 22, MVT::i1,// ->51589
/* 51567*/        OPC_Scope, 9, /*->51578*/ // 2 children in Scope
/* 51569*/          OPC_CheckChild0Type, MVT::i32,
/* 51571*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDIo_1_GT_BIT), 0,
                        MVT::i1, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[i1] } i32:{ *:[i32] }:$in) - Complexity = 3
                    // Dst: (ANDIo_1_GT_BIT:{ *:[i1] } i32:{ *:[i32] }:$in)
/* 51578*/        /*Scope*/ 9, /*->51588*/
/* 51579*/          OPC_CheckChild0Type, MVT::i64,
/* 51581*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDIo_1_GT_BIT8), 0,
                        MVT::i1, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[i1] } i64:{ *:[i64] }:$in) - Complexity = 3
                    // Dst: (ANDIo_1_GT_BIT8:{ *:[i1] } i64:{ *:[i64] }:$in)
/* 51588*/        0, /*End of Scope*/
/* 51589*/      0, // EndSwitchType
/* 51590*/    0, /*End of Scope*/
/* 51591*/  /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CALLSEQ_START),// ->51615
/* 51594*/    OPC_RecordNode, // #0 = 'callseq_start' chained node
/* 51595*/    OPC_RecordChild1, // #1 = $amt1
/* 51596*/    OPC_MoveChild1,
/* 51597*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 51600*/    OPC_MoveParent,
/* 51601*/    OPC_RecordChild2, // #2 = $amt2
/* 51602*/    OPC_MoveChild2,
/* 51603*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 51606*/    OPC_MoveParent,
/* 51607*/    OPC_EmitMergeInputChains1_0,
/* 51608*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
                  2/*#Ops*/, 1, 2, 
              // Src: (callseq_start (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
              // Dst: (ADJCALLSTACKDOWN (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2)
/* 51615*/  /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_END),// ->51640
/* 51618*/    OPC_RecordNode, // #0 = 'callseq_end' chained node
/* 51619*/    OPC_CaptureGlueInput,
/* 51620*/    OPC_RecordChild1, // #1 = $amt1
/* 51621*/    OPC_MoveChild1,
/* 51622*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 51625*/    OPC_MoveParent,
/* 51626*/    OPC_RecordChild2, // #2 = $amt2
/* 51627*/    OPC_MoveChild2,
/* 51628*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 51631*/    OPC_MoveParent,
/* 51632*/    OPC_EmitMergeInputChains1_0,
/* 51633*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  2/*#Ops*/, 1, 2, 
              // Src: (callseq_end (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
              // Dst: (ADJCALLSTACKUP (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2)
/* 51640*/  /*SwitchOpcode*/ 53|128,1/*181*/, TARGET_VAL(PPCISD::TC_RETURN),// ->51825
/* 51644*/    OPC_RecordNode, // #0 = 'PPCtc_return' chained node
/* 51645*/    OPC_CaptureGlueInput,
/* 51646*/    OPC_RecordChild1, // #1 = $func
/* 51647*/    OPC_Scope, 8|128,1/*136*/, /*->51786*/ // 3 children in Scope
/* 51650*/      OPC_MoveChild1,
/* 51651*/      OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::Constant),// ->51699
/* 51655*/        OPC_SwitchType /*2 cases */, 19, MVT::i32,// ->51677
/* 51658*/          OPC_MoveParent,
/* 51659*/          OPC_RecordChild2, // #2 = $offset
/* 51660*/          OPC_MoveChild2,
/* 51661*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51664*/          OPC_MoveParent,
/* 51665*/          OPC_EmitMergeInputChains1_0,
/* 51666*/          OPC_EmitConvertToTarget, 1,
/* 51668*/          OPC_EmitConvertToTarget, 2,
/* 51670*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::TCRETURNai), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 3, 4, 
                    // Src: (PPCtc_return (imm:{ *:[i32] }):$func, (imm:{ *:[i32] }):$offset) - Complexity = 9
                    // Dst: (TCRETURNai (imm:{ *:[i32] }):$func, (imm:{ *:[i32] }):$offset)
/* 51677*/        /*SwitchType*/ 19, MVT::i64,// ->51698
/* 51679*/          OPC_MoveParent,
/* 51680*/          OPC_RecordChild2, // #2 = $offset
/* 51681*/          OPC_MoveChild2,
/* 51682*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51685*/          OPC_MoveParent,
/* 51686*/          OPC_EmitMergeInputChains1_0,
/* 51687*/          OPC_EmitConvertToTarget, 1,
/* 51689*/          OPC_EmitConvertToTarget, 2,
/* 51691*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::TCRETURNai8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 3, 4, 
                    // Src: (PPCtc_return (imm:{ *:[i64] }):$func, (imm:{ *:[i32] }):$offset) - Complexity = 9
                    // Dst: (TCRETURNai8 (imm:{ *:[i64] }):$func, (imm:{ *:[i32] }):$offset)
/* 51698*/        0, // EndSwitchType
/* 51699*/      /*SwitchOpcode*/ 40, TARGET_VAL(ISD::TargetGlobalAddress),// ->51742
/* 51702*/        OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->51722
/* 51705*/          OPC_MoveParent,
/* 51706*/          OPC_RecordChild2, // #2 = $imm
/* 51707*/          OPC_MoveChild2,
/* 51708*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51711*/          OPC_MoveParent,
/* 51712*/          OPC_EmitMergeInputChains1_0,
/* 51713*/          OPC_EmitConvertToTarget, 2,
/* 51715*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 1, 3, 
                    // Src: (PPCtc_return (tglobaladdr:{ *:[i32] }):$dst, (imm:{ *:[i32] }):$imm) - Complexity = 9
                    // Dst: (TCRETURNdi (tglobaladdr:{ *:[i32] }):$dst, (imm:{ *:[i32] }):$imm)
/* 51722*/        /*SwitchType*/ 17, MVT::i64,// ->51741
/* 51724*/          OPC_MoveParent,
/* 51725*/          OPC_RecordChild2, // #2 = $imm
/* 51726*/          OPC_MoveChild2,
/* 51727*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51730*/          OPC_MoveParent,
/* 51731*/          OPC_EmitMergeInputChains1_0,
/* 51732*/          OPC_EmitConvertToTarget, 2,
/* 51734*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::TCRETURNdi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 1, 3, 
                    // Src: (PPCtc_return (tglobaladdr:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$imm) - Complexity = 9
                    // Dst: (TCRETURNdi8 (tglobaladdr:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$imm)
/* 51741*/        0, // EndSwitchType
/* 51742*/      /*SwitchOpcode*/ 40, TARGET_VAL(ISD::TargetExternalSymbol),// ->51785
/* 51745*/        OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->51765
/* 51748*/          OPC_MoveParent,
/* 51749*/          OPC_RecordChild2, // #2 = $imm
/* 51750*/          OPC_MoveChild2,
/* 51751*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51754*/          OPC_MoveParent,
/* 51755*/          OPC_EmitMergeInputChains1_0,
/* 51756*/          OPC_EmitConvertToTarget, 2,
/* 51758*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 1, 3, 
                    // Src: (PPCtc_return (texternalsym:{ *:[i32] }):$dst, (imm:{ *:[i32] }):$imm) - Complexity = 9
                    // Dst: (TCRETURNdi (texternalsym:{ *:[i32] }):$dst, (imm:{ *:[i32] }):$imm)
/* 51765*/        /*SwitchType*/ 17, MVT::i64,// ->51784
/* 51767*/          OPC_MoveParent,
/* 51768*/          OPC_RecordChild2, // #2 = $imm
/* 51769*/          OPC_MoveChild2,
/* 51770*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51773*/          OPC_MoveParent,
/* 51774*/          OPC_EmitMergeInputChains1_0,
/* 51775*/          OPC_EmitConvertToTarget, 2,
/* 51777*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::TCRETURNdi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        2/*#Ops*/, 1, 3, 
                    // Src: (PPCtc_return (texternalsym:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$imm) - Complexity = 9
                    // Dst: (TCRETURNdi8 (texternalsym:{ *:[i64] }):$dst, (imm:{ *:[i32] }):$imm)
/* 51784*/        0, // EndSwitchType
/* 51785*/      0, // EndSwitchOpcode
/* 51786*/    /*Scope*/ 18, /*->51805*/
/* 51787*/      OPC_CheckChild1Type, MVT::i32,
/* 51789*/      OPC_RecordChild2, // #2 = $imm
/* 51790*/      OPC_MoveChild2,
/* 51791*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51794*/      OPC_MoveParent,
/* 51795*/      OPC_EmitMergeInputChains1_0,
/* 51796*/      OPC_EmitConvertToTarget, 2,
/* 51798*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::TCRETURNri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                    2/*#Ops*/, 1, 3, 
                // Src: (PPCtc_return CTRRC:{ *:[i32] }:$dst, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (TCRETURNri CTRRC:{ *:[i32] }:$dst, (imm:{ *:[i32] }):$imm)
/* 51805*/    /*Scope*/ 18, /*->51824*/
/* 51806*/      OPC_CheckChild1Type, MVT::i64,
/* 51808*/      OPC_RecordChild2, // #2 = $imm
/* 51809*/      OPC_MoveChild2,
/* 51810*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51813*/      OPC_MoveParent,
/* 51814*/      OPC_EmitMergeInputChains1_0,
/* 51815*/      OPC_EmitConvertToTarget, 2,
/* 51817*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::TCRETURNri8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                    2/*#Ops*/, 1, 3, 
                // Src: (PPCtc_return CTRRC8:{ *:[i64] }:$dst, (imm:{ *:[i32] }):$imm) - Complexity = 6
                // Dst: (TCRETURNri8 CTRRC8:{ *:[i64] }:$dst, (imm:{ *:[i32] }):$imm)
/* 51824*/    0, /*End of Scope*/
/* 51825*/  /*SwitchOpcode*/ 28, TARGET_VAL(PPCISD::MFBHRBE),// ->51856
/* 51828*/    OPC_RecordNode, // #0 = 'PPCmfbhrbe' chained node
/* 51829*/    OPC_RecordChild1, // #1 = $imm
/* 51830*/    OPC_MoveChild1,
/* 51831*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51834*/    OPC_MoveParent,
/* 51835*/    OPC_RecordChild2, // #2 = $dmy
/* 51836*/    OPC_MoveChild2,
/* 51837*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51840*/    OPC_MoveParent,
/* 51841*/    OPC_CheckType, MVT::i32,
/* 51843*/    OPC_EmitMergeInputChains1_0,
/* 51844*/    OPC_EmitConvertToTarget, 1,
/* 51846*/    OPC_EmitConvertToTarget, 2,
/* 51848*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::MFBHRBE), 0|OPFL_Chain,
                  MVT::i32, 2/*#Ops*/, 3, 4, 
              // Src: (PPCmfbhrbe:{ *:[i32] } (imm:{ *:[i32] }):$imm, (imm:{ *:[i32] }):$dmy) - Complexity = 9
              // Dst: (MFBHRBE:{ *:[i32] } (imm:{ *:[i32] }):$imm, (imm:{ *:[i32] }):$dmy)
/* 51856*/  /*SwitchOpcode*/ 37, TARGET_VAL(PPCISD::ADDI_TLSGD_L_ADDR),// ->51896
/* 51859*/    OPC_RecordChild0, // #0 = $reg
/* 51860*/    OPC_RecordChild1, // #1 = $disp
/* 51861*/    OPC_MoveChild1,
/* 51862*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 51865*/    OPC_MoveParent,
/* 51866*/    OPC_RecordChild2, // #2 = $sym
/* 51867*/    OPC_MoveChild2,
/* 51868*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 51871*/    OPC_MoveParent,
/* 51872*/    OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->51884
/* 51875*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDItlsgdLADDR32), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (PPCaddiTlsgdLAddr:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp, (tglobaltlsaddr:{ *:[i32] }):$sym) - Complexity = 9
                // Dst: (ADDItlsgdLADDR32:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp, (tglobaltlsaddr:{ *:[i32] }):$sym)
/* 51884*/    /*SwitchType*/ 9, MVT::i64,// ->51895
/* 51886*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDItlsgdLADDR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (PPCaddiTlsgdLAddr:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp, (tglobaltlsaddr:{ *:[i64] }):$sym) - Complexity = 9
                // Dst: (ADDItlsgdLADDR:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp, (tglobaltlsaddr:{ *:[i64] }):$sym)
/* 51895*/    0, // EndSwitchType
/* 51896*/  /*SwitchOpcode*/ 37, TARGET_VAL(PPCISD::ADDI_TLSLD_L_ADDR),// ->51936
/* 51899*/    OPC_RecordChild0, // #0 = $reg
/* 51900*/    OPC_RecordChild1, // #1 = $disp
/* 51901*/    OPC_MoveChild1,
/* 51902*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 51905*/    OPC_MoveParent,
/* 51906*/    OPC_RecordChild2, // #2 = $sym
/* 51907*/    OPC_MoveChild2,
/* 51908*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 51911*/    OPC_MoveParent,
/* 51912*/    OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->51924
/* 51915*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDItlsldLADDR32), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (PPCaddiTlsldLAddr:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp, (tglobaltlsaddr:{ *:[i32] }):$sym) - Complexity = 9
                // Dst: (ADDItlsldLADDR32:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp, (tglobaltlsaddr:{ *:[i32] }):$sym)
/* 51924*/    /*SwitchType*/ 9, MVT::i64,// ->51935
/* 51926*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDItlsldLADDR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (PPCaddiTlsldLAddr:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp, (tglobaltlsaddr:{ *:[i64] }):$sym) - Complexity = 9
                // Dst: (ADDItlsldLADDR:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp, (tglobaltlsaddr:{ *:[i64] }):$sym)
/* 51935*/    0, // EndSwitchType
/* 51936*/  /*SwitchOpcode*/ 36, TARGET_VAL(PPCISD::EH_SJLJ_SETJMP),// ->51975
/* 51939*/    OPC_RecordNode, // #0 = 'PPCeh_sjlj_setjmp' chained node
/* 51940*/    OPC_RecordChild1, // #1 = $buf
/* 51941*/    OPC_CheckType, MVT::i32,
/* 51943*/    OPC_Scope, 14, /*->51959*/ // 2 children in Scope
/* 51945*/      OPC_CheckPatternPredicate, 34, // (!PPCSubTarget->isPPC64())
/* 51947*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddr:$buf #2
/* 51950*/      OPC_EmitMergeInputChains1_0,
/* 51951*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::EH_SjLj_SetJmp32), 0|OPFL_Chain,
                    MVT::i32, MVT::i32, 1/*#Ops*/, 2, 
                // Src: (PPCeh_sjlj_setjmp:{ *:[i32] } addr:{ *:[iPTR] }:$buf) - Complexity = 9
                // Dst: (EH_SjLj_SetJmp32:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$buf)
/* 51959*/    /*Scope*/ 14, /*->51974*/
/* 51960*/      OPC_CheckPatternPredicate, 33, // (PPCSubTarget->isPPC64())
/* 51962*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddr:$buf #2
/* 51965*/      OPC_EmitMergeInputChains1_0,
/* 51966*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::EH_SjLj_SetJmp64), 0|OPFL_Chain,
                    MVT::i32, MVT::i64, 1/*#Ops*/, 2, 
                // Src: (PPCeh_sjlj_setjmp:{ *:[i32] } addr:{ *:[iPTR] }:$buf) - Complexity = 9
                // Dst: (EH_SjLj_SetJmp64:{ *:[i32] }:{ *:[i64] } addr:{ *:[iPTR] }:$buf)
/* 51974*/    0, /*End of Scope*/
/* 51975*/  /*SwitchOpcode*/ 30, TARGET_VAL(PPCISD::EH_SJLJ_LONGJMP),// ->52008
/* 51978*/    OPC_RecordNode, // #0 = 'PPCeh_sjlj_longjmp' chained node
/* 51979*/    OPC_RecordChild1, // #1 = $buf
/* 51980*/    OPC_Scope, 12, /*->51994*/ // 2 children in Scope
/* 51982*/      OPC_CheckPatternPredicate, 34, // (!PPCSubTarget->isPPC64())
/* 51984*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddr:$buf #2
/* 51987*/      OPC_EmitMergeInputChains1_0,
/* 51988*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::EH_SjLj_LongJmp32), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (PPCeh_sjlj_longjmp addr:{ *:[iPTR] }:$buf) - Complexity = 9
                // Dst: (EH_SjLj_LongJmp32 addr:{ *:[iPTR] }:$buf)
/* 51994*/    /*Scope*/ 12, /*->52007*/
/* 51995*/      OPC_CheckPatternPredicate, 33, // (PPCSubTarget->isPPC64())
/* 51997*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddr:$buf #2
/* 52000*/      OPC_EmitMergeInputChains1_0,
/* 52001*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::EH_SjLj_LongJmp64), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (PPCeh_sjlj_longjmp addr:{ *:[iPTR] }:$buf) - Complexity = 9
                // Dst: (EH_SjLj_LongJmp64 addr:{ *:[iPTR] }:$buf)
/* 52007*/    0, /*End of Scope*/
/* 52008*/  /*SwitchOpcode*/ 23|128,34/*4375*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->56387
/* 52012*/    OPC_Scope, 15, /*->52029*/ // 263 children in Scope
/* 52014*/      OPC_CheckChild0Integer, 79|128,38/*4943*/, 
/* 52017*/      OPC_RecordChild1, // #0 = $rA
/* 52018*/      OPC_RecordChild2, // #1 = $rB
/* 52019*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasExtDiv())
/* 52021*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVWE), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 4943:{ *:[iPTR] }, gprc:{ *:[i32] }:$rA, gprc:{ *:[i32] }:$rB) - Complexity = 8
                // Dst: (DIVWE:{ *:[i32] } gprc:{ *:[i32] }:$rA, gprc:{ *:[i32] }:$rB)
/* 52029*/    /*Scope*/ 15, /*->52045*/
/* 52030*/      OPC_CheckChild0Integer, 80|128,38/*4944*/, 
/* 52033*/      OPC_RecordChild1, // #0 = $rA
/* 52034*/      OPC_RecordChild2, // #1 = $rB
/* 52035*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasExtDiv())
/* 52037*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVWEU), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 4944:{ *:[iPTR] }, gprc:{ *:[i32] }:$rA, gprc:{ *:[i32] }:$rB) - Complexity = 8
                // Dst: (DIVWEU:{ *:[i32] } gprc:{ *:[i32] }:$rA, gprc:{ *:[i32] }:$rB)
/* 52045*/    /*Scope*/ 13, /*->52059*/
/* 52046*/      OPC_CheckChild0Integer, 35|128,37/*4771*/, 
/* 52049*/      OPC_RecordChild1, // #0 = $vB
/* 52050*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 52052*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCLZLSBB), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 4771:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VCLZLSBB:{ *:[i32] } v16i8:{ *:[v16i8] }:$vB)
/* 52059*/    /*Scope*/ 13, /*->52073*/
/* 52060*/      OPC_CheckChild0Integer, 82|128,37/*4818*/, 
/* 52063*/      OPC_RecordChild1, // #0 = $vB
/* 52064*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 52066*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTZLSBB), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 4818:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VCTZLSBB:{ *:[i32] } v16i8:{ *:[v16i8] }:$vB)
/* 52073*/    /*Scope*/ 15, /*->52089*/
/* 52074*/      OPC_CheckChild0Integer, 66|128,38/*4930*/, 
/* 52077*/      OPC_RecordChild1, // #0 = $rS
/* 52078*/      OPC_RecordChild2, // #1 = $rB
/* 52079*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasBPERMD())
/* 52081*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::BPERMD), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i64] } 4930:{ *:[iPTR] }, g8rc:{ *:[i64] }:$rS, g8rc:{ *:[i64] }:$rB) - Complexity = 8
                // Dst: (BPERMD:{ *:[i64] } g8rc:{ *:[i64] }:$rS, g8rc:{ *:[i64] }:$rB)
/* 52089*/    /*Scope*/ 15, /*->52105*/
/* 52090*/      OPC_CheckChild0Integer, 76|128,38/*4940*/, 
/* 52093*/      OPC_RecordChild1, // #0 = $rA
/* 52094*/      OPC_RecordChild2, // #1 = $rB
/* 52095*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasExtDiv())
/* 52097*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVDE), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i64] } 4940:{ *:[iPTR] }, g8rc:{ *:[i64] }:$rA, g8rc:{ *:[i64] }:$rB) - Complexity = 8
                // Dst: (DIVDE:{ *:[i64] } g8rc:{ *:[i64] }:$rA, g8rc:{ *:[i64] }:$rB)
/* 52105*/    /*Scope*/ 15, /*->52121*/
/* 52106*/      OPC_CheckChild0Integer, 77|128,38/*4941*/, 
/* 52109*/      OPC_RecordChild1, // #0 = $rA
/* 52110*/      OPC_RecordChild2, // #1 = $rB
/* 52111*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasExtDiv())
/* 52113*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVDEU), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i64] } 4941:{ *:[iPTR] }, g8rc:{ *:[i64] }:$rA, g8rc:{ *:[i64] }:$rB) - Complexity = 8
                // Dst: (DIVDEU:{ *:[i64] } g8rc:{ *:[i64] }:$rA, g8rc:{ *:[i64] }:$rB)
/* 52121*/    /*Scope*/ 38, /*->52160*/
/* 52122*/      OPC_CheckChild0Integer, 81|128,38/*4945*/, 
/* 52125*/      OPC_RecordChild1, // #0 = $vA
/* 52126*/      OPC_RecordChild2, // #1 = $vB
/* 52127*/      OPC_Scope, 17, /*->52146*/ // 2 children in Scope
/* 52129*/        OPC_MoveChild3,
/* 52130*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 52133*/        OPC_RecordChild0, // #2 = $vTi
/* 52134*/        OPC_MoveParent,
/* 52135*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52137*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMSUBQPO), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f128] } 4945:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, (fneg:{ *:[f128] } f128:{ *:[f128] }:$vTi)) - Complexity = 411
                  // Dst: (XSMSUBQPO:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 52146*/      /*Scope*/ 12, /*->52159*/
/* 52147*/        OPC_RecordChild3, // #2 = $vTi
/* 52148*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52150*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMADDQPO), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f128] } 4945:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, f128:{ *:[f128] }:$vTi) - Complexity = 408
                  // Dst: (XSMADDQPO:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 52159*/      0, /*End of Scope*/
/* 52160*/    /*Scope*/ 15, /*->52176*/
/* 52161*/      OPC_CheckChild0Integer, 80|128,39/*5072*/, 
/* 52164*/      OPC_RecordChild1, // #0 = $XA
/* 52165*/      OPC_RecordChild2, // #1 = $XB
/* 52166*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52168*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMAXDP), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f64] } 5072:{ *:[iPTR] }, vsfrc:{ *:[f64] }:$XA, vsfrc:{ *:[f64] }:$XB) - Complexity = 408
                // Dst: (XSMAXDP:{ *:[f64] } vsfrc:{ *:[f64] }:$XA, vsfrc:{ *:[f64] }:$XB)
/* 52176*/    /*Scope*/ 15, /*->52192*/
/* 52177*/      OPC_CheckChild0Integer, 81|128,39/*5073*/, 
/* 52180*/      OPC_RecordChild1, // #0 = $XA
/* 52181*/      OPC_RecordChild2, // #1 = $XB
/* 52182*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52184*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMINDP), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f64] } 5073:{ *:[iPTR] }, vsfrc:{ *:[f64] }:$XA, vsfrc:{ *:[f64] }:$XB) - Complexity = 408
                // Dst: (XSMINDP:{ *:[f64] } vsfrc:{ *:[f64] }:$XA, vsfrc:{ *:[f64] }:$XB)
/* 52192*/    /*Scope*/ 15, /*->52208*/
/* 52193*/      OPC_CheckChild0Integer, 108|128,36/*4716*/, 
/* 52196*/      OPC_RecordChild1, // #0 = $vA
/* 52197*/      OPC_RecordChild2, // #1 = $vB
/* 52198*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52200*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSADDQPO), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 4716:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSADDQPO:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 52208*/    /*Scope*/ 15, /*->52224*/
/* 52209*/      OPC_CheckChild0Integer, 89|128,38/*4953*/, 
/* 52212*/      OPC_RecordChild1, // #0 = $vA
/* 52213*/      OPC_RecordChild2, // #1 = $vB
/* 52214*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52216*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMULQPO), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 4953:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSMULQPO:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 52224*/    /*Scope*/ 15, /*->52240*/
/* 52225*/      OPC_CheckChild0Integer, 50|128,39/*5042*/, 
/* 52228*/      OPC_RecordChild1, // #0 = $vA
/* 52229*/      OPC_RecordChild2, // #1 = $vB
/* 52230*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52232*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSUBQPO), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 5042:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSSUBQPO:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 52240*/    /*Scope*/ 15, /*->52256*/
/* 52241*/      OPC_CheckChild0Integer, 78|128,38/*4942*/, 
/* 52244*/      OPC_RecordChild1, // #0 = $vA
/* 52245*/      OPC_RecordChild2, // #1 = $vB
/* 52246*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52248*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSDIVQPO), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 4942:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSDIVQPO:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 52256*/    /*Scope*/ 13, /*->52270*/
/* 52257*/      OPC_CheckChild0Integer, 49|128,39/*5041*/, 
/* 52260*/      OPC_RecordChild1, // #0 = $vB
/* 52261*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52263*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSQRTQPO), 0,
                    MVT::f128, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 5041:{ *:[iPTR] }, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSSQRTQPO:{ *:[f128] } f128:{ *:[f128] }:$vB)
/* 52270*/    /*Scope*/ 13, /*->52284*/
/* 52271*/      OPC_CheckChild0Integer, 64|128,39/*5056*/, 
/* 52274*/      OPC_RecordChild1, // #0 = $vB
/* 52275*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52277*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVQPDPO), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[f64] } 5056:{ *:[iPTR] }, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSCVQPDPO:{ *:[f64] } f128:{ *:[f128] }:$vB)
/* 52284*/    /*Scope*/ 24, /*->52309*/
/* 52285*/      OPC_CheckChild0Integer, 125|128,39/*5117*/, 
/* 52288*/      OPC_RecordChild1, // #0 = $A
/* 52289*/      OPC_RecordChild2, // #1 = $B
/* 52290*/      OPC_RecordChild3, // #2 = $IMM
/* 52291*/      OPC_MoveChild3,
/* 52292*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52295*/      OPC_MoveParent,
/* 52296*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52298*/      OPC_EmitConvertToTarget, 2,
/* 52300*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5117:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$A, v2i64:{ *:[v2i64] }:$B, (imm:{ *:[i32] }):$IMM) - Complexity = 411
                // Dst: (XXINSERTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v2i64] }:$B, (imm:{ *:[i32] }):$IMM)
/* 52309*/    /*Scope*/ 22, /*->52332*/
/* 52310*/      OPC_CheckChild0Integer, 119|128,39/*5111*/, 
/* 52313*/      OPC_RecordChild1, // #0 = $XB
/* 52314*/      OPC_RecordChild2, // #1 = $DCMX
/* 52315*/      OPC_MoveChild2,
/* 52316*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52319*/      OPC_MoveParent,
/* 52320*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52322*/      OPC_EmitConvertToTarget, 1,
/* 52324*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVTSTDCSP), 0,
                    MVT::v4i32, 2/*#Ops*/, 2, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5111:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB, (imm:{ *:[i32] }):$DCMX) - Complexity = 411
                // Dst: (XVTSTDCSP:{ *:[v4i32] } (imm:{ *:[i32] }):$DCMX, v4f32:{ *:[v4f32] }:$XB)
/* 52332*/    /*Scope*/ 22, /*->52355*/
/* 52333*/      OPC_CheckChild0Integer, 118|128,39/*5110*/, 
/* 52336*/      OPC_RecordChild1, // #0 = $XB
/* 52337*/      OPC_RecordChild2, // #1 = $DCMX
/* 52338*/      OPC_MoveChild2,
/* 52339*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52342*/      OPC_MoveParent,
/* 52343*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52345*/      OPC_EmitConvertToTarget, 1,
/* 52347*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVTSTDCDP), 0,
                    MVT::v2i64, 2/*#Ops*/, 2, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5110:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB, (imm:{ *:[i32] }):$DCMX) - Complexity = 411
                // Dst: (XVTSTDCDP:{ *:[v2i64] } (imm:{ *:[i32] }):$DCMX, v2f64:{ *:[v2f64] }:$XB)
/* 52355*/    /*Scope*/ 33, /*->52389*/
/* 52356*/      OPC_CheckChild0Integer, 124|128,39/*5116*/, 
/* 52359*/      OPC_RecordChild1, // #0 = $A
/* 52360*/      OPC_RecordChild2, // #1 = $IMM
/* 52361*/      OPC_MoveChild2,
/* 52362*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52365*/      OPC_MoveParent,
/* 52366*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52368*/      OPC_EmitConvertToTarget, 1,
/* 52370*/      OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                    MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 52378*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 52381*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2i64, 2/*#Ops*/, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5116:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$A, (imm:{ *:[i32] }):$IMM) - Complexity = 411
                // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v2i64] }:$A, (imm:{ *:[i32] }):$IMM), VSRC:{ *:[i32] })
/* 52389*/    /*Scope*/ 15, /*->52405*/
/* 52390*/      OPC_CheckChild0Integer, 82|128,39/*5074*/, 
/* 52393*/      OPC_RecordChild1, // #0 = $XA
/* 52394*/      OPC_RecordChild2, // #1 = $XB
/* 52395*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52397*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPEQDP), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5074:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCMPEQDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 52405*/    /*Scope*/ 15, /*->52421*/
/* 52406*/      OPC_CheckChild0Integer, 84|128,39/*5076*/, 
/* 52409*/      OPC_RecordChild1, // #0 = $XA
/* 52410*/      OPC_RecordChild2, // #1 = $XB
/* 52411*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52413*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPEQSP), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5076:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCMPEQSP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 52421*/    /*Scope*/ 15, /*->52437*/
/* 52422*/      OPC_CheckChild0Integer, 86|128,39/*5078*/, 
/* 52425*/      OPC_RecordChild1, // #0 = $XA
/* 52426*/      OPC_RecordChild2, // #1 = $XB
/* 52427*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52429*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPGEDP), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5078:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCMPGEDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 52437*/    /*Scope*/ 15, /*->52453*/
/* 52438*/      OPC_CheckChild0Integer, 88|128,39/*5080*/, 
/* 52441*/      OPC_RecordChild1, // #0 = $XA
/* 52442*/      OPC_RecordChild2, // #1 = $XB
/* 52443*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52445*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPGESP), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5080:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCMPGESP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 52453*/    /*Scope*/ 15, /*->52469*/
/* 52454*/      OPC_CheckChild0Integer, 90|128,39/*5082*/, 
/* 52457*/      OPC_RecordChild1, // #0 = $XA
/* 52458*/      OPC_RecordChild2, // #1 = $XB
/* 52459*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52461*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPGTDP), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5082:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCMPGTDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 52469*/    /*Scope*/ 15, /*->52485*/
/* 52470*/      OPC_CheckChild0Integer, 92|128,39/*5084*/, 
/* 52473*/      OPC_RecordChild1, // #0 = $XA
/* 52474*/      OPC_RecordChild2, // #1 = $XB
/* 52475*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52477*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPGTSP), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5084:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCMPGTSP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 52485*/    /*Scope*/ 13, /*->52499*/
/* 52486*/      OPC_CheckChild0Integer, 95|128,39/*5087*/, 
/* 52489*/      OPC_RecordChild1, // #0 = $XB
/* 52490*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52492*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5087:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCVDPSXWS:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$XB)
/* 52499*/    /*Scope*/ 13, /*->52513*/
/* 52500*/      OPC_CheckChild0Integer, 96|128,39/*5088*/, 
/* 52503*/      OPC_RecordChild1, // #0 = $XB
/* 52504*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 52506*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5088:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCVDPUXWS:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$XB)
/* 52513*/    /*Scope*/ 15, /*->52529*/
/* 52514*/      OPC_CheckChild0Integer, 126|128,39/*5118*/, 
/* 52517*/      OPC_RecordChild1, // #0 = $A
/* 52518*/      OPC_RecordChild2, // #1 = $B
/* 52519*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 52521*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5118:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$A, v4i32:{ *:[v4i32] }:$B) - Complexity = 408
                // Dst: (XXLEQV:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B)
/* 52529*/    /*Scope*/ 13, /*->52543*/
/* 52530*/      OPC_CheckChild0Integer, 120|128,39/*5112*/, 
/* 52533*/      OPC_RecordChild1, // #0 = $XB
/* 52534*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52536*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVXEXPDP), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5112:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVXEXPDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XB)
/* 52543*/    /*Scope*/ 13, /*->52557*/
/* 52544*/      OPC_CheckChild0Integer, 121|128,39/*5113*/, 
/* 52547*/      OPC_RecordChild1, // #0 = $XB
/* 52548*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52550*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVXEXPSP), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5113:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVXEXPSP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XB)
/* 52557*/    /*Scope*/ 13, /*->52571*/
/* 52558*/      OPC_CheckChild0Integer, 122|128,39/*5114*/, 
/* 52561*/      OPC_RecordChild1, // #0 = $XB
/* 52562*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52564*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVXSIGDP), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5114:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVXSIGDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XB)
/* 52571*/    /*Scope*/ 13, /*->52585*/
/* 52572*/      OPC_CheckChild0Integer, 123|128,39/*5115*/, 
/* 52575*/      OPC_RecordChild1, // #0 = $XB
/* 52576*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 52578*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVXSIGSP), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5115:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVXSIGSP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XB)
/* 52585*/    /*Scope*/ 17, /*->52603*/
/* 52586*/      OPC_CheckChild0Integer, 2|128,37/*4738*/, 
/* 52589*/      OPC_RecordChild1, // #0 = $src
/* 52590*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52592*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 52595*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVSL), 0,
                    MVT::v16i8, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4738:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVSL:{ *:[v16i8] } xoaddr:{ *:[iPTR] }:$src)
/* 52603*/    /*Scope*/ 17, /*->52621*/
/* 52604*/      OPC_CheckChild0Integer, 3|128,37/*4739*/, 
/* 52607*/      OPC_RecordChild1, // #0 = $src
/* 52608*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52610*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 52613*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVSR), 0,
                    MVT::v16i8, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4739:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVSR:{ *:[v16i8] } xoaddr:{ *:[iPTR] }:$src)
/* 52621*/    /*Scope*/ 31, /*->52653*/
/* 52622*/      OPC_CheckChild0Integer, 120|128,36/*4728*/, 
/* 52625*/      OPC_RecordChild1, // #0 = $vA
/* 52626*/      OPC_RecordChild2, // #1 = $ST
/* 52627*/      OPC_MoveChild2,
/* 52628*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52631*/      OPC_MoveParent,
/* 52632*/      OPC_RecordChild3, // #2 = $SIX
/* 52633*/      OPC_MoveChild3,
/* 52634*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52637*/      OPC_MoveParent,
/* 52638*/      OPC_CheckPatternPredicate, 38, // (PPCSubTarget->hasP8Crypto())
/* 52640*/      OPC_EmitConvertToTarget, 1,
/* 52642*/      OPC_EmitConvertToTarget, 2,
/* 52644*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSHASIGMAW), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4728:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, (imm:{ *:[i32] }):$ST, (imm:{ *:[i32] }):$SIX) - Complexity = 14
                // Dst: (VSHASIGMAW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (imm:{ *:[i32] }):$ST, (imm:{ *:[i32] }):$SIX)
/* 52653*/    /*Scope*/ 31, /*->52685*/
/* 52654*/      OPC_CheckChild0Integer, 119|128,36/*4727*/, 
/* 52657*/      OPC_RecordChild1, // #0 = $vA
/* 52658*/      OPC_RecordChild2, // #1 = $ST
/* 52659*/      OPC_MoveChild2,
/* 52660*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52663*/      OPC_MoveParent,
/* 52664*/      OPC_RecordChild3, // #2 = $SIX
/* 52665*/      OPC_MoveChild3,
/* 52666*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52669*/      OPC_MoveParent,
/* 52670*/      OPC_CheckPatternPredicate, 38, // (PPCSubTarget->hasP8Crypto())
/* 52672*/      OPC_EmitConvertToTarget, 1,
/* 52674*/      OPC_EmitConvertToTarget, 2,
/* 52676*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSHASIGMAD), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4727:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, (imm:{ *:[i32] }):$ST, (imm:{ *:[i32] }):$SIX) - Complexity = 14
                // Dst: (VSHASIGMAD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, (imm:{ *:[i32] }):$ST, (imm:{ *:[i32] }):$SIX)
/* 52685*/    /*Scope*/ 37, /*->52723*/
/* 52686*/      OPC_CheckChild0Integer, 81|128,37/*4817*/, 
/* 52689*/      OPC_RecordChild1, // #0 = $vB
/* 52690*/      OPC_Scope, 11, /*->52703*/ // 2 children in Scope
/* 52692*/        OPC_CheckChild2Integer, 0, 
/* 52694*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52696*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTUXS_0), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4817:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (VCTUXS_0:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$vB)
/* 52703*/      /*Scope*/ 18, /*->52722*/
/* 52704*/        OPC_RecordChild2, // #1 = $UIMM
/* 52705*/        OPC_MoveChild2,
/* 52706*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52709*/        OPC_MoveParent,
/* 52710*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52712*/        OPC_EmitConvertToTarget, 1,
/* 52714*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTUXS), 0,
                      MVT::v4i32, 2/*#Ops*/, 2, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4817:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB, (imm:{ *:[i32] }):$UIMM) - Complexity = 11
                  // Dst: (VCTUXS:{ *:[v4i32] } (imm:{ *:[i32] }):$UIMM, v4f32:{ *:[v4f32] }:$vB)
/* 52722*/      0, /*End of Scope*/
/* 52723*/    /*Scope*/ 37, /*->52761*/
/* 52724*/      OPC_CheckChild0Integer, 80|128,37/*4816*/, 
/* 52727*/      OPC_RecordChild1, // #0 = $vB
/* 52728*/      OPC_Scope, 11, /*->52741*/ // 2 children in Scope
/* 52730*/        OPC_CheckChild2Integer, 0, 
/* 52732*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52734*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTSXS_0), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4816:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (VCTSXS_0:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$vB)
/* 52741*/      /*Scope*/ 18, /*->52760*/
/* 52742*/        OPC_RecordChild2, // #1 = $UIMM
/* 52743*/        OPC_MoveChild2,
/* 52744*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 52747*/        OPC_MoveParent,
/* 52748*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52750*/        OPC_EmitConvertToTarget, 1,
/* 52752*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTSXS), 0,
                      MVT::v4i32, 2/*#Ops*/, 2, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4816:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB, (imm:{ *:[i32] }):$UIMM) - Complexity = 11
                  // Dst: (VCTSXS:{ *:[v4i32] } (imm:{ *:[i32] }):$UIMM, v4f32:{ *:[v4f32] }:$vB)
/* 52760*/      0, /*End of Scope*/
/* 52761*/    /*Scope*/ 17, /*->52779*/
/* 52762*/      OPC_CheckChild0Integer, 96|128,37/*4832*/, 
/* 52765*/      OPC_RecordChild1, // #0 = $vA
/* 52766*/      OPC_RecordChild2, // #1 = $vB
/* 52767*/      OPC_RecordChild3, // #2 = $vC
/* 52768*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52770*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMHADDSHS), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4832:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC) - Complexity = 8
                // Dst: (VMHADDSHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC)
/* 52779*/    /*Scope*/ 17, /*->52797*/
/* 52780*/      OPC_CheckChild0Integer, 97|128,37/*4833*/, 
/* 52783*/      OPC_RecordChild1, // #0 = $vA
/* 52784*/      OPC_RecordChild2, // #1 = $vB
/* 52785*/      OPC_RecordChild3, // #2 = $vC
/* 52786*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52788*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMHRADDSHS), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4833:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC) - Complexity = 8
                // Dst: (VMHRADDSHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC)
/* 52797*/    /*Scope*/ 17, /*->52815*/
/* 52798*/      OPC_CheckChild0Integer, 107|128,37/*4843*/, 
/* 52801*/      OPC_RecordChild1, // #0 = $vA
/* 52802*/      OPC_RecordChild2, // #1 = $vB
/* 52803*/      OPC_RecordChild3, // #2 = $vC
/* 52804*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52806*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMLADDUHM), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4843:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC) - Complexity = 8
                // Dst: (VMLADDUHM:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC)
/* 52815*/    /*Scope*/ 17, /*->52833*/
/* 52816*/      OPC_CheckChild0Integer, 127|128,37/*4863*/, 
/* 52819*/      OPC_RecordChild1, // #0 = $vA
/* 52820*/      OPC_RecordChild2, // #1 = $vB
/* 52821*/      OPC_RecordChild3, // #2 = $vC
/* 52822*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52824*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPERM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4863:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v16i8:{ *:[v16i8] }:$vC) - Complexity = 8
                // Dst: (VPERM:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v16i8:{ *:[v16i8] }:$vC)
/* 52833*/    /*Scope*/ 17, /*->52851*/
/* 52834*/      OPC_CheckChild0Integer, 27|128,38/*4891*/, 
/* 52837*/      OPC_RecordChild1, // #0 = $vA
/* 52838*/      OPC_RecordChild2, // #1 = $vB
/* 52839*/      OPC_RecordChild3, // #2 = $vC
/* 52840*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52842*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSEL), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4891:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VSEL:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 52851*/    /*Scope*/ 15, /*->52867*/
/* 52852*/      OPC_CheckChild0Integer, 17|128,37/*4753*/, 
/* 52855*/      OPC_RecordChild1, // #0 = $vA
/* 52856*/      OPC_RecordChild2, // #1 = $vB
/* 52857*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52859*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDCUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4753:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VADDCUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52867*/    /*Scope*/ 15, /*->52883*/
/* 52868*/      OPC_CheckChild0Integer, 20|128,37/*4756*/, 
/* 52871*/      OPC_RecordChild1, // #0 = $vA
/* 52872*/      OPC_RecordChild2, // #1 = $vB
/* 52873*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52875*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDSBS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4756:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VADDSBS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 52883*/    /*Scope*/ 15, /*->52899*/
/* 52884*/      OPC_CheckChild0Integer, 21|128,37/*4757*/, 
/* 52887*/      OPC_RecordChild1, // #0 = $vA
/* 52888*/      OPC_RecordChild2, // #1 = $vB
/* 52889*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52891*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDSHS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4757:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VADDSHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 52899*/    /*Scope*/ 15, /*->52915*/
/* 52900*/      OPC_CheckChild0Integer, 22|128,37/*4758*/, 
/* 52903*/      OPC_RecordChild1, // #0 = $vA
/* 52904*/      OPC_RecordChild2, // #1 = $vB
/* 52905*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52907*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDSWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4758:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VADDSWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52915*/    /*Scope*/ 15, /*->52931*/
/* 52916*/      OPC_CheckChild0Integer, 23|128,37/*4759*/, 
/* 52919*/      OPC_RecordChild1, // #0 = $vA
/* 52920*/      OPC_RecordChild2, // #1 = $vB
/* 52921*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52923*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUBS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4759:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VADDUBS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 52931*/    /*Scope*/ 15, /*->52947*/
/* 52932*/      OPC_CheckChild0Integer, 24|128,37/*4760*/, 
/* 52935*/      OPC_RecordChild1, // #0 = $vA
/* 52936*/      OPC_RecordChild2, // #1 = $vB
/* 52937*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52939*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUHS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4760:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VADDUHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 52947*/    /*Scope*/ 15, /*->52963*/
/* 52948*/      OPC_CheckChild0Integer, 25|128,37/*4761*/, 
/* 52951*/      OPC_RecordChild1, // #0 = $vA
/* 52952*/      OPC_RecordChild2, // #1 = $vB
/* 52953*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52955*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4761:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VADDUWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52963*/    /*Scope*/ 15, /*->52979*/
/* 52964*/      OPC_CheckChild0Integer, 26|128,37/*4762*/, 
/* 52967*/      OPC_RecordChild1, // #0 = $vA
/* 52968*/      OPC_RecordChild2, // #1 = $vB
/* 52969*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52971*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4762:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VAVGSB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 52979*/    /*Scope*/ 15, /*->52995*/
/* 52980*/      OPC_CheckChild0Integer, 27|128,37/*4763*/, 
/* 52983*/      OPC_RecordChild1, // #0 = $vA
/* 52984*/      OPC_RecordChild2, // #1 = $vB
/* 52985*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 52987*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4763:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VAVGSH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 52995*/    /*Scope*/ 15, /*->53011*/
/* 52996*/      OPC_CheckChild0Integer, 28|128,37/*4764*/, 
/* 52999*/      OPC_RecordChild1, // #0 = $vA
/* 53000*/      OPC_RecordChild2, // #1 = $vB
/* 53001*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53003*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4764:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VAVGSW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53011*/    /*Scope*/ 15, /*->53027*/
/* 53012*/      OPC_CheckChild0Integer, 29|128,37/*4765*/, 
/* 53015*/      OPC_RecordChild1, // #0 = $vA
/* 53016*/      OPC_RecordChild2, // #1 = $vB
/* 53017*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53019*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4765:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VAVGUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53027*/    /*Scope*/ 15, /*->53043*/
/* 53028*/      OPC_CheckChild0Integer, 30|128,37/*4766*/, 
/* 53031*/      OPC_RecordChild1, // #0 = $vA
/* 53032*/      OPC_RecordChild2, // #1 = $vB
/* 53033*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53035*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4766:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VAVGUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53043*/    /*Scope*/ 15, /*->53059*/
/* 53044*/      OPC_CheckChild0Integer, 31|128,37/*4767*/, 
/* 53047*/      OPC_RecordChild1, // #0 = $vA
/* 53048*/      OPC_RecordChild2, // #1 = $vB
/* 53049*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53051*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4767:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VAVGUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53059*/    /*Scope*/ 15, /*->53075*/
/* 53060*/      OPC_CheckChild0Integer, 88|128,37/*4824*/, 
/* 53063*/      OPC_RecordChild1, // #0 = $vA
/* 53064*/      OPC_RecordChild2, // #1 = $vB
/* 53065*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53067*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4824:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMAXSB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53075*/    /*Scope*/ 15, /*->53091*/
/* 53076*/      OPC_CheckChild0Integer, 90|128,37/*4826*/, 
/* 53079*/      OPC_RecordChild1, // #0 = $vA
/* 53080*/      OPC_RecordChild2, // #1 = $vB
/* 53081*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53083*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4826:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMAXSH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53091*/    /*Scope*/ 15, /*->53107*/
/* 53092*/      OPC_CheckChild0Integer, 91|128,37/*4827*/, 
/* 53095*/      OPC_RecordChild1, // #0 = $vA
/* 53096*/      OPC_RecordChild2, // #1 = $vB
/* 53097*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53099*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4827:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMAXSW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53107*/    /*Scope*/ 15, /*->53123*/
/* 53108*/      OPC_CheckChild0Integer, 92|128,37/*4828*/, 
/* 53111*/      OPC_RecordChild1, // #0 = $vA
/* 53112*/      OPC_RecordChild2, // #1 = $vB
/* 53113*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53115*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4828:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMAXUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53123*/    /*Scope*/ 15, /*->53139*/
/* 53124*/      OPC_CheckChild0Integer, 94|128,37/*4830*/, 
/* 53127*/      OPC_RecordChild1, // #0 = $vA
/* 53128*/      OPC_RecordChild2, // #1 = $vB
/* 53129*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53131*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4830:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMAXUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53139*/    /*Scope*/ 15, /*->53155*/
/* 53140*/      OPC_CheckChild0Integer, 95|128,37/*4831*/, 
/* 53143*/      OPC_RecordChild1, // #0 = $vA
/* 53144*/      OPC_RecordChild2, // #1 = $vB
/* 53145*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53147*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4831:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMAXUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53155*/    /*Scope*/ 15, /*->53171*/
/* 53156*/      OPC_CheckChild0Integer, 99|128,37/*4835*/, 
/* 53159*/      OPC_RecordChild1, // #0 = $vA
/* 53160*/      OPC_RecordChild2, // #1 = $vB
/* 53161*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53163*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4835:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMINSB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53171*/    /*Scope*/ 15, /*->53187*/
/* 53172*/      OPC_CheckChild0Integer, 101|128,37/*4837*/, 
/* 53175*/      OPC_RecordChild1, // #0 = $vA
/* 53176*/      OPC_RecordChild2, // #1 = $vB
/* 53177*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53179*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4837:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMINSH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53187*/    /*Scope*/ 15, /*->53203*/
/* 53188*/      OPC_CheckChild0Integer, 102|128,37/*4838*/, 
/* 53191*/      OPC_RecordChild1, // #0 = $vA
/* 53192*/      OPC_RecordChild2, // #1 = $vB
/* 53193*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53195*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4838:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMINSW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53203*/    /*Scope*/ 15, /*->53219*/
/* 53204*/      OPC_CheckChild0Integer, 103|128,37/*4839*/, 
/* 53207*/      OPC_RecordChild1, // #0 = $vA
/* 53208*/      OPC_RecordChild2, // #1 = $vB
/* 53209*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53211*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4839:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMINUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53219*/    /*Scope*/ 15, /*->53235*/
/* 53220*/      OPC_CheckChild0Integer, 105|128,37/*4841*/, 
/* 53223*/      OPC_RecordChild1, // #0 = $vA
/* 53224*/      OPC_RecordChild2, // #1 = $vB
/* 53225*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53227*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4841:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMINUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53235*/    /*Scope*/ 15, /*->53251*/
/* 53236*/      OPC_CheckChild0Integer, 106|128,37/*4842*/, 
/* 53239*/      OPC_RecordChild1, // #0 = $vA
/* 53240*/      OPC_RecordChild2, // #1 = $vB
/* 53241*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53243*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4842:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMINUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53251*/    /*Scope*/ 17, /*->53269*/
/* 53252*/      OPC_CheckChild0Integer, 108|128,37/*4844*/, 
/* 53255*/      OPC_RecordChild1, // #0 = $vA
/* 53256*/      OPC_RecordChild2, // #1 = $vB
/* 53257*/      OPC_RecordChild3, // #2 = $vC
/* 53258*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53260*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMMBM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4844:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMMBM:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 53269*/    /*Scope*/ 17, /*->53287*/
/* 53270*/      OPC_CheckChild0Integer, 109|128,37/*4845*/, 
/* 53273*/      OPC_RecordChild1, // #0 = $vA
/* 53274*/      OPC_RecordChild2, // #1 = $vB
/* 53275*/      OPC_RecordChild3, // #2 = $vC
/* 53276*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53278*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMSHM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4845:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMSHM:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 53287*/    /*Scope*/ 17, /*->53305*/
/* 53288*/      OPC_CheckChild0Integer, 110|128,37/*4846*/, 
/* 53291*/      OPC_RecordChild1, // #0 = $vA
/* 53292*/      OPC_RecordChild2, // #1 = $vB
/* 53293*/      OPC_RecordChild3, // #2 = $vC
/* 53294*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53296*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMSHS), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4846:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMSHS:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 53305*/    /*Scope*/ 17, /*->53323*/
/* 53306*/      OPC_CheckChild0Integer, 111|128,37/*4847*/, 
/* 53309*/      OPC_RecordChild1, // #0 = $vA
/* 53310*/      OPC_RecordChild2, // #1 = $vB
/* 53311*/      OPC_RecordChild3, // #2 = $vC
/* 53312*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53314*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMUBM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4847:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMUBM:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 53323*/    /*Scope*/ 17, /*->53341*/
/* 53324*/      OPC_CheckChild0Integer, 112|128,37/*4848*/, 
/* 53327*/      OPC_RecordChild1, // #0 = $vA
/* 53328*/      OPC_RecordChild2, // #1 = $vB
/* 53329*/      OPC_RecordChild3, // #2 = $vC
/* 53330*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53332*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMUHM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4848:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMUHM:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 53341*/    /*Scope*/ 17, /*->53359*/
/* 53342*/      OPC_CheckChild0Integer, 113|128,37/*4849*/, 
/* 53345*/      OPC_RecordChild1, // #0 = $vA
/* 53346*/      OPC_RecordChild2, // #1 = $vB
/* 53347*/      OPC_RecordChild3, // #2 = $vC
/* 53348*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53350*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMUHS), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4849:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMUHS:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 53359*/    /*Scope*/ 15, /*->53375*/
/* 53360*/      OPC_CheckChild0Integer, 114|128,37/*4850*/, 
/* 53363*/      OPC_RecordChild1, // #0 = $vA
/* 53364*/      OPC_RecordChild2, // #1 = $vB
/* 53365*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53367*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULESB), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4850:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMULESB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53375*/    /*Scope*/ 15, /*->53391*/
/* 53376*/      OPC_CheckChild0Integer, 115|128,37/*4851*/, 
/* 53379*/      OPC_RecordChild1, // #0 = $vA
/* 53380*/      OPC_RecordChild2, // #1 = $vB
/* 53381*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53383*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULESH), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4851:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMULESH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53391*/    /*Scope*/ 15, /*->53407*/
/* 53392*/      OPC_CheckChild0Integer, 117|128,37/*4853*/, 
/* 53395*/      OPC_RecordChild1, // #0 = $vA
/* 53396*/      OPC_RecordChild2, // #1 = $vB
/* 53397*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53399*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULEUB), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4853:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMULEUB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53407*/    /*Scope*/ 15, /*->53423*/
/* 53408*/      OPC_CheckChild0Integer, 118|128,37/*4854*/, 
/* 53411*/      OPC_RecordChild1, // #0 = $vA
/* 53412*/      OPC_RecordChild2, // #1 = $vB
/* 53413*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53415*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULEUH), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4854:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMULEUH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53423*/    /*Scope*/ 15, /*->53439*/
/* 53424*/      OPC_CheckChild0Integer, 120|128,37/*4856*/, 
/* 53427*/      OPC_RecordChild1, // #0 = $vA
/* 53428*/      OPC_RecordChild2, // #1 = $vB
/* 53429*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53431*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOSB), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4856:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMULOSB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53439*/    /*Scope*/ 15, /*->53455*/
/* 53440*/      OPC_CheckChild0Integer, 121|128,37/*4857*/, 
/* 53443*/      OPC_RecordChild1, // #0 = $vA
/* 53444*/      OPC_RecordChild2, // #1 = $vB
/* 53445*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53447*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOSH), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4857:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMULOSH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53455*/    /*Scope*/ 15, /*->53471*/
/* 53456*/      OPC_CheckChild0Integer, 123|128,37/*4859*/, 
/* 53459*/      OPC_RecordChild1, // #0 = $vA
/* 53460*/      OPC_RecordChild2, // #1 = $vB
/* 53461*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53463*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOUB), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4859:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMULOUB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53471*/    /*Scope*/ 15, /*->53487*/
/* 53472*/      OPC_CheckChild0Integer, 124|128,37/*4860*/, 
/* 53475*/      OPC_RecordChild1, // #0 = $vA
/* 53476*/      OPC_RecordChild2, // #1 = $vB
/* 53477*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53479*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOUH), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4860:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMULOUH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53487*/    /*Scope*/ 15, /*->53503*/
/* 53488*/      OPC_CheckChild0Integer, 44|128,38/*4908*/, 
/* 53491*/      OPC_RecordChild1, // #0 = $vA
/* 53492*/      OPC_RecordChild2, // #1 = $vB
/* 53493*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53495*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBCUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4908:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUBCUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53503*/    /*Scope*/ 15, /*->53519*/
/* 53504*/      OPC_CheckChild0Integer, 47|128,38/*4911*/, 
/* 53507*/      OPC_RecordChild1, // #0 = $vA
/* 53508*/      OPC_RecordChild2, // #1 = $vB
/* 53509*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53511*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBSBS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4911:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSUBSBS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53519*/    /*Scope*/ 15, /*->53535*/
/* 53520*/      OPC_CheckChild0Integer, 48|128,38/*4912*/, 
/* 53523*/      OPC_RecordChild1, // #0 = $vA
/* 53524*/      OPC_RecordChild2, // #1 = $vB
/* 53525*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53527*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBSHS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4912:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSUBSHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53535*/    /*Scope*/ 15, /*->53551*/
/* 53536*/      OPC_CheckChild0Integer, 49|128,38/*4913*/, 
/* 53539*/      OPC_RecordChild1, // #0 = $vA
/* 53540*/      OPC_RecordChild2, // #1 = $vB
/* 53541*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53543*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBSWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4913:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUBSWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53551*/    /*Scope*/ 15, /*->53567*/
/* 53552*/      OPC_CheckChild0Integer, 50|128,38/*4914*/, 
/* 53555*/      OPC_RecordChild1, // #0 = $vA
/* 53556*/      OPC_RecordChild2, // #1 = $vB
/* 53557*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53559*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUBS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4914:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSUBUBS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53567*/    /*Scope*/ 15, /*->53583*/
/* 53568*/      OPC_CheckChild0Integer, 51|128,38/*4915*/, 
/* 53571*/      OPC_RecordChild1, // #0 = $vA
/* 53572*/      OPC_RecordChild2, // #1 = $vB
/* 53573*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53575*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUHS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4915:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSUBUHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53583*/    /*Scope*/ 15, /*->53599*/
/* 53584*/      OPC_CheckChild0Integer, 52|128,38/*4916*/, 
/* 53587*/      OPC_RecordChild1, // #0 = $vA
/* 53588*/      OPC_RecordChild2, // #1 = $vB
/* 53589*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53591*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4916:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUBUWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53599*/    /*Scope*/ 15, /*->53615*/
/* 53600*/      OPC_CheckChild0Integer, 57|128,38/*4921*/, 
/* 53603*/      OPC_RecordChild1, // #0 = $vA
/* 53604*/      OPC_RecordChild2, // #1 = $vB
/* 53605*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53607*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUMSWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4921:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUMSWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53615*/    /*Scope*/ 15, /*->53631*/
/* 53616*/      OPC_CheckChild0Integer, 53|128,38/*4917*/, 
/* 53619*/      OPC_RecordChild1, // #0 = $vA
/* 53620*/      OPC_RecordChild2, // #1 = $vB
/* 53621*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53623*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUM2SWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4917:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUM2SWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53631*/    /*Scope*/ 15, /*->53647*/
/* 53632*/      OPC_CheckChild0Integer, 54|128,38/*4918*/, 
/* 53635*/      OPC_RecordChild1, // #0 = $vA
/* 53636*/      OPC_RecordChild2, // #1 = $vB
/* 53637*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53639*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUM4SBS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4918:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUM4SBS:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53647*/    /*Scope*/ 15, /*->53663*/
/* 53648*/      OPC_CheckChild0Integer, 55|128,38/*4919*/, 
/* 53651*/      OPC_RecordChild1, // #0 = $vA
/* 53652*/      OPC_RecordChild2, // #1 = $vB
/* 53653*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53655*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUM4SHS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4919:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUM4SHS:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53663*/    /*Scope*/ 15, /*->53679*/
/* 53664*/      OPC_CheckChild0Integer, 56|128,38/*4920*/, 
/* 53667*/      OPC_RecordChild1, // #0 = $vA
/* 53668*/      OPC_RecordChild2, // #1 = $vB
/* 53669*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53671*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUM4UBS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4920:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUM4UBS:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53679*/    /*Scope*/ 15, /*->53695*/
/* 53680*/      OPC_CheckChild0Integer, 18|128,38/*4882*/, 
/* 53683*/      OPC_RecordChild1, // #0 = $vA
/* 53684*/      OPC_RecordChild2, // #1 = $vB
/* 53685*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53687*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4882:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VRLB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53695*/    /*Scope*/ 15, /*->53711*/
/* 53696*/      OPC_CheckChild0Integer, 22|128,38/*4886*/, 
/* 53699*/      OPC_RecordChild1, // #0 = $vA
/* 53700*/      OPC_RecordChild2, // #1 = $vB
/* 53701*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53703*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4886:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VRLH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53711*/    /*Scope*/ 15, /*->53727*/
/* 53712*/      OPC_CheckChild0Integer, 23|128,38/*4887*/, 
/* 53715*/      OPC_RecordChild1, // #0 = $vA
/* 53716*/      OPC_RecordChild2, // #1 = $vB
/* 53717*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53719*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4887:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VRLW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53727*/    /*Scope*/ 15, /*->53743*/
/* 53728*/      OPC_CheckChild0Integer, 28|128,38/*4892*/, 
/* 53731*/      OPC_RecordChild1, // #0 = $vA
/* 53732*/      OPC_RecordChild2, // #1 = $vB
/* 53733*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53735*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSL), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4892:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSL:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53743*/    /*Scope*/ 15, /*->53759*/
/* 53744*/      OPC_CheckChild0Integer, 31|128,38/*4895*/, 
/* 53747*/      OPC_RecordChild1, // #0 = $vA
/* 53748*/      OPC_RecordChild2, // #1 = $vB
/* 53749*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53751*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLO), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4895:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSLO:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53759*/    /*Scope*/ 15, /*->53775*/
/* 53760*/      OPC_CheckChild0Integer, 29|128,38/*4893*/, 
/* 53763*/      OPC_RecordChild1, // #0 = $vA
/* 53764*/      OPC_RecordChild2, // #1 = $vB
/* 53765*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53767*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4893:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSLB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53775*/    /*Scope*/ 15, /*->53791*/
/* 53776*/      OPC_CheckChild0Integer, 30|128,38/*4894*/, 
/* 53779*/      OPC_RecordChild1, // #0 = $vA
/* 53780*/      OPC_RecordChild2, // #1 = $vB
/* 53781*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53783*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4894:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSLH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53791*/    /*Scope*/ 15, /*->53807*/
/* 53792*/      OPC_CheckChild0Integer, 33|128,38/*4897*/, 
/* 53795*/      OPC_RecordChild1, // #0 = $vA
/* 53796*/      OPC_RecordChild2, // #1 = $vB
/* 53797*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53799*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4897:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSLW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53807*/    /*Scope*/ 15, /*->53823*/
/* 53808*/      OPC_CheckChild0Integer, 34|128,38/*4898*/, 
/* 53811*/      OPC_RecordChild1, // #0 = $vA
/* 53812*/      OPC_RecordChild2, // #1 = $vB
/* 53813*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53815*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4898:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53823*/    /*Scope*/ 15, /*->53839*/
/* 53824*/      OPC_CheckChild0Integer, 40|128,38/*4904*/, 
/* 53827*/      OPC_RecordChild1, // #0 = $vA
/* 53828*/      OPC_RecordChild2, // #1 = $vB
/* 53829*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53831*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRO), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4904:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSRO:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53839*/    /*Scope*/ 15, /*->53855*/
/* 53840*/      OPC_CheckChild0Integer, 35|128,38/*4899*/, 
/* 53843*/      OPC_RecordChild1, // #0 = $vA
/* 53844*/      OPC_RecordChild2, // #1 = $vB
/* 53845*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53847*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4899:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSRAB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53855*/    /*Scope*/ 15, /*->53871*/
/* 53856*/      OPC_CheckChild0Integer, 36|128,38/*4900*/, 
/* 53859*/      OPC_RecordChild1, // #0 = $vA
/* 53860*/      OPC_RecordChild2, // #1 = $vB
/* 53861*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53863*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4900:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSRAH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53871*/    /*Scope*/ 15, /*->53887*/
/* 53872*/      OPC_CheckChild0Integer, 37|128,38/*4901*/, 
/* 53875*/      OPC_RecordChild1, // #0 = $vA
/* 53876*/      OPC_RecordChild2, // #1 = $vB
/* 53877*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53879*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4901:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSRAW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53887*/    /*Scope*/ 15, /*->53903*/
/* 53888*/      OPC_CheckChild0Integer, 38|128,38/*4902*/, 
/* 53891*/      OPC_RecordChild1, // #0 = $vA
/* 53892*/      OPC_RecordChild2, // #1 = $vB
/* 53893*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53895*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4902:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSRB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 53903*/    /*Scope*/ 15, /*->53919*/
/* 53904*/      OPC_CheckChild0Integer, 39|128,38/*4903*/, 
/* 53907*/      OPC_RecordChild1, // #0 = $vA
/* 53908*/      OPC_RecordChild2, // #1 = $vB
/* 53909*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53911*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4903:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSRH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53919*/    /*Scope*/ 15, /*->53935*/
/* 53920*/      OPC_CheckChild0Integer, 42|128,38/*4906*/, 
/* 53923*/      OPC_RecordChild1, // #0 = $vA
/* 53924*/      OPC_RecordChild2, // #1 = $vB
/* 53925*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53927*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4906:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSRW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53935*/    /*Scope*/ 15, /*->53951*/
/* 53936*/      OPC_CheckChild0Integer, 0|128,38/*4864*/, 
/* 53939*/      OPC_RecordChild1, // #0 = $vA
/* 53940*/      OPC_RecordChild2, // #1 = $vB
/* 53941*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53943*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKPX), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4864:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPKPX:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53951*/    /*Scope*/ 15, /*->53967*/
/* 53952*/      OPC_CheckChild0Integer, 3|128,38/*4867*/, 
/* 53955*/      OPC_RecordChild1, // #0 = $vA
/* 53956*/      OPC_RecordChild2, // #1 = $vB
/* 53957*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53959*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSHSS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4867:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VPKSHSS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53967*/    /*Scope*/ 15, /*->53983*/
/* 53968*/      OPC_CheckChild0Integer, 4|128,38/*4868*/, 
/* 53971*/      OPC_RecordChild1, // #0 = $vA
/* 53972*/      OPC_RecordChild2, // #1 = $vB
/* 53973*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53975*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSHUS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4868:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VPKSHUS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 53983*/    /*Scope*/ 15, /*->53999*/
/* 53984*/      OPC_CheckChild0Integer, 5|128,38/*4869*/, 
/* 53987*/      OPC_RecordChild1, // #0 = $vA
/* 53988*/      OPC_RecordChild2, // #1 = $vB
/* 53989*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 53991*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSWSS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4869:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPKSWSS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 53999*/    /*Scope*/ 15, /*->54015*/
/* 54000*/      OPC_CheckChild0Integer, 6|128,38/*4870*/, 
/* 54003*/      OPC_RecordChild1, // #0 = $vA
/* 54004*/      OPC_RecordChild2, // #1 = $vB
/* 54005*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54007*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSWUS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4870:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPKSWUS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54015*/    /*Scope*/ 15, /*->54031*/
/* 54016*/      OPC_CheckChild0Integer, 8|128,38/*4872*/, 
/* 54019*/      OPC_RecordChild1, // #0 = $vA
/* 54020*/      OPC_RecordChild2, // #1 = $vB
/* 54021*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54023*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUHUS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4872:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VPKUHUS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 54031*/    /*Scope*/ 15, /*->54047*/
/* 54032*/      OPC_CheckChild0Integer, 9|128,38/*4873*/, 
/* 54035*/      OPC_RecordChild1, // #0 = $vA
/* 54036*/      OPC_RecordChild2, // #1 = $vB
/* 54037*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54039*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUWUS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4873:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPKUWUS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54047*/    /*Scope*/ 13, /*->54061*/
/* 54048*/      OPC_CheckChild0Integer, 58|128,38/*4922*/, 
/* 54051*/      OPC_RecordChild1, // #0 = $vB
/* 54052*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54054*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKHPX), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4922:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VUPKHPX:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vB)
/* 54061*/    /*Scope*/ 13, /*->54075*/
/* 54062*/      OPC_CheckChild0Integer, 59|128,38/*4923*/, 
/* 54065*/      OPC_RecordChild1, // #0 = $vB
/* 54066*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54068*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKHSB), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4923:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VUPKHSB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vB)
/* 54075*/    /*Scope*/ 13, /*->54089*/
/* 54076*/      OPC_CheckChild0Integer, 60|128,38/*4924*/, 
/* 54079*/      OPC_RecordChild1, // #0 = $vB
/* 54080*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54082*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKHSH), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4924:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VUPKHSH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vB)
/* 54089*/    /*Scope*/ 13, /*->54103*/
/* 54090*/      OPC_CheckChild0Integer, 62|128,38/*4926*/, 
/* 54093*/      OPC_RecordChild1, // #0 = $vB
/* 54094*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54096*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKLPX), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4926:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VUPKLPX:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vB)
/* 54103*/    /*Scope*/ 13, /*->54117*/
/* 54104*/      OPC_CheckChild0Integer, 63|128,38/*4927*/, 
/* 54107*/      OPC_RecordChild1, // #0 = $vB
/* 54108*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54110*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKLSB), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4927:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VUPKLSB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vB)
/* 54117*/    /*Scope*/ 13, /*->54131*/
/* 54118*/      OPC_CheckChild0Integer, 64|128,38/*4928*/, 
/* 54121*/      OPC_RecordChild1, // #0 = $vB
/* 54122*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 54124*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKLSH), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4928:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VUPKLSH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vB)
/* 54131*/    /*Scope*/ 15, /*->54147*/
/* 54132*/      OPC_CheckChild0Integer, 116|128,37/*4852*/, 
/* 54135*/      OPC_RecordChild1, // #0 = $vA
/* 54136*/      OPC_RecordChild2, // #1 = $vB
/* 54137*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54139*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULESW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4852:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMULESW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54147*/    /*Scope*/ 15, /*->54163*/
/* 54148*/      OPC_CheckChild0Integer, 119|128,37/*4855*/, 
/* 54151*/      OPC_RecordChild1, // #0 = $vA
/* 54152*/      OPC_RecordChild2, // #1 = $vB
/* 54153*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54155*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULEUW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4855:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMULEUW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54163*/    /*Scope*/ 15, /*->54179*/
/* 54164*/      OPC_CheckChild0Integer, 122|128,37/*4858*/, 
/* 54167*/      OPC_RecordChild1, // #0 = $vA
/* 54168*/      OPC_RecordChild2, // #1 = $vB
/* 54169*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54171*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOSW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4858:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMULOSW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54179*/    /*Scope*/ 15, /*->54195*/
/* 54180*/      OPC_CheckChild0Integer, 125|128,37/*4861*/, 
/* 54183*/      OPC_RecordChild1, // #0 = $vA
/* 54184*/      OPC_RecordChild2, // #1 = $vB
/* 54185*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54187*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOUW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4861:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMULOUW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54195*/    /*Scope*/ 15, /*->54211*/
/* 54196*/      OPC_CheckChild0Integer, 89|128,37/*4825*/, 
/* 54199*/      OPC_RecordChild1, // #0 = $vA
/* 54200*/      OPC_RecordChild2, // #1 = $vB
/* 54201*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54203*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4825:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VMAXSD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54211*/    /*Scope*/ 15, /*->54227*/
/* 54212*/      OPC_CheckChild0Integer, 93|128,37/*4829*/, 
/* 54215*/      OPC_RecordChild1, // #0 = $vA
/* 54216*/      OPC_RecordChild2, // #1 = $vB
/* 54217*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54219*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4829:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VMAXUD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54227*/    /*Scope*/ 15, /*->54243*/
/* 54228*/      OPC_CheckChild0Integer, 100|128,37/*4836*/, 
/* 54231*/      OPC_RecordChild1, // #0 = $vA
/* 54232*/      OPC_RecordChild2, // #1 = $vB
/* 54233*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54235*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4836:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VMINSD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54243*/    /*Scope*/ 15, /*->54259*/
/* 54244*/      OPC_CheckChild0Integer, 104|128,37/*4840*/, 
/* 54247*/      OPC_RecordChild1, // #0 = $vA
/* 54248*/      OPC_RecordChild2, // #1 = $vB
/* 54249*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54251*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4840:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VMINUD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54259*/    /*Scope*/ 15, /*->54275*/
/* 54260*/      OPC_CheckChild0Integer, 19|128,38/*4883*/, 
/* 54263*/      OPC_RecordChild1, // #0 = $vA
/* 54264*/      OPC_RecordChild2, // #1 = $vB
/* 54265*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54267*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4883:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VRLD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54275*/    /*Scope*/ 17, /*->54293*/
/* 54276*/      OPC_CheckChild0Integer, 19|128,37/*4755*/, 
/* 54279*/      OPC_RecordChild1, // #0 = $vA
/* 54280*/      OPC_RecordChild2, // #1 = $vB
/* 54281*/      OPC_RecordChild3, // #2 = $vC
/* 54282*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54284*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDEUQM), 0,
                    MVT::v1i128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 4755:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC) - Complexity = 8
                // Dst: (VADDEUQM:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC)
/* 54293*/    /*Scope*/ 15, /*->54309*/
/* 54294*/      OPC_CheckChild0Integer, 16|128,37/*4752*/, 
/* 54297*/      OPC_RecordChild1, // #0 = $vA
/* 54298*/      OPC_RecordChild2, // #1 = $vB
/* 54299*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54301*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDCUQ), 0,
                    MVT::v1i128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 4752:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 8
                // Dst: (VADDCUQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB)
/* 54309*/    /*Scope*/ 17, /*->54327*/
/* 54310*/      OPC_CheckChild0Integer, 18|128,37/*4754*/, 
/* 54313*/      OPC_RecordChild1, // #0 = $vA
/* 54314*/      OPC_RecordChild2, // #1 = $vB
/* 54315*/      OPC_RecordChild3, // #2 = $vC
/* 54316*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54318*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDECUQ), 0,
                    MVT::v1i128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 4754:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC) - Complexity = 8
                // Dst: (VADDECUQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC)
/* 54327*/    /*Scope*/ 17, /*->54345*/
/* 54328*/      OPC_CheckChild0Integer, 46|128,38/*4910*/, 
/* 54331*/      OPC_RecordChild1, // #0 = $vA
/* 54332*/      OPC_RecordChild2, // #1 = $vB
/* 54333*/      OPC_RecordChild3, // #2 = $vC
/* 54334*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54336*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBEUQM), 0,
                    MVT::v1i128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 4910:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC) - Complexity = 8
                // Dst: (VSUBEUQM:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC)
/* 54345*/    /*Scope*/ 15, /*->54361*/
/* 54346*/      OPC_CheckChild0Integer, 43|128,38/*4907*/, 
/* 54349*/      OPC_RecordChild1, // #0 = $vA
/* 54350*/      OPC_RecordChild2, // #1 = $vB
/* 54351*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54353*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBCUQ), 0,
                    MVT::v1i128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 4907:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 8
                // Dst: (VSUBCUQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB)
/* 54361*/    /*Scope*/ 17, /*->54379*/
/* 54362*/      OPC_CheckChild0Integer, 45|128,38/*4909*/, 
/* 54365*/      OPC_RecordChild1, // #0 = $vA
/* 54366*/      OPC_RecordChild2, // #1 = $vB
/* 54367*/      OPC_RecordChild3, // #2 = $vC
/* 54368*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54370*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBECUQ), 0,
                    MVT::v1i128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 4909:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC) - Complexity = 8
                // Dst: (VSUBECUQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC)
/* 54379*/    /*Scope*/ 15, /*->54395*/
/* 54380*/      OPC_CheckChild0Integer, 114|128,36/*4722*/, 
/* 54383*/      OPC_RecordChild1, // #0 = $vA
/* 54384*/      OPC_RecordChild2, // #1 = $vB
/* 54385*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54387*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPMSUMB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4722:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VPMSUMB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 54395*/    /*Scope*/ 15, /*->54411*/
/* 54396*/      OPC_CheckChild0Integer, 116|128,36/*4724*/, 
/* 54399*/      OPC_RecordChild1, // #0 = $vA
/* 54400*/      OPC_RecordChild2, // #1 = $vB
/* 54401*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54403*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPMSUMH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4724:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VPMSUMH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 54411*/    /*Scope*/ 15, /*->54427*/
/* 54412*/      OPC_CheckChild0Integer, 117|128,36/*4725*/, 
/* 54415*/      OPC_RecordChild1, // #0 = $vA
/* 54416*/      OPC_RecordChild2, // #1 = $vB
/* 54417*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54419*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPMSUMW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4725:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPMSUMW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54427*/    /*Scope*/ 15, /*->54443*/
/* 54428*/      OPC_CheckChild0Integer, 115|128,36/*4723*/, 
/* 54431*/      OPC_RecordChild1, // #0 = $vA
/* 54432*/      OPC_RecordChild2, // #1 = $vB
/* 54433*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54435*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPMSUMD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4723:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPMSUMD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54443*/    /*Scope*/ 17, /*->54461*/
/* 54444*/      OPC_CheckChild0Integer, 113|128,36/*4721*/, 
/* 54447*/      OPC_RecordChild1, // #0 = $vA
/* 54448*/      OPC_RecordChild2, // #1 = $vB
/* 54449*/      OPC_RecordChild3, // #2 = $vC
/* 54450*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54452*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPERMXOR), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4721:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v16i8:{ *:[v16i8] }:$vC) - Complexity = 8
                // Dst: (VPERMXOR:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v16i8:{ *:[v16i8] }:$vC)
/* 54461*/    /*Scope*/ 15, /*->54477*/
/* 54462*/      OPC_CheckChild0Integer, 1|128,38/*4865*/, 
/* 54465*/      OPC_RecordChild1, // #0 = $vA
/* 54466*/      OPC_RecordChild2, // #1 = $vB
/* 54467*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54469*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSDSS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4865:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPKSDSS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54477*/    /*Scope*/ 15, /*->54493*/
/* 54478*/      OPC_CheckChild0Integer, 2|128,38/*4866*/, 
/* 54481*/      OPC_RecordChild1, // #0 = $vA
/* 54482*/      OPC_RecordChild2, // #1 = $vB
/* 54483*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54485*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSDUS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4866:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPKSDUS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54493*/    /*Scope*/ 15, /*->54509*/
/* 54494*/      OPC_CheckChild0Integer, 7|128,38/*4871*/, 
/* 54497*/      OPC_RecordChild1, // #0 = $vA
/* 54498*/      OPC_RecordChild2, // #1 = $vB
/* 54499*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54501*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4871:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPKUDUS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54509*/    /*Scope*/ 13, /*->54523*/
/* 54510*/      OPC_CheckChild0Integer, 61|128,38/*4925*/, 
/* 54513*/      OPC_RecordChild1, // #0 = $vB
/* 54514*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54516*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKHSW), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4925:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VUPKHSW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vB)
/* 54523*/    /*Scope*/ 13, /*->54537*/
/* 54524*/      OPC_CheckChild0Integer, 65|128,38/*4929*/, 
/* 54527*/      OPC_RecordChild1, // #0 = $vB
/* 54528*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54530*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKLSW), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4929:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VUPKLSW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vB)
/* 54537*/    /*Scope*/ 13, /*->54551*/
/* 54538*/      OPC_CheckChild0Integer, 84|128,37/*4820*/, 
/* 54541*/      OPC_RecordChild1, // #0 = $vB
/* 54542*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54544*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VGBBD), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4820:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VGBBD:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB)
/* 54551*/    /*Scope*/ 15, /*->54567*/
/* 54552*/      OPC_CheckChild0Integer, 32|128,37/*4768*/, 
/* 54555*/      OPC_RecordChild1, // #0 = $vA
/* 54556*/      OPC_RecordChild2, // #1 = $vB
/* 54557*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 54559*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VBPERMQ), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4768:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VBPERMQ:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 54567*/    /*Scope*/ 15, /*->54583*/
/* 54568*/      OPC_CheckChild0Integer, 109|128,36/*4717*/, 
/* 54571*/      OPC_RecordChild1, // #0 = $vA
/* 54572*/      OPC_RecordChild2, // #1 = $vB
/* 54573*/      OPC_CheckPatternPredicate, 38, // (PPCSubTarget->hasP8Crypto())
/* 54575*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCIPHER), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4717:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VCIPHER:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54583*/    /*Scope*/ 15, /*->54599*/
/* 54584*/      OPC_CheckChild0Integer, 110|128,36/*4718*/, 
/* 54587*/      OPC_RecordChild1, // #0 = $vA
/* 54588*/      OPC_RecordChild2, // #1 = $vB
/* 54589*/      OPC_CheckPatternPredicate, 38, // (PPCSubTarget->hasP8Crypto())
/* 54591*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCIPHERLAST), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4718:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VCIPHERLAST:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54599*/    /*Scope*/ 15, /*->54615*/
/* 54600*/      OPC_CheckChild0Integer, 111|128,36/*4719*/, 
/* 54603*/      OPC_RecordChild1, // #0 = $vA
/* 54604*/      OPC_RecordChild2, // #1 = $vB
/* 54605*/      OPC_CheckPatternPredicate, 38, // (PPCSubTarget->hasP8Crypto())
/* 54607*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VNCIPHER), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4719:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VNCIPHER:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54615*/    /*Scope*/ 15, /*->54631*/
/* 54616*/      OPC_CheckChild0Integer, 112|128,36/*4720*/, 
/* 54619*/      OPC_RecordChild1, // #0 = $vA
/* 54620*/      OPC_RecordChild2, // #1 = $vB
/* 54621*/      OPC_CheckPatternPredicate, 38, // (PPCSubTarget->hasP8Crypto())
/* 54623*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VNCIPHERLAST), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4720:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VNCIPHERLAST:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54631*/    /*Scope*/ 13, /*->54645*/
/* 54632*/      OPC_CheckChild0Integer, 118|128,36/*4726*/, 
/* 54635*/      OPC_RecordChild1, // #0 = $vA
/* 54636*/      OPC_CheckPatternPredicate, 38, // (PPCSubTarget->hasP8Crypto())
/* 54638*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSBOX), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4726:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA) - Complexity = 8
                // Dst: (VSBOX:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA)
/* 54645*/    /*Scope*/ 13, /*->54659*/
/* 54646*/      OPC_CheckChild0Integer, 12|128,38/*4876*/, 
/* 54649*/      OPC_RecordChild1, // #0 = $vB
/* 54650*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54652*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPRTYBW), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4876:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPRTYBW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB)
/* 54659*/    /*Scope*/ 13, /*->54673*/
/* 54660*/      OPC_CheckChild0Integer, 10|128,38/*4874*/, 
/* 54663*/      OPC_RecordChild1, // #0 = $vB
/* 54664*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54666*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPRTYBD), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4874:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPRTYBD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB)
/* 54673*/    /*Scope*/ 13, /*->54687*/
/* 54674*/      OPC_CheckChild0Integer, 11|128,38/*4875*/, 
/* 54677*/      OPC_RecordChild1, // #0 = $vB
/* 54678*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54680*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPRTYBQ), 0,
                    MVT::v1i128, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 4875:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vB) - Complexity = 8
                // Dst: (VPRTYBQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vB)
/* 54687*/    /*Scope*/ 15, /*->54703*/
/* 54688*/      OPC_CheckChild0Integer, 25|128,38/*4889*/, 
/* 54691*/      OPC_RecordChild1, // #0 = $vA
/* 54692*/      OPC_RecordChild2, // #1 = $vB
/* 54693*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54695*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLWNM), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4889:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VRLWNM:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54703*/    /*Scope*/ 17, /*->54721*/
/* 54704*/      OPC_CheckChild0Integer, 24|128,38/*4888*/, 
/* 54707*/      OPC_RecordChild1, // #0 = $vA
/* 54708*/      OPC_RecordChild2, // #1 = $vB
/* 54709*/      OPC_RecordChild3, // #2 = $vDi
/* 54710*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54712*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLWMI), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4888:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vDi) - Complexity = 8
                // Dst: (VRLWMI:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vDi)
/* 54721*/    /*Scope*/ 15, /*->54737*/
/* 54722*/      OPC_CheckChild0Integer, 21|128,38/*4885*/, 
/* 54725*/      OPC_RecordChild1, // #0 = $vA
/* 54726*/      OPC_RecordChild2, // #1 = $vB
/* 54727*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54729*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLDNM), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4885:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VRLDNM:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 54737*/    /*Scope*/ 17, /*->54755*/
/* 54738*/      OPC_CheckChild0Integer, 20|128,38/*4884*/, 
/* 54741*/      OPC_RecordChild1, // #0 = $vA
/* 54742*/      OPC_RecordChild2, // #1 = $vB
/* 54743*/      OPC_RecordChild3, // #2 = $vDi
/* 54744*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54746*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLDMI), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 4884:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, v2i64:{ *:[v2i64] }:$vDi) - Complexity = 8
                // Dst: (VRLDMI:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, v2i64:{ *:[v2i64] }:$vDi)
/* 54755*/    /*Scope*/ 15, /*->54771*/
/* 54756*/      OPC_CheckChild0Integer, 32|128,38/*4896*/, 
/* 54759*/      OPC_RecordChild1, // #0 = $vA
/* 54760*/      OPC_RecordChild2, // #1 = $vB
/* 54761*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54763*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLV), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4896:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSLV:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 54771*/    /*Scope*/ 15, /*->54787*/
/* 54772*/      OPC_CheckChild0Integer, 41|128,38/*4905*/, 
/* 54775*/      OPC_RecordChild1, // #0 = $vA
/* 54776*/      OPC_RecordChild2, // #1 = $vB
/* 54777*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54779*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRV), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4905:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSRV:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 54787*/    /*Scope*/ 15, /*->54803*/
/* 54788*/      OPC_CheckChild0Integer, 13|128,37/*4749*/, 
/* 54791*/      OPC_RecordChild1, // #0 = $vA
/* 54792*/      OPC_RecordChild2, // #1 = $vB
/* 54793*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54795*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 4749:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VABSDUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 54803*/    /*Scope*/ 15, /*->54819*/
/* 54804*/      OPC_CheckChild0Integer, 14|128,37/*4750*/, 
/* 54807*/      OPC_RecordChild1, // #0 = $vA
/* 54808*/      OPC_RecordChild2, // #1 = $vB
/* 54809*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54811*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 4750:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VABSDUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 54819*/    /*Scope*/ 15, /*->54835*/
/* 54820*/      OPC_CheckChild0Integer, 15|128,37/*4751*/, 
/* 54823*/      OPC_RecordChild1, // #0 = $vA
/* 54824*/      OPC_RecordChild2, // #1 = $vB
/* 54825*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 54827*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 4751:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VABSDUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 54835*/    /*Scope*/ 13, /*->54849*/
/* 54836*/      OPC_CheckChild0Integer, 94|128,39/*5086*/, 
/* 54839*/      OPC_RecordChild1, // #0 = $XB
/* 54840*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54842*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5086:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCVDPSP:{ *:[v4f32] } v2f64:{ *:[v2f64] }:$XB)
/* 54849*/    /*Scope*/ 13, /*->54863*/
/* 54850*/      OPC_CheckChild0Integer, 98|128,39/*5090*/, 
/* 54853*/      OPC_RecordChild1, // #0 = $XB
/* 54854*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54856*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5090:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCVSPDP:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$XB)
/* 54863*/    /*Scope*/ 13, /*->54877*/
/* 54864*/      OPC_CheckChild0Integer, 100|128,39/*5092*/, 
/* 54867*/      OPC_RecordChild1, // #0 = $XB
/* 54868*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54870*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5092:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$XB) - Complexity = 408
                // Dst: (XVCVSXDSP:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$XB)
/* 54877*/    /*Scope*/ 13, /*->54891*/
/* 54878*/      OPC_CheckChild0Integer, 101|128,39/*5093*/, 
/* 54881*/      OPC_RecordChild1, // #0 = $XB
/* 54882*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54884*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5093:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XB) - Complexity = 408
                // Dst: (XVCVSXWDP:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$XB)
/* 54891*/    /*Scope*/ 13, /*->54905*/
/* 54892*/      OPC_CheckChild0Integer, 102|128,39/*5094*/, 
/* 54895*/      OPC_RecordChild1, // #0 = $XB
/* 54896*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54898*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5094:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$XB) - Complexity = 408
                // Dst: (XVCVUXDSP:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$XB)
/* 54905*/    /*Scope*/ 13, /*->54919*/
/* 54906*/      OPC_CheckChild0Integer, 103|128,39/*5095*/, 
/* 54909*/      OPC_RecordChild1, // #0 = $XB
/* 54910*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54912*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVUXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5095:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XB) - Complexity = 408
                // Dst: (XVCVUXWDP:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$XB)
/* 54919*/    /*Scope*/ 15, /*->54935*/
/* 54920*/      OPC_CheckChild0Integer, 108|128,39/*5100*/, 
/* 54923*/      OPC_RecordChild1, // #0 = $XA
/* 54924*/      OPC_RecordChild2, // #1 = $XB
/* 54925*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54927*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMAXDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5100:{ *:[iPTR] }, vsrc:{ *:[v2f64] }:$XA, vsrc:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVMAXDP:{ *:[v2f64] } vsrc:{ *:[v2f64] }:$XA, vsrc:{ *:[v2f64] }:$XB)
/* 54935*/    /*Scope*/ 15, /*->54951*/
/* 54936*/      OPC_CheckChild0Integer, 110|128,39/*5102*/, 
/* 54939*/      OPC_RecordChild1, // #0 = $XA
/* 54940*/      OPC_RecordChild2, // #1 = $XB
/* 54941*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54943*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMINDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5102:{ *:[iPTR] }, vsrc:{ *:[v2f64] }:$XA, vsrc:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVMINDP:{ *:[v2f64] } vsrc:{ *:[v2f64] }:$XA, vsrc:{ *:[v2f64] }:$XB)
/* 54951*/    /*Scope*/ 15, /*->54967*/
/* 54952*/      OPC_CheckChild0Integer, 109|128,39/*5101*/, 
/* 54955*/      OPC_RecordChild1, // #0 = $XA
/* 54956*/      OPC_RecordChild2, // #1 = $XB
/* 54957*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54959*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMAXSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5101:{ *:[iPTR] }, vsrc:{ *:[v4f32] }:$XA, vsrc:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVMAXSP:{ *:[v4f32] } vsrc:{ *:[v4f32] }:$XA, vsrc:{ *:[v4f32] }:$XB)
/* 54967*/    /*Scope*/ 15, /*->54983*/
/* 54968*/      OPC_CheckChild0Integer, 111|128,39/*5103*/, 
/* 54971*/      OPC_RecordChild1, // #0 = $XA
/* 54972*/      OPC_RecordChild2, // #1 = $XB
/* 54973*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54975*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMINSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5103:{ *:[iPTR] }, vsrc:{ *:[v4f32] }:$XA, vsrc:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVMINSP:{ *:[v4f32] } vsrc:{ *:[v4f32] }:$XA, vsrc:{ *:[v4f32] }:$XB)
/* 54983*/    /*Scope*/ 15, /*->54999*/
/* 54984*/      OPC_CheckChild0Integer, 105|128,39/*5097*/, 
/* 54987*/      OPC_RecordChild1, // #0 = $A
/* 54988*/      OPC_RecordChild2, // #1 = $B
/* 54989*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 54991*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVDIVSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5097:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A, v4f32:{ *:[v4f32] }:$B) - Complexity = 408
                // Dst: (XVDIVSP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B)
/* 54999*/    /*Scope*/ 15, /*->55015*/
/* 55000*/      OPC_CheckChild0Integer, 104|128,39/*5096*/, 
/* 55003*/      OPC_RecordChild1, // #0 = $A
/* 55004*/      OPC_RecordChild2, // #1 = $B
/* 55005*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 55007*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVDIVDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5096:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$A, v2f64:{ *:[v2f64] }:$B) - Complexity = 408
                // Dst: (XVDIVDP:{ *:[v2f64] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$B)
/* 55015*/    /*Scope*/ 13, /*->55029*/
/* 55016*/      OPC_CheckChild0Integer, 114|128,39/*5106*/, 
/* 55019*/      OPC_RecordChild1, // #0 = $A
/* 55020*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 55022*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRESP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5106:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A) - Complexity = 408
                // Dst: (XVRESP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A)
/* 55029*/    /*Scope*/ 13, /*->55043*/
/* 55030*/      OPC_CheckChild0Integer, 113|128,39/*5105*/, 
/* 55033*/      OPC_RecordChild1, // #0 = $A
/* 55034*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 55036*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVREDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5105:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$A) - Complexity = 408
                // Dst: (XVREDP:{ *:[v2f64] } ?:{ *:[v2f64] }:$A)
/* 55043*/    /*Scope*/ 13, /*->55057*/
/* 55044*/      OPC_CheckChild0Integer, 117|128,39/*5109*/, 
/* 55047*/      OPC_RecordChild1, // #0 = $A
/* 55048*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 55050*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSQRTESP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5109:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A) - Complexity = 408
                // Dst: (XVRSQRTESP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A)
/* 55057*/    /*Scope*/ 13, /*->55071*/
/* 55058*/      OPC_CheckChild0Integer, 116|128,39/*5108*/, 
/* 55061*/      OPC_RecordChild1, // #0 = $A
/* 55062*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 55064*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSQRTEDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5108:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$A) - Complexity = 408
                // Dst: (XVRSQRTEDP:{ *:[v2f64] } ?:{ *:[v2f64] }:$A)
/* 55071*/    /*Scope*/ 13, /*->55085*/
/* 55072*/      OPC_CheckChild0Integer, 99|128,39/*5091*/, 
/* 55075*/      OPC_RecordChild1, // #0 = $XB
/* 55076*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 55078*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPHP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5091:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCVSPHP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 55085*/    /*Scope*/ 15, /*->55101*/
/* 55086*/      OPC_CheckChild0Integer, 106|128,39/*5098*/, 
/* 55089*/      OPC_RecordChild1, // #0 = $XA
/* 55090*/      OPC_RecordChild2, // #1 = $XB
/* 55091*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 55093*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVIEXPDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5098:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$XA, v2i64:{ *:[v2i64] }:$XB) - Complexity = 408
                // Dst: (XVIEXPDP:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$XA, v2i64:{ *:[v2i64] }:$XB)
/* 55101*/    /*Scope*/ 15, /*->55117*/
/* 55102*/      OPC_CheckChild0Integer, 107|128,39/*5099*/, 
/* 55105*/      OPC_RecordChild1, // #0 = $XA
/* 55106*/      OPC_RecordChild2, // #1 = $XB
/* 55107*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 55109*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVIEXPSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5099:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB) - Complexity = 408
                // Dst: (XVIEXPSP:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 55117*/    /*Scope*/ 24, /*->55142*/
/* 55118*/      OPC_CheckChild0Integer, 97|128,39/*5089*/, 
/* 55121*/      OPC_RecordChild1, // #0 = $A
/* 55122*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 55124*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 55127*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 55135*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVHPSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5089:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$A) - Complexity = 408
                // Dst: (XVCVHPSP:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$A, VSRC:{ *:[i32] }))
/* 55142*/    /*Scope*/ 17, /*->55160*/
/* 55143*/      OPC_CheckChild0Integer, 31|128,39/*5023*/, 
/* 55146*/      OPC_RecordChild1, // #0 = $src
/* 55147*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55149*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 55152*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLPCLDX), 0,
                    MVT::v4f64, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5023:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLPCLDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 55160*/    /*Scope*/ 17, /*->55178*/
/* 55161*/      OPC_CheckChild0Integer, 32|128,39/*5024*/, 
/* 55164*/      OPC_RecordChild1, // #0 = $src
/* 55165*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55167*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 55170*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLPCLSX), 0,
                    MVT::v4f64, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5024:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLPCLSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 55178*/    /*Scope*/ 17, /*->55196*/
/* 55179*/      OPC_CheckChild0Integer, 33|128,39/*5025*/, 
/* 55182*/      OPC_RecordChild1, // #0 = $src
/* 55183*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55185*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 55188*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLPCRDX), 0,
                    MVT::v4f64, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5025:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLPCRDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 55196*/    /*Scope*/ 17, /*->55214*/
/* 55197*/      OPC_CheckChild0Integer, 34|128,39/*5026*/, 
/* 55200*/      OPC_RecordChild1, // #0 = $src
/* 55201*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55203*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 55206*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLPCRSX), 0,
                    MVT::v4f64, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5026:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLPCRSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 55214*/    /*Scope*/ 37, /*->55252*/
/* 55215*/      OPC_CheckChild0Integer, 33|128,37/*4769*/, 
/* 55218*/      OPC_RecordChild1, // #0 = $vB
/* 55219*/      OPC_Scope, 11, /*->55232*/ // 2 children in Scope
/* 55221*/        OPC_CheckChild2Integer, 0, 
/* 55223*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55225*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFSX_0), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4769:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (VCFSX_0:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$vB)
/* 55232*/      /*Scope*/ 18, /*->55251*/
/* 55233*/        OPC_RecordChild2, // #1 = $UIMM
/* 55234*/        OPC_MoveChild2,
/* 55235*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55238*/        OPC_MoveParent,
/* 55239*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55241*/        OPC_EmitConvertToTarget, 1,
/* 55243*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFSX), 0,
                      MVT::v4f32, 2/*#Ops*/, 2, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4769:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB, (imm:{ *:[i32] }):$UIMM) - Complexity = 11
                  // Dst: (VCFSX:{ *:[v4f32] } (imm:{ *:[i32] }):$UIMM, v4i32:{ *:[v4i32] }:$vB)
/* 55251*/      0, /*End of Scope*/
/* 55252*/    /*Scope*/ 37, /*->55290*/
/* 55253*/      OPC_CheckChild0Integer, 34|128,37/*4770*/, 
/* 55256*/      OPC_RecordChild1, // #0 = $vB
/* 55257*/      OPC_Scope, 11, /*->55270*/ // 2 children in Scope
/* 55259*/        OPC_CheckChild2Integer, 0, 
/* 55261*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55263*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFUX_0), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4770:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (VCFUX_0:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$vB)
/* 55270*/      /*Scope*/ 18, /*->55289*/
/* 55271*/        OPC_RecordChild2, // #1 = $UIMM
/* 55272*/        OPC_MoveChild2,
/* 55273*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55276*/        OPC_MoveParent,
/* 55277*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55279*/        OPC_EmitConvertToTarget, 1,
/* 55281*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFUX), 0,
                      MVT::v4f32, 2/*#Ops*/, 2, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4770:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB, (imm:{ *:[i32] }):$UIMM) - Complexity = 11
                  // Dst: (VCFUX:{ *:[v4f32] } (imm:{ *:[i32] }):$UIMM, v4i32:{ *:[v4i32] }:$vB)
/* 55289*/      0, /*End of Scope*/
/* 55290*/    /*Scope*/ 22, /*->55313*/
/* 55291*/      OPC_CheckChild0Integer, 18|128,39/*5010*/, 
/* 55294*/      OPC_RecordChild1, // #0 = $idx
/* 55295*/      OPC_MoveChild1,
/* 55296*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55299*/      OPC_CheckPredicate, 37, // Predicate_u12
/* 55301*/      OPC_MoveParent,
/* 55302*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55304*/      OPC_EmitConvertToTarget, 0,
/* 55306*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVGPCI), 0,
                    MVT::v4f64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5010:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_u12>>:$idx) - Complexity = 12
                // Dst: (QVGPCI:{ *:[v4f64] } (imm:{ *:[i32] }):$idx)
/* 55313*/    /*Scope*/ 24, /*->55338*/
/* 55314*/      OPC_CheckChild0Integer, 109|128,38/*4973*/, 
/* 55317*/      OPC_RecordChild1, // #0 = $A
/* 55318*/      OPC_RecordChild2, // #1 = $B
/* 55319*/      OPC_RecordChild3, // #2 = $idx
/* 55320*/      OPC_MoveChild3,
/* 55321*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 55324*/      OPC_MoveParent,
/* 55325*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55327*/      OPC_EmitConvertToTarget, 2,
/* 55329*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICAL), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4973:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, (imm:{ *:[i32] }):$idx) - Complexity = 11
                // Dst: (QVFLOGICAL:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, (imm:{ *:[i32] }):$idx)
/* 55338*/    /*Scope*/ 13, /*->55352*/
/* 55339*/      OPC_CheckChild0Integer, 83|128,37/*4819*/, 
/* 55342*/      OPC_RecordChild1, // #0 = $vB
/* 55343*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55345*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXPTEFP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4819:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VEXPTEFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 55352*/    /*Scope*/ 13, /*->55366*/
/* 55353*/      OPC_CheckChild0Integer, 85|128,37/*4821*/, 
/* 55356*/      OPC_RecordChild1, // #0 = $vB
/* 55357*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55359*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VLOGEFP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4821:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VLOGEFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 55366*/    /*Scope*/ 15, /*->55382*/
/* 55367*/      OPC_CheckChild0Integer, 87|128,37/*4823*/, 
/* 55370*/      OPC_RecordChild1, // #0 = $vA
/* 55371*/      OPC_RecordChild2, // #1 = $vB
/* 55372*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55374*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXFP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4823:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VMAXFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/* 55382*/    /*Scope*/ 15, /*->55398*/
/* 55383*/      OPC_CheckChild0Integer, 98|128,37/*4834*/, 
/* 55386*/      OPC_RecordChild1, // #0 = $vA
/* 55387*/      OPC_RecordChild2, // #1 = $vB
/* 55388*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55390*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINFP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4834:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VMINFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/* 55398*/    /*Scope*/ 13, /*->55412*/
/* 55399*/      OPC_CheckChild0Integer, 13|128,38/*4877*/, 
/* 55402*/      OPC_RecordChild1, // #0 = $vB
/* 55403*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55405*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VREFP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4877:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VREFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 55412*/    /*Scope*/ 13, /*->55426*/
/* 55413*/      OPC_CheckChild0Integer, 14|128,38/*4878*/, 
/* 55416*/      OPC_RecordChild1, // #0 = $vB
/* 55417*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55419*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIM), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4878:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRFIM:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 55426*/    /*Scope*/ 13, /*->55440*/
/* 55427*/      OPC_CheckChild0Integer, 15|128,38/*4879*/, 
/* 55430*/      OPC_RecordChild1, // #0 = $vB
/* 55431*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55433*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIN), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4879:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRFIN:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 55440*/    /*Scope*/ 13, /*->55454*/
/* 55441*/      OPC_CheckChild0Integer, 16|128,38/*4880*/, 
/* 55444*/      OPC_RecordChild1, // #0 = $vB
/* 55445*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55447*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4880:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRFIP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 55454*/    /*Scope*/ 13, /*->55468*/
/* 55455*/      OPC_CheckChild0Integer, 17|128,38/*4881*/, 
/* 55458*/      OPC_RecordChild1, // #0 = $vB
/* 55459*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55461*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIZ), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4881:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRFIZ:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 55468*/    /*Scope*/ 13, /*->55482*/
/* 55469*/      OPC_CheckChild0Integer, 26|128,38/*4890*/, 
/* 55472*/      OPC_RecordChild1, // #0 = $vB
/* 55473*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55475*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRSQRTEFP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4890:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRSQRTEFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 55482*/    /*Scope*/ 17, /*->55500*/
/* 55483*/      OPC_CheckChild0Integer, 86|128,37/*4822*/, 
/* 55486*/      OPC_RecordChild1, // #0 = $A
/* 55487*/      OPC_RecordChild2, // #1 = $B
/* 55488*/      OPC_RecordChild3, // #2 = $C
/* 55489*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55491*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMADDFP), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4822:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A, v4f32:{ *:[v4f32] }:$B, v4f32:{ *:[v4f32] }:$C) - Complexity = 8
                // Dst: (VMADDFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C)
/* 55500*/    /*Scope*/ 17, /*->55518*/
/* 55501*/      OPC_CheckChild0Integer, 126|128,37/*4862*/, 
/* 55504*/      OPC_RecordChild1, // #0 = $A
/* 55505*/      OPC_RecordChild2, // #1 = $B
/* 55506*/      OPC_RecordChild3, // #2 = $C
/* 55507*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 55509*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VNMSUBFP), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 4862:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A, v4f32:{ *:[v4f32] }:$B, v4f32:{ *:[v4f32] }:$C) - Complexity = 8
                // Dst: (VNMSUBFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C)
/* 55518*/    /*Scope*/ 15, /*->55534*/
/* 55519*/      OPC_CheckChild0Integer, 92|128,38/*4956*/, 
/* 55522*/      OPC_RecordChild1, // #0 = $FRA
/* 55523*/      OPC_RecordChild2, // #1 = $FRB
/* 55524*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55526*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFADDS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4956:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 55534*/    /*Scope*/ 15, /*->55550*/
/* 55535*/      OPC_CheckChild0Integer, 6|128,39/*4998*/, 
/* 55538*/      OPC_RecordChild1, // #0 = $FRA
/* 55539*/      OPC_RecordChild2, // #1 = $FRB
/* 55540*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55542*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSUBS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4998:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFSUBS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 55550*/    /*Scope*/ 13, /*->55564*/
/* 55551*/      OPC_CheckChild0Integer, 124|128,38/*4988*/, 
/* 55554*/      OPC_RecordChild1, // #0 = $FRB
/* 55555*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55557*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRES), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4988:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFRES:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55564*/    /*Scope*/ 13, /*->55578*/
/* 55565*/      OPC_CheckChild0Integer, 3|128,39/*4995*/, 
/* 55568*/      OPC_RecordChild1, // #0 = $FRB
/* 55569*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55571*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSQRTES), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4995:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFRSQRTES:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55578*/    /*Scope*/ 15, /*->55594*/
/* 55579*/      OPC_CheckChild0Integer, 115|128,38/*4979*/, 
/* 55582*/      OPC_RecordChild1, // #0 = $FRA
/* 55583*/      OPC_RecordChild2, // #1 = $FRC
/* 55584*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55586*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMULS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4979:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFMULS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC)
/* 55594*/    /*Scope*/ 15, /*->55610*/
/* 55595*/      OPC_CheckChild0Integer, 10|128,39/*5002*/, 
/* 55598*/      OPC_RecordChild1, // #0 = $FRA
/* 55599*/      OPC_RecordChild2, // #1 = $FRC
/* 55600*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55602*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXMUL), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5002:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXMUL:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC)
/* 55610*/    /*Scope*/ 15, /*->55626*/
/* 55611*/      OPC_CheckChild0Integer, 11|128,39/*5003*/, 
/* 55614*/      OPC_RecordChild1, // #0 = $FRA
/* 55615*/      OPC_RecordChild2, // #1 = $FRC
/* 55616*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55618*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXMULS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5003:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXMULS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC)
/* 55626*/    /*Scope*/ 17, /*->55644*/
/* 55627*/      OPC_CheckChild0Integer, 111|128,38/*4975*/, 
/* 55630*/      OPC_RecordChild1, // #0 = $FRA
/* 55631*/      OPC_RecordChild2, // #1 = $FRB
/* 55632*/      OPC_RecordChild3, // #2 = $FRC
/* 55633*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55635*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4975:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55644*/    /*Scope*/ 17, /*->55662*/
/* 55645*/      OPC_CheckChild0Integer, 119|128,38/*4983*/, 
/* 55648*/      OPC_RecordChild1, // #0 = $FRA
/* 55649*/      OPC_RecordChild2, // #1 = $FRB
/* 55650*/      OPC_RecordChild3, // #2 = $FRC
/* 55651*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55653*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4983:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFNMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55662*/    /*Scope*/ 17, /*->55680*/
/* 55663*/      OPC_CheckChild0Integer, 113|128,38/*4977*/, 
/* 55666*/      OPC_RecordChild1, // #0 = $FRA
/* 55667*/      OPC_RecordChild2, // #1 = $FRB
/* 55668*/      OPC_RecordChild3, // #2 = $FRC
/* 55669*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55671*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMSUBS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4977:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFMSUBS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55680*/    /*Scope*/ 17, /*->55698*/
/* 55681*/      OPC_CheckChild0Integer, 121|128,38/*4985*/, 
/* 55684*/      OPC_RecordChild1, // #0 = $FRA
/* 55685*/      OPC_RecordChild2, // #1 = $FRB
/* 55686*/      OPC_RecordChild3, // #2 = $FRC
/* 55687*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55689*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUBS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4985:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFNMSUBS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55698*/    /*Scope*/ 17, /*->55716*/
/* 55699*/      OPC_CheckChild0Integer, 8|128,39/*5000*/, 
/* 55702*/      OPC_RecordChild1, // #0 = $FRA
/* 55703*/      OPC_RecordChild2, // #1 = $FRB
/* 55704*/      OPC_RecordChild3, // #2 = $FRC
/* 55705*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55707*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5000:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55716*/    /*Scope*/ 17, /*->55734*/
/* 55717*/      OPC_CheckChild0Integer, 9|128,39/*5001*/, 
/* 55720*/      OPC_RecordChild1, // #0 = $FRA
/* 55721*/      OPC_RecordChild2, // #1 = $FRB
/* 55722*/      OPC_RecordChild3, // #2 = $FRC
/* 55723*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55725*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5001:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55734*/    /*Scope*/ 17, /*->55752*/
/* 55735*/      OPC_CheckChild0Integer, 16|128,39/*5008*/, 
/* 55738*/      OPC_RecordChild1, // #0 = $FRA
/* 55739*/      OPC_RecordChild2, // #1 = $FRB
/* 55740*/      OPC_RecordChild3, // #2 = $FRC
/* 55741*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55743*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXNPMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5008:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXNPMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55752*/    /*Scope*/ 17, /*->55770*/
/* 55753*/      OPC_CheckChild0Integer, 17|128,39/*5009*/, 
/* 55756*/      OPC_RecordChild1, // #0 = $FRA
/* 55757*/      OPC_RecordChild2, // #1 = $FRB
/* 55758*/      OPC_RecordChild3, // #2 = $FRC
/* 55759*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55761*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXNPMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5009:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXNPMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55770*/    /*Scope*/ 17, /*->55788*/
/* 55771*/      OPC_CheckChild0Integer, 12|128,39/*5004*/, 
/* 55774*/      OPC_RecordChild1, // #0 = $FRA
/* 55775*/      OPC_RecordChild2, // #1 = $FRB
/* 55776*/      OPC_RecordChild3, // #2 = $FRC
/* 55777*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55779*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXCPNMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5004:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXCPNMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55788*/    /*Scope*/ 17, /*->55806*/
/* 55789*/      OPC_CheckChild0Integer, 13|128,39/*5005*/, 
/* 55792*/      OPC_RecordChild1, // #0 = $FRA
/* 55793*/      OPC_RecordChild2, // #1 = $FRB
/* 55794*/      OPC_RecordChild3, // #2 = $FRC
/* 55795*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55797*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXCPNMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5005:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXCPNMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55806*/    /*Scope*/ 17, /*->55824*/
/* 55807*/      OPC_CheckChild0Integer, 14|128,39/*5006*/, 
/* 55810*/      OPC_RecordChild1, // #0 = $FRA
/* 55811*/      OPC_RecordChild2, // #1 = $FRB
/* 55812*/      OPC_RecordChild3, // #2 = $FRC
/* 55813*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55815*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5006:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55824*/    /*Scope*/ 17, /*->55842*/
/* 55825*/      OPC_CheckChild0Integer, 15|128,39/*5007*/, 
/* 55828*/      OPC_RecordChild1, // #0 = $FRA
/* 55829*/      OPC_RecordChild2, // #1 = $FRB
/* 55830*/      OPC_RecordChild3, // #2 = $FRC
/* 55831*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55833*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5007:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55842*/    /*Scope*/ 17, /*->55860*/
/* 55843*/      OPC_CheckChild0Integer, 4|128,39/*4996*/, 
/* 55846*/      OPC_RecordChild1, // #0 = $FRA
/* 55847*/      OPC_RecordChild2, // #1 = $FRB
/* 55848*/      OPC_RecordChild3, // #2 = $FRC
/* 55849*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55851*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSEL), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4996:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFSEL:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 55860*/    /*Scope*/ 13, /*->55874*/
/* 55861*/      OPC_CheckChild0Integer, 101|128,38/*4965*/, 
/* 55864*/      OPC_RecordChild1, // #0 = $FRB
/* 55865*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55867*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTID), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4965:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTID:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55874*/    /*Scope*/ 13, /*->55888*/
/* 55875*/      OPC_CheckChild0Integer, 102|128,38/*4966*/, 
/* 55878*/      OPC_RecordChild1, // #0 = $FRB
/* 55879*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55881*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIDU), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4966:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIDU:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55888*/    /*Scope*/ 13, /*->55902*/
/* 55889*/      OPC_CheckChild0Integer, 104|128,38/*4968*/, 
/* 55892*/      OPC_RecordChild1, // #0 = $FRB
/* 55893*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55895*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIDZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4968:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIDZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55902*/    /*Scope*/ 13, /*->55916*/
/* 55903*/      OPC_CheckChild0Integer, 103|128,38/*4967*/, 
/* 55906*/      OPC_RecordChild1, // #0 = $FRB
/* 55907*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55909*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIDUZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4967:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIDUZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55916*/    /*Scope*/ 13, /*->55930*/
/* 55917*/      OPC_CheckChild0Integer, 105|128,38/*4969*/, 
/* 55920*/      OPC_RecordChild1, // #0 = $FRB
/* 55921*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55923*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIW), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4969:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIW:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55930*/    /*Scope*/ 13, /*->55944*/
/* 55931*/      OPC_CheckChild0Integer, 106|128,38/*4970*/, 
/* 55934*/      OPC_RecordChild1, // #0 = $FRB
/* 55935*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55937*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIWU), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4970:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIWU:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55944*/    /*Scope*/ 13, /*->55958*/
/* 55945*/      OPC_CheckChild0Integer, 108|128,38/*4972*/, 
/* 55948*/      OPC_RecordChild1, // #0 = $FRB
/* 55949*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55951*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIWZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4972:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIWZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55958*/    /*Scope*/ 13, /*->55972*/
/* 55959*/      OPC_CheckChild0Integer, 107|128,38/*4971*/, 
/* 55962*/      OPC_RecordChild1, // #0 = $FRB
/* 55963*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55965*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIWUZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4971:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIWUZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55972*/    /*Scope*/ 13, /*->55986*/
/* 55973*/      OPC_CheckChild0Integer, 93|128,38/*4957*/, 
/* 55976*/      OPC_RecordChild1, // #0 = $FRB
/* 55977*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55979*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCFID), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4957:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCFID:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 55986*/    /*Scope*/ 13, /*->56000*/
/* 55987*/      OPC_CheckChild0Integer, 95|128,38/*4959*/, 
/* 55990*/      OPC_RecordChild1, // #0 = $FRB
/* 55991*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 55993*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCFIDU), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4959:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCFIDU:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 56000*/    /*Scope*/ 13, /*->56014*/
/* 56001*/      OPC_CheckChild0Integer, 94|128,38/*4958*/, 
/* 56004*/      OPC_RecordChild1, // #0 = $FRB
/* 56005*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56007*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCFIDS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4958:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCFIDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 56014*/    /*Scope*/ 13, /*->56028*/
/* 56015*/      OPC_CheckChild0Integer, 96|128,38/*4960*/, 
/* 56018*/      OPC_RecordChild1, // #0 = $FRB
/* 56019*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56021*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCFIDUS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4960:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCFIDUS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 56028*/    /*Scope*/ 13, /*->56042*/
/* 56029*/      OPC_CheckChild0Integer, 1|128,39/*4993*/, 
/* 56032*/      OPC_RecordChild1, // #0 = $FRB
/* 56033*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56035*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSP), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4993:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFRSP:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 56042*/    /*Scope*/ 15, /*->56058*/
/* 56043*/      OPC_CheckChild0Integer, 7|128,39/*4999*/, 
/* 56046*/      OPC_RecordChild1, // #0 = $FRA
/* 56047*/      OPC_RecordChild2, // #1 = $FRB
/* 56048*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56050*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFTSTNAN), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4999:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFTSTNAN:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 56058*/    /*Scope*/ 15, /*->56074*/
/* 56059*/      OPC_CheckChild0Integer, 99|128,38/*4963*/, 
/* 56062*/      OPC_RecordChild1, // #0 = $FRA
/* 56063*/      OPC_RecordChild2, // #1 = $FRB
/* 56064*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56066*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPLT), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4963:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCMPLT:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 56074*/    /*Scope*/ 15, /*->56090*/
/* 56075*/      OPC_CheckChild0Integer, 98|128,38/*4962*/, 
/* 56078*/      OPC_RecordChild1, // #0 = $FRA
/* 56079*/      OPC_RecordChild2, // #1 = $FRB
/* 56080*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56082*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPGT), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4962:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCMPGT:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 56090*/    /*Scope*/ 15, /*->56106*/
/* 56091*/      OPC_CheckChild0Integer, 97|128,38/*4961*/, 
/* 56094*/      OPC_RecordChild1, // #0 = $FRA
/* 56095*/      OPC_RecordChild2, // #1 = $FRB
/* 56096*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56098*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPEQ), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4961:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCMPEQ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 56106*/    /*Scope*/ 17, /*->56124*/
/* 56107*/      OPC_CheckChild0Integer, 122|128,38/*4986*/, 
/* 56110*/      OPC_RecordChild1, // #0 = $A
/* 56111*/      OPC_RecordChild2, // #1 = $B
/* 56112*/      OPC_RecordChild3, // #2 = $C
/* 56113*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56115*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFPERM), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4986:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFPERM:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 56124*/    /*Scope*/ 15, /*->56140*/
/* 56125*/      OPC_CheckChild0Integer, 100|128,38/*4964*/, 
/* 56128*/      OPC_RecordChild1, // #0 = $A
/* 56129*/      OPC_RecordChild2, // #1 = $B
/* 56130*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56132*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCPSGN), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4964:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B) - Complexity = 8
                // Dst: (QVFCPSGN:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B)
/* 56140*/    /*Scope*/ 13, /*->56154*/
/* 56141*/      OPC_CheckChild0Integer, 117|128,38/*4981*/, 
/* 56144*/      OPC_RecordChild1, // #0 = $A
/* 56145*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56147*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNEG), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4981:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFNEG:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56154*/    /*Scope*/ 13, /*->56168*/
/* 56155*/      OPC_CheckChild0Integer, 90|128,38/*4954*/, 
/* 56158*/      OPC_RecordChild1, // #0 = $A
/* 56159*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56161*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFABS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4954:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFABS:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56168*/    /*Scope*/ 13, /*->56182*/
/* 56169*/      OPC_CheckChild0Integer, 116|128,38/*4980*/, 
/* 56172*/      OPC_RecordChild1, // #0 = $A
/* 56173*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56175*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNABS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4980:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFNABS:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56182*/    /*Scope*/ 13, /*->56196*/
/* 56183*/      OPC_CheckChild0Integer, 0|128,39/*4992*/, 
/* 56186*/      OPC_RecordChild1, // #0 = $A
/* 56187*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56189*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4992:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRIZ:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56196*/    /*Scope*/ 13, /*->56210*/
/* 56197*/      OPC_CheckChild0Integer, 126|128,38/*4990*/, 
/* 56200*/      OPC_RecordChild1, // #0 = $A
/* 56201*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56203*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIN), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4990:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRIN:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56210*/    /*Scope*/ 13, /*->56224*/
/* 56211*/      OPC_CheckChild0Integer, 127|128,38/*4991*/, 
/* 56214*/      OPC_RecordChild1, // #0 = $A
/* 56215*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56217*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIP), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4991:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRIP:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56224*/    /*Scope*/ 13, /*->56238*/
/* 56225*/      OPC_CheckChild0Integer, 125|128,38/*4989*/, 
/* 56228*/      OPC_RecordChild1, // #0 = $A
/* 56229*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56231*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIM), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4989:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRIM:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56238*/    /*Scope*/ 13, /*->56252*/
/* 56239*/      OPC_CheckChild0Integer, 123|128,38/*4987*/, 
/* 56242*/      OPC_RecordChild1, // #0 = $A
/* 56243*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56245*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRE), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4987:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRE:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56252*/    /*Scope*/ 13, /*->56266*/
/* 56253*/      OPC_CheckChild0Integer, 2|128,39/*4994*/, 
/* 56256*/      OPC_RecordChild1, // #0 = $A
/* 56257*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56259*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSQRTE), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4994:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRSQRTE:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 56266*/    /*Scope*/ 15, /*->56282*/
/* 56267*/      OPC_CheckChild0Integer, 91|128,38/*4955*/, 
/* 56270*/      OPC_RecordChild1, // #0 = $A
/* 56271*/      OPC_RecordChild2, // #1 = $B
/* 56272*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56274*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFADD), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4955:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B) - Complexity = 8
                // Dst: (QVFADD:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B)
/* 56282*/    /*Scope*/ 15, /*->56298*/
/* 56283*/      OPC_CheckChild0Integer, 5|128,39/*4997*/, 
/* 56286*/      OPC_RecordChild1, // #0 = $A
/* 56287*/      OPC_RecordChild2, // #1 = $B
/* 56288*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56290*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSUB), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4997:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B) - Complexity = 8
                // Dst: (QVFSUB:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B)
/* 56298*/    /*Scope*/ 15, /*->56314*/
/* 56299*/      OPC_CheckChild0Integer, 114|128,38/*4978*/, 
/* 56302*/      OPC_RecordChild1, // #0 = $A
/* 56303*/      OPC_RecordChild2, // #1 = $B
/* 56304*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56306*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMUL), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4978:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B) - Complexity = 8
                // Dst: (QVFMUL:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B)
/* 56314*/    /*Scope*/ 17, /*->56332*/
/* 56315*/      OPC_CheckChild0Integer, 110|128,38/*4974*/, 
/* 56318*/      OPC_RecordChild1, // #0 = $A
/* 56319*/      OPC_RecordChild2, // #1 = $B
/* 56320*/      OPC_RecordChild3, // #2 = $C
/* 56321*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56323*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4974:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFMADD:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 56332*/    /*Scope*/ 17, /*->56350*/
/* 56333*/      OPC_CheckChild0Integer, 118|128,38/*4982*/, 
/* 56336*/      OPC_RecordChild1, // #0 = $A
/* 56337*/      OPC_RecordChild2, // #1 = $B
/* 56338*/      OPC_RecordChild3, // #2 = $C
/* 56339*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56341*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4982:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFNMADD:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 56350*/    /*Scope*/ 17, /*->56368*/
/* 56351*/      OPC_CheckChild0Integer, 112|128,38/*4976*/, 
/* 56354*/      OPC_RecordChild1, // #0 = $A
/* 56355*/      OPC_RecordChild2, // #1 = $B
/* 56356*/      OPC_RecordChild3, // #2 = $C
/* 56357*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56359*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMSUB), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4976:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFMSUB:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 56368*/    /*Scope*/ 17, /*->56386*/
/* 56369*/      OPC_CheckChild0Integer, 120|128,38/*4984*/, 
/* 56372*/      OPC_RecordChild1, // #0 = $A
/* 56373*/      OPC_RecordChild2, // #1 = $B
/* 56374*/      OPC_RecordChild3, // #2 = $C
/* 56375*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 56377*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUB), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 4984:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFNMSUB:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 56386*/    0, /*End of Scope*/
/* 56387*/  /*SwitchOpcode*/ 91|128,1/*219*/, TARGET_VAL(ISD::SUB),// ->56610
/* 56391*/    OPC_Scope, 23, /*->56416*/ // 4 children in Scope
/* 56393*/      OPC_CheckChild0Integer, 0, 
/* 56395*/      OPC_RecordChild1, // #0 = $rA
/* 56396*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->56406
/* 56399*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::NEG), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[i32] } 0:{ *:[i32] }, i32:{ *:[i32] }:$rA) - Complexity = 8
                  // Dst: (NEG:{ *:[i32] } i32:{ *:[i32] }:$rA)
/* 56406*/      /*SwitchType*/ 7, MVT::i64,// ->56415
/* 56408*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::NEG8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, i64:{ *:[i64] }:$rA) - Complexity = 8
                  // Dst: (NEG8:{ *:[i64] } i64:{ *:[i64] }:$rA)
/* 56415*/      0, // EndSwitchType
/* 56416*/    /*Scope*/ 80, /*->56497*/
/* 56417*/      OPC_RecordChild0, // #0 = $imm
/* 56418*/      OPC_Scope, 42, /*->56462*/ // 2 children in Scope
/* 56420*/        OPC_MoveChild0,
/* 56421*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56424*/        OPC_Scope, 17, /*->56443*/ // 2 children in Scope
/* 56426*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 56428*/          OPC_MoveParent,
/* 56429*/          OPC_RecordChild1, // #1 = $in
/* 56430*/          OPC_CheckType, MVT::i32,
/* 56432*/          OPC_EmitConvertToTarget, 0,
/* 56434*/          OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFIC), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, i32:{ *:[i32] }:$in) - Complexity = 7
                    // Dst: (SUBFIC:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm)
/* 56443*/        /*Scope*/ 17, /*->56461*/
/* 56444*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 56446*/          OPC_MoveParent,
/* 56447*/          OPC_RecordChild1, // #1 = $in
/* 56448*/          OPC_CheckType, MVT::i64,
/* 56450*/          OPC_EmitConvertToTarget, 0,
/* 56452*/          OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFIC8), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (sub:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, i64:{ *:[i64] }:$in) - Complexity = 7
                    // Dst: (SUBFIC8:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$in, (imm:{ *:[i64] }):$imm)
/* 56461*/        0, /*End of Scope*/
/* 56462*/      /*Scope*/ 33, /*->56496*/
/* 56463*/        OPC_RecordChild1, // #1 = $rA
/* 56464*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->56475
/* 56467*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::SUBF), 0,
                        MVT::i32, 2/*#Ops*/, 1, 0, 
                    // Src: (sub:{ *:[i32] } i32:{ *:[i32] }:$rB, i32:{ *:[i32] }:$rA) - Complexity = 3
                    // Dst: (SUBF:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 56475*/        /*SwitchType*/ 8, MVT::i64,// ->56485
/* 56477*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::SUBF8), 0,
                        MVT::i64, 2/*#Ops*/, 1, 0, 
                    // Src: (sub:{ *:[i64] } i64:{ *:[i64] }:$rB, i64:{ *:[i64] }:$rA) - Complexity = 3
                    // Dst: (SUBF8:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 56485*/        /*SwitchType*/ 8, MVT::i1,// ->56495
/* 56487*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRXOR), 0,
                        MVT::i1, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:{ *:[i1] } i1:{ *:[i1] }:$a, i1:{ *:[i1] }:$b) - Complexity = 3
                    // Dst: (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$a, ?:{ *:[i1] }:$b)
/* 56495*/        0, // EndSwitchType
/* 56496*/      0, /*End of Scope*/
/* 56497*/    /*Scope*/ 46, /*->56544*/
/* 56498*/      OPC_MoveChild0,
/* 56499*/      OPC_SwitchOpcode /*2 cases */, 22, TARGET_VAL(ISD::BITCAST),// ->56525
/* 56503*/        OPC_MoveChild0,
/* 56504*/        OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 56507*/        OPC_CheckPredicate, 38, // Predicate_immAllZerosV
/* 56509*/        OPC_CheckType, MVT::v4i32,
/* 56511*/        OPC_MoveParent,
/* 56512*/        OPC_MoveParent,
/* 56513*/        OPC_RecordChild1, // #0 = $vB
/* 56514*/        OPC_CheckType, MVT::v2i64,
/* 56516*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 56518*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNEGD), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>), v2i64:{ *:[v2i64] }:$vB) - Complexity = 10
                  // Dst: (VNEGD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB)
/* 56525*/      /*SwitchOpcode*/ 15, TARGET_VAL(ISD::BUILD_VECTOR),// ->56543
/* 56528*/        OPC_CheckPredicate, 38, // Predicate_immAllZerosV
/* 56530*/        OPC_MoveParent,
/* 56531*/        OPC_RecordChild1, // #0 = $vB
/* 56532*/        OPC_CheckType, MVT::v4i32,
/* 56534*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 56536*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNEGW), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[v4i32] } (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>>, v4i32:{ *:[v4i32] }:$vB) - Complexity = 7
                  // Dst: (VNEGW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB)
/* 56543*/      0, // EndSwitchOpcode
/* 56544*/    /*Scope*/ 64, /*->56609*/
/* 56545*/      OPC_RecordChild0, // #0 = $vA
/* 56546*/      OPC_RecordChild1, // #1 = $vB
/* 56547*/      OPC_SwitchType /*5 cases */, 10, MVT::v16i8,// ->56560
/* 56550*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 56552*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUBM), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                  // Dst: (VSUBUBM:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 56560*/      /*SwitchType*/ 10, MVT::v8i16,// ->56572
/* 56562*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 56564*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUHM), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                  // Dst: (VSUBUHM:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 56572*/      /*SwitchType*/ 10, MVT::v4i32,// ->56584
/* 56574*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 56576*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUWM), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                  // Dst: (VSUBUWM:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 56584*/      /*SwitchType*/ 10, MVT::v2i64,// ->56596
/* 56586*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 56588*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUDM), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                  // Dst: (VSUBUDM:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 56596*/      /*SwitchType*/ 10, MVT::v1i128,// ->56608
/* 56598*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 56600*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUQM), 0,
                      MVT::v1i128, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 3
                  // Dst: (VSUBUQM:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB)
/* 56608*/      0, // EndSwitchType
/* 56609*/    0, /*End of Scope*/
/* 56610*/  /*SwitchOpcode*/ 89, TARGET_VAL(ISD::ADDE),// ->56702
/* 56613*/    OPC_CaptureGlueInput,
/* 56614*/    OPC_RecordChild0, // #0 = $rA
/* 56615*/    OPC_Scope, 33, /*->56650*/ // 3 children in Scope
/* 56617*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 56628*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->56639
/* 56631*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDME), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (adde:{ *:[i32] } i32:{ *:[i32] }:$rA, -1:{ *:[i32] }) - Complexity = 8
                  // Dst: (ADDME:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA)
/* 56639*/      /*SwitchType*/ 8, MVT::i64,// ->56649
/* 56641*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDME8), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (adde:{ *:[i64] } i64:{ *:[i64] }:$rA, -1:{ *:[i64] }) - Complexity = 8
                  // Dst: (ADDME8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA)
/* 56649*/      0, // EndSwitchType
/* 56650*/    /*Scope*/ 24, /*->56675*/
/* 56651*/      OPC_CheckChild1Integer, 0, 
/* 56653*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->56664
/* 56656*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDZE), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (adde:{ *:[i32] } i32:{ *:[i32] }:$rA, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (ADDZE:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA)
/* 56664*/      /*SwitchType*/ 8, MVT::i64,// ->56674
/* 56666*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDZE8), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (adde:{ *:[i64] } i64:{ *:[i64] }:$rA, 0:{ *:[i64] }) - Complexity = 8
                  // Dst: (ADDZE8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA)
/* 56674*/      0, // EndSwitchType
/* 56675*/    /*Scope*/ 25, /*->56701*/
/* 56676*/      OPC_RecordChild1, // #1 = $rB
/* 56677*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->56689
/* 56680*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDE), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (adde:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (ADDE:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 56689*/      /*SwitchType*/ 9, MVT::i64,// ->56700
/* 56691*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDE8), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (adde:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                  // Dst: (ADDE8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 56700*/      0, // EndSwitchType
/* 56701*/    0, /*End of Scope*/
/* 56702*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::SUBE),// ->56796
/* 56705*/    OPC_CaptureGlueInput,
/* 56706*/    OPC_Scope, 34, /*->56742*/ // 3 children in Scope
/* 56708*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 56719*/      OPC_RecordChild1, // #0 = $rA
/* 56720*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->56731
/* 56723*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFME), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sube:{ *:[i32] } -1:{ *:[i32] }, i32:{ *:[i32] }:$rA) - Complexity = 8
                  // Dst: (SUBFME:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA)
/* 56731*/      /*SwitchType*/ 8, MVT::i64,// ->56741
/* 56733*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFME8), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sube:{ *:[i64] } -1:{ *:[i64] }, i64:{ *:[i64] }:$rA) - Complexity = 8
                  // Dst: (SUBFME8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA)
/* 56741*/      0, // EndSwitchType
/* 56742*/    /*Scope*/ 25, /*->56768*/
/* 56743*/      OPC_CheckChild0Integer, 0, 
/* 56745*/      OPC_RecordChild1, // #0 = $rA
/* 56746*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->56757
/* 56749*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFZE), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sube:{ *:[i32] } 0:{ *:[i32] }, i32:{ *:[i32] }:$rA) - Complexity = 8
                  // Dst: (SUBFZE:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA)
/* 56757*/      /*SwitchType*/ 8, MVT::i64,// ->56767
/* 56759*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFZE8), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sube:{ *:[i64] } 0:{ *:[i64] }, i64:{ *:[i64] }:$rA) - Complexity = 8
                  // Dst: (SUBFZE8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA)
/* 56767*/      0, // EndSwitchType
/* 56768*/    /*Scope*/ 26, /*->56795*/
/* 56769*/      OPC_RecordChild0, // #0 = $rB
/* 56770*/      OPC_RecordChild1, // #1 = $rA
/* 56771*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->56783
/* 56774*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFE), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (sube:{ *:[i32] } i32:{ *:[i32] }:$rB, i32:{ *:[i32] }:$rA) - Complexity = 3
                  // Dst: (SUBFE:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 56783*/      /*SwitchType*/ 9, MVT::i64,// ->56794
/* 56785*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFE8), 0|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (sube:{ *:[i64] } i64:{ *:[i64] }:$rB, i64:{ *:[i64] }:$rA) - Complexity = 3
                  // Dst: (SUBFE8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 56794*/      0, // EndSwitchType
/* 56795*/    0, /*End of Scope*/
/* 56796*/  /*SwitchOpcode*/ 40|128,7/*936*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->57736
/* 56800*/    OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 56801*/    OPC_Scope, 19, /*->56822*/ // 43 children in Scope
/* 56803*/      OPC_CheckChild1Integer, 59|128,39/*5051*/, 
/* 56806*/      OPC_RecordChild2, // #1 = $R
/* 56807*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56809*/      OPC_EmitMergeInputChains1_0,
/* 56810*/      OPC_EmitConvertToTarget, 1,
/* 56812*/      OPC_EmitNodeXForm, 5, 2, // HTM_get_imm
/* 56815*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TEND), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 3, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5051:{ *:[iPTR] }, i32:{ *:[i32] }:$R) - Complexity = 8
                // Dst: (TEND:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$R))
/* 56822*/    /*Scope*/ 14, /*->56837*/
/* 56823*/      OPC_CheckChild1Integer, 52|128,39/*5044*/, 
/* 56826*/      OPC_RecordChild2, // #1 = $R
/* 56827*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56829*/      OPC_EmitMergeInputChains1_0,
/* 56830*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORT), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5044:{ *:[iPTR] }, i32:{ *:[i32] }:$R) - Complexity = 8
                // Dst: (TABORT:{ *:[i32] } ?:{ *:[i32] }:$R)
/* 56837*/    /*Scope*/ 23, /*->56861*/
/* 56838*/      OPC_CheckChild1Integer, 55|128,39/*5047*/, 
/* 56841*/      OPC_RecordChild2, // #1 = $TO
/* 56842*/      OPC_RecordChild3, // #2 = $RA
/* 56843*/      OPC_RecordChild4, // #3 = $RB
/* 56844*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56846*/      OPC_EmitMergeInputChains1_0,
/* 56847*/      OPC_EmitConvertToTarget, 1,
/* 56849*/      OPC_EmitNodeXForm, 5, 4, // HTM_get_imm
/* 56852*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORTWC), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 5, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5047:{ *:[iPTR] }, i32:{ *:[i32] }:$TO, i32:{ *:[i32] }:$RA, i32:{ *:[i32] }:$RB) - Complexity = 8
                // Dst: (TABORTWC:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$TO), ?:{ *:[i32] }:$RA, ?:{ *:[i32] }:$RB)
/* 56861*/    /*Scope*/ 28, /*->56890*/
/* 56862*/      OPC_CheckChild1Integer, 56|128,39/*5048*/, 
/* 56865*/      OPC_RecordChild2, // #1 = $TO
/* 56866*/      OPC_RecordChild3, // #2 = $RA
/* 56867*/      OPC_RecordChild4, // #3 = $SI
/* 56868*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56870*/      OPC_EmitMergeInputChains1_0,
/* 56871*/      OPC_EmitConvertToTarget, 1,
/* 56873*/      OPC_EmitNodeXForm, 5, 4, // HTM_get_imm
/* 56876*/      OPC_EmitConvertToTarget, 3,
/* 56878*/      OPC_EmitNodeXForm, 5, 6, // HTM_get_imm
/* 56881*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORTWCI), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 5, 2, 7, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5048:{ *:[iPTR] }, i32:{ *:[i32] }:$TO, i32:{ *:[i32] }:$RA, i32:{ *:[i32] }:$SI) - Complexity = 8
                // Dst: (TABORTWCI:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$TO), ?:{ *:[i32] }:$RA, (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$SI))
/* 56890*/    /*Scope*/ 23, /*->56914*/
/* 56891*/      OPC_CheckChild1Integer, 53|128,39/*5045*/, 
/* 56894*/      OPC_RecordChild2, // #1 = $TO
/* 56895*/      OPC_RecordChild3, // #2 = $RA
/* 56896*/      OPC_RecordChild4, // #3 = $RB
/* 56897*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56899*/      OPC_EmitMergeInputChains1_0,
/* 56900*/      OPC_EmitConvertToTarget, 1,
/* 56902*/      OPC_EmitNodeXForm, 5, 4, // HTM_get_imm
/* 56905*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORTDC), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 5, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5045:{ *:[iPTR] }, i32:{ *:[i32] }:$TO, i32:{ *:[i32] }:$RA, i32:{ *:[i32] }:$RB) - Complexity = 8
                // Dst: (TABORTDC:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$TO), ?:{ *:[i32] }:$RA, ?:{ *:[i32] }:$RB)
/* 56914*/    /*Scope*/ 28, /*->56943*/
/* 56915*/      OPC_CheckChild1Integer, 54|128,39/*5046*/, 
/* 56918*/      OPC_RecordChild2, // #1 = $TO
/* 56919*/      OPC_RecordChild3, // #2 = $RA
/* 56920*/      OPC_RecordChild4, // #3 = $SI
/* 56921*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56923*/      OPC_EmitMergeInputChains1_0,
/* 56924*/      OPC_EmitConvertToTarget, 1,
/* 56926*/      OPC_EmitNodeXForm, 5, 4, // HTM_get_imm
/* 56929*/      OPC_EmitConvertToTarget, 3,
/* 56931*/      OPC_EmitNodeXForm, 5, 6, // HTM_get_imm
/* 56934*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORTDCI), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 5, 2, 7, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5046:{ *:[iPTR] }, i32:{ *:[i32] }:$TO, i32:{ *:[i32] }:$RA, i32:{ *:[i32] }:$SI) - Complexity = 8
                // Dst: (TABORTDCI:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$TO), ?:{ *:[i32] }:$RA, (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$SI))
/* 56943*/    /*Scope*/ 14, /*->56958*/
/* 56944*/      OPC_CheckChild1Integer, 62|128,39/*5054*/, 
/* 56947*/      OPC_RecordChild2, // #1 = $RA
/* 56948*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56950*/      OPC_EmitMergeInputChains1_0,
/* 56951*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TRECLAIM), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5054:{ *:[iPTR] }, i32:{ *:[i32] }:$RA) - Complexity = 8
                // Dst: (TRECLAIM:{ *:[i32] } ?:{ *:[i32] }:$RA)
/* 56958*/    /*Scope*/ 12, /*->56971*/
/* 56959*/      OPC_CheckChild1Integer, 61|128,39/*5053*/, 
/* 56962*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56964*/      OPC_EmitMergeInputChains1_0,
/* 56965*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TRECHKPT), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5053:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TRECHKPT:{ *:[i32] })
/* 56971*/    /*Scope*/ 19, /*->56991*/
/* 56972*/      OPC_CheckChild1Integer, 65|128,39/*5057*/, 
/* 56975*/      OPC_RecordChild2, // #1 = $L
/* 56976*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56978*/      OPC_EmitMergeInputChains1_0,
/* 56979*/      OPC_EmitConvertToTarget, 1,
/* 56981*/      OPC_EmitNodeXForm, 5, 2, // HTM_get_imm
/* 56984*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TSR), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 3, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5057:{ *:[iPTR] }, i32:{ *:[i32] }:$L) - Complexity = 8
                // Dst: (TSR:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$L))
/* 56991*/    /*Scope*/ 17, /*->57009*/
/* 56992*/      OPC_CheckChild1Integer, 82|128,38/*4946*/, 
/* 56995*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 56997*/      OPC_EmitMergeInputChains1_0,
/* 56998*/      OPC_EmitInteger, MVT::i32, 2|128,1/*130*/, 
/* 57002*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFSPR8), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 4946:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFSPR8:{ *:[i64] } 130:{ *:[i32] })
/* 57009*/    /*Scope*/ 17, /*->57027*/
/* 57010*/      OPC_CheckChild1Integer, 83|128,38/*4947*/, 
/* 57013*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57015*/      OPC_EmitMergeInputChains1_0,
/* 57016*/      OPC_EmitInteger, MVT::i32, 3|128,1/*131*/, 
/* 57020*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFSPR8), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 4947:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFSPR8:{ *:[i64] } 131:{ *:[i32] })
/* 57027*/    /*Scope*/ 17, /*->57045*/
/* 57028*/      OPC_CheckChild1Integer, 84|128,38/*4948*/, 
/* 57031*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57033*/      OPC_EmitMergeInputChains1_0,
/* 57034*/      OPC_EmitInteger, MVT::i32, 0|128,1/*128*/, 
/* 57038*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFSPR8), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 4948:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFSPR8:{ *:[i64] } 128:{ *:[i32] })
/* 57045*/    /*Scope*/ 17, /*->57063*/
/* 57046*/      OPC_CheckChild1Integer, 85|128,38/*4949*/, 
/* 57049*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57051*/      OPC_EmitMergeInputChains1_0,
/* 57052*/      OPC_EmitInteger, MVT::i32, 1|128,1/*129*/, 
/* 57056*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFSPR8), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 4949:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFSPR8:{ *:[i64] } 129:{ *:[i32] })
/* 57063*/    /*Scope*/ 16, /*->57080*/
/* 57064*/      OPC_CheckChild1Integer, 60|128,39/*5052*/, 
/* 57067*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57069*/      OPC_EmitMergeInputChains1_0,
/* 57070*/      OPC_EmitInteger, MVT::i32, 1, 
/* 57073*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TEND), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5052:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TEND:{ *:[i32] } 1:{ *:[i32] })
/* 57080*/    /*Scope*/ 16, /*->57097*/
/* 57081*/      OPC_CheckChild1Integer, 63|128,39/*5055*/, 
/* 57084*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57086*/      OPC_EmitMergeInputChains1_0,
/* 57087*/      OPC_EmitInteger, MVT::i32, 1, 
/* 57090*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TSR), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5055:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TSR:{ *:[i32] } 1:{ *:[i32] })
/* 57097*/    /*Scope*/ 16, /*->57114*/
/* 57098*/      OPC_CheckChild1Integer, 66|128,39/*5058*/, 
/* 57101*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57103*/      OPC_EmitMergeInputChains1_0,
/* 57104*/      OPC_EmitInteger, MVT::i32, 0, 
/* 57107*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TSR), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5058:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TSR:{ *:[i32] } 0:{ *:[i32] })
/* 57114*/    /*Scope*/ 44, /*->57159*/
/* 57115*/      OPC_CheckChild1Integer, 57|128,39/*5049*/, 
/* 57118*/      OPC_RecordChild2, // #1 = $R
/* 57119*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57121*/      OPC_EmitMergeInputChains1_0,
/* 57122*/      OPC_EmitConvertToTarget, 1,
/* 57124*/      OPC_EmitNodeXForm, 5, 2, // HTM_get_imm
/* 57127*/      OPC_EmitNode1, TARGET_VAL(PPC::TBEGIN), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 57134*/      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 57137*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 4, 5,  // Results = #6
/* 57145*/      OPC_EmitInteger, MVT::i32, 1, 
/* 57148*/      OPC_EmitNode1, TARGET_VAL(PPC::XORI), 0,
                    MVT::i32, 2/*#Ops*/, 6, 7,  // Results = #8
/* 57156*/      OPC_CompleteMatch, 1, 8, 
                 // Src: (intrinsic_w_chain:{ *:[i32] } 5049:{ *:[iPTR] }, i32:{ *:[i32] }:$R) - Complexity = 8
                 // Dst: (XORI:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (TBEGIN:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$R)), sub_eq:{ *:[i32] }), 1:{ *:[i32] })
/* 57159*/    /*Scope*/ 46, /*->57206*/
/* 57160*/      OPC_CheckChild1Integer, 67|128,39/*5059*/, 
/* 57163*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57165*/      OPC_EmitMergeInputChains1_0,
/* 57166*/      OPC_EmitInteger, MVT::i32, 0, 
/* 57169*/      OPC_EmitRegister, MVT::i32, PPC::ZERO,
/* 57172*/      OPC_EmitInteger, MVT::i32, 0, 
/* 57175*/      OPC_EmitNode1, TARGET_VAL(PPC::TABORTWCI), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 57184*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY), 0,
                    MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 57191*/      OPC_EmitInteger, MVT::i32, 36, 
/* 57194*/      OPC_EmitInteger, MVT::i32, 28, 
/* 57197*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 5059:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RLDICL:{ *:[i64] } (COPY:{ *:[i64] } (TABORTWCI:{ *:[i32] } 0:{ *:[i32] }, ZERO:{ *:[i32] }, 0:{ *:[i32] })), 36:{ *:[i32] }, 28:{ *:[i32] })
/* 57206*/    /*Scope*/ 12, /*->57219*/
/* 57207*/      OPC_CheckChild1Integer, 58|128,39/*5050*/, 
/* 57210*/      OPC_CheckPatternPredicate, 14, // (PPCSubTarget->hasHTM())
/* 57212*/      OPC_EmitMergeInputChains1_0,
/* 57213*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TCHECK_RET), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5050:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TCHECK_RET:{ *:[i32] })
/* 57219*/    /*Scope*/ 52, /*->57272*/
/* 57220*/      OPC_CheckChild1Integer, 72|128,39/*5064*/, 
/* 57223*/      OPC_RecordChild2, // #1 = $src
/* 57224*/      OPC_Scope, 14, /*->57240*/ // 2 children in Scope
/* 57226*/        OPC_CheckPatternPredicate, 2, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 57228*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57231*/        OPC_EmitMergeInputChains1_0,
/* 57232*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVW4X), 0|OPFL_Chain,
                      MVT::v4i32, 2/*#Ops*/, 2, 3, 
                  // Src: (intrinsic_w_chain:{ *:[v4i32] } 5064:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                  // Dst: (LXVW4X:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 57240*/      /*Scope*/ 30, /*->57271*/
/* 57241*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 57243*/        OPC_Scope, 12, /*->57257*/ // 2 children in Scope
/* 57245*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 57248*/          OPC_EmitMergeInputChains1_0,
/* 57249*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 5064:{ *:[iPTR] }, iqaddr:{ *:[iPTR] }:$src) - Complexity = 417
                    // Dst: (LXV:{ *:[v4i32] } memrix16:{ *:[iPTR] }:$src)
/* 57257*/        /*Scope*/ 12, /*->57270*/
/* 57258*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57261*/          OPC_EmitMergeInputChains1_0,
/* 57262*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 5064:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                    // Dst: (LXVX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 57270*/        0, /*End of Scope*/
/* 57271*/      0, /*End of Scope*/
/* 57272*/    /*Scope*/ 16, /*->57289*/
/* 57273*/      OPC_CheckChild1Integer, 73|128,39/*5065*/, 
/* 57276*/      OPC_RecordChild2, // #1 = $src
/* 57277*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57280*/      OPC_EmitMergeInputChains1_0,
/* 57281*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVW4X), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5065:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                // Dst: (LXVW4X:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 57289*/    /*Scope*/ 19, /*->57309*/
/* 57290*/      OPC_CheckChild1Integer, 70|128,39/*5062*/, 
/* 57293*/      OPC_RecordChild2, // #1 = $src
/* 57294*/      OPC_RecordChild3, // #2 = $rB
/* 57295*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 57297*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddr:$src #3
/* 57300*/      OPC_EmitMergeInputChains1_0,
/* 57301*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVL), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 3, 2, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5062:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src, i64:{ *:[i64] }:$rB) - Complexity = 414
                // Dst: (LXVL:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, i64:{ *:[i64] }:$rB)
/* 57309*/    /*Scope*/ 19, /*->57329*/
/* 57310*/      OPC_CheckChild1Integer, 71|128,39/*5063*/, 
/* 57313*/      OPC_RecordChild2, // #1 = $src
/* 57314*/      OPC_RecordChild3, // #2 = $rB
/* 57315*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 57317*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddr:$src #3
/* 57320*/      OPC_EmitMergeInputChains1_0,
/* 57321*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVLL), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 3, 2, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5063:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src, i64:{ *:[i64] }:$rB) - Complexity = 414
                // Dst: (LXVLL:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, i64:{ *:[i64] }:$rB)
/* 57329*/    /*Scope*/ 18, /*->57348*/
/* 57330*/      OPC_CheckChild1Integer, 127|128,36/*4735*/, 
/* 57333*/      OPC_RecordChild2, // #1 = $src
/* 57334*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 57336*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57339*/      OPC_EmitMergeInputChains1_0,
/* 57340*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVEBX), 0|OPFL_Chain,
                    MVT::v16i8, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v16i8] } 4735:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVEBX:{ *:[v16i8] } xoaddr:{ *:[iPTR] }:$src)
/* 57348*/    /*Scope*/ 18, /*->57367*/
/* 57349*/      OPC_CheckChild1Integer, 0|128,37/*4736*/, 
/* 57352*/      OPC_RecordChild2, // #1 = $src
/* 57353*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 57355*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57358*/      OPC_EmitMergeInputChains1_0,
/* 57359*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVEHX), 0|OPFL_Chain,
                    MVT::v8i16, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v8i16] } 4736:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVEHX:{ *:[v8i16] } xoaddr:{ *:[iPTR] }:$src)
/* 57367*/    /*Scope*/ 18, /*->57386*/
/* 57368*/      OPC_CheckChild1Integer, 1|128,37/*4737*/, 
/* 57371*/      OPC_RecordChild2, // #1 = $src
/* 57372*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 57374*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57377*/      OPC_EmitMergeInputChains1_0,
/* 57378*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVEWX), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 4737:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVEWX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 57386*/    /*Scope*/ 18, /*->57405*/
/* 57387*/      OPC_CheckChild1Integer, 4|128,37/*4740*/, 
/* 57390*/      OPC_RecordChild2, // #1 = $src
/* 57391*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 57393*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57396*/      OPC_EmitMergeInputChains1_0,
/* 57397*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVX), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 4740:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 57405*/    /*Scope*/ 18, /*->57424*/
/* 57406*/      OPC_CheckChild1Integer, 5|128,37/*4741*/, 
/* 57409*/      OPC_RecordChild2, // #1 = $src
/* 57410*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 57412*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57415*/      OPC_EmitMergeInputChains1_0,
/* 57416*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVXL), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 4741:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVXL:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 57424*/    /*Scope*/ 12, /*->57437*/
/* 57425*/      OPC_CheckChild1Integer, 6|128,37/*4742*/, 
/* 57428*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 57430*/      OPC_EmitMergeInputChains1_0,
/* 57431*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSCR), 0|OPFL_Chain,
                    MVT::v8i16, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[v8i16] } 4742:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFVSCR:{ *:[v8i16] })
/* 57437*/    /*Scope*/ 52, /*->57490*/
/* 57438*/      OPC_CheckChild1Integer, 68|128,39/*5060*/, 
/* 57441*/      OPC_RecordChild2, // #1 = $src
/* 57442*/      OPC_Scope, 14, /*->57458*/ // 2 children in Scope
/* 57444*/        OPC_CheckPatternPredicate, 11, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/* 57446*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57449*/        OPC_EmitMergeInputChains1_0,
/* 57450*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain,
                      MVT::v2f64, 2/*#Ops*/, 2, 3, 
                  // Src: (intrinsic_w_chain:{ *:[v2f64] } 5060:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                  // Dst: (LXVD2X:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57458*/      /*Scope*/ 30, /*->57489*/
/* 57459*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 57461*/        OPC_Scope, 12, /*->57475*/ // 2 children in Scope
/* 57463*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 57466*/          OPC_EmitMergeInputChains1_0,
/* 57467*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v2f64] } 5060:{ *:[iPTR] }, iqaddr:{ *:[iPTR] }:$src) - Complexity = 417
                    // Dst: (LXV:{ *:[v2f64] } memrix16:{ *:[iPTR] }:$src)
/* 57475*/        /*Scope*/ 12, /*->57488*/
/* 57476*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57479*/          OPC_EmitMergeInputChains1_0,
/* 57480*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v2f64] } 5060:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                    // Dst: (LXVX:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57488*/        0, /*End of Scope*/
/* 57489*/      0, /*End of Scope*/
/* 57490*/    /*Scope*/ 16, /*->57507*/
/* 57491*/      OPC_CheckChild1Integer, 69|128,39/*5061*/, 
/* 57494*/      OPC_RecordChild2, // #1 = $src
/* 57495*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57498*/      OPC_EmitMergeInputChains1_0,
/* 57499*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain,
                    MVT::v2f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v2f64] } 5061:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                // Dst: (LXVD2X:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57507*/    /*Scope*/ 18, /*->57526*/
/* 57508*/      OPC_CheckChild1Integer, 23|128,39/*5015*/, 
/* 57511*/      OPC_RecordChild2, // #1 = $src
/* 57512*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57514*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57517*/      OPC_EmitMergeInputChains1_0,
/* 57518*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFDX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5015:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57526*/    /*Scope*/ 18, /*->57545*/
/* 57527*/      OPC_CheckChild1Integer, 24|128,39/*5016*/, 
/* 57530*/      OPC_RecordChild2, // #1 = $src
/* 57531*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57533*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57536*/      OPC_EmitMergeInputChains1_0,
/* 57537*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFDXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5016:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFDXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57545*/    /*Scope*/ 18, /*->57564*/
/* 57546*/      OPC_CheckChild1Integer, 29|128,39/*5021*/, 
/* 57549*/      OPC_RecordChild2, // #1 = $src
/* 57550*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57552*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57555*/      OPC_EmitMergeInputChains1_0,
/* 57556*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFSX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5021:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57564*/    /*Scope*/ 18, /*->57583*/
/* 57565*/      OPC_CheckChild1Integer, 30|128,39/*5022*/, 
/* 57568*/      OPC_RecordChild2, // #1 = $src
/* 57569*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57571*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57574*/      OPC_EmitMergeInputChains1_0,
/* 57575*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFSXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5022:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFSXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57583*/    /*Scope*/ 18, /*->57602*/
/* 57584*/      OPC_CheckChild1Integer, 20|128,39/*5012*/, 
/* 57587*/      OPC_RecordChild2, // #1 = $src
/* 57588*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57590*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57593*/      OPC_EmitMergeInputChains1_0,
/* 57594*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFCDXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5012:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFCDXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57602*/    /*Scope*/ 18, /*->57621*/
/* 57603*/      OPC_CheckChild1Integer, 19|128,39/*5011*/, 
/* 57606*/      OPC_RecordChild2, // #1 = $src
/* 57607*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57609*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57612*/      OPC_EmitMergeInputChains1_0,
/* 57613*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFCDX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5011:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFCDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57621*/    /*Scope*/ 18, /*->57640*/
/* 57622*/      OPC_CheckChild1Integer, 22|128,39/*5014*/, 
/* 57625*/      OPC_RecordChild2, // #1 = $src
/* 57626*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57628*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57631*/      OPC_EmitMergeInputChains1_0,
/* 57632*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFCSXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5014:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFCSXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57640*/    /*Scope*/ 18, /*->57659*/
/* 57641*/      OPC_CheckChild1Integer, 21|128,39/*5013*/, 
/* 57644*/      OPC_RecordChild2, // #1 = $src
/* 57645*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57647*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57650*/      OPC_EmitMergeInputChains1_0,
/* 57651*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFCSX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5013:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFCSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57659*/    /*Scope*/ 18, /*->57678*/
/* 57660*/      OPC_CheckChild1Integer, 26|128,39/*5018*/, 
/* 57663*/      OPC_RecordChild2, // #1 = $src
/* 57664*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57666*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57669*/      OPC_EmitMergeInputChains1_0,
/* 57670*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFIWAXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5018:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFIWAXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57678*/    /*Scope*/ 18, /*->57697*/
/* 57679*/      OPC_CheckChild1Integer, 25|128,39/*5017*/, 
/* 57682*/      OPC_RecordChild2, // #1 = $src
/* 57683*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57685*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57688*/      OPC_EmitMergeInputChains1_0,
/* 57689*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFIWAX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5017:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFIWAX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57697*/    /*Scope*/ 18, /*->57716*/
/* 57698*/      OPC_CheckChild1Integer, 28|128,39/*5020*/, 
/* 57701*/      OPC_RecordChild2, // #1 = $src
/* 57702*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57704*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57707*/      OPC_EmitMergeInputChains1_0,
/* 57708*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFIWZXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5020:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFIWZXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57716*/    /*Scope*/ 18, /*->57735*/
/* 57717*/      OPC_CheckChild1Integer, 27|128,39/*5019*/, 
/* 57720*/      OPC_RecordChild2, // #1 = $src
/* 57721*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 57723*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 57726*/      OPC_EmitMergeInputChains1_0,
/* 57727*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFIWZX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5019:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFIWZX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 57735*/    0, /*End of Scope*/
/* 57736*/  /*SwitchOpcode*/ 69, TARGET_VAL(ISD::ADDC),// ->57808
/* 57739*/    OPC_RecordChild0, // #0 = $rA
/* 57740*/    OPC_RecordChild1, // #1 = $imm
/* 57741*/    OPC_Scope, 40, /*->57783*/ // 3 children in Scope
/* 57743*/      OPC_MoveChild1,
/* 57744*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57747*/      OPC_Scope, 16, /*->57765*/ // 2 children in Scope
/* 57749*/        OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 57751*/        OPC_MoveParent,
/* 57752*/        OPC_CheckType, MVT::i32,
/* 57754*/        OPC_EmitConvertToTarget, 1,
/* 57756*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDIC), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (addc:{ *:[i32] } i32:{ *:[i32] }:$rA, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm) - Complexity = 7
                  // Dst: (ADDIC:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA, (imm:{ *:[i32] }):$imm)
/* 57765*/      /*Scope*/ 16, /*->57782*/
/* 57766*/        OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 57768*/        OPC_MoveParent,
/* 57769*/        OPC_CheckType, MVT::i64,
/* 57771*/        OPC_EmitConvertToTarget, 1,
/* 57773*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDIC8), 0|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (addc:{ *:[i64] } i64:{ *:[i64] }:$rA, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm) - Complexity = 7
                  // Dst: (ADDIC8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA, (imm:{ *:[i64] }):$imm)
/* 57782*/      0, /*End of Scope*/
/* 57783*/    /*Scope*/ 11, /*->57795*/
/* 57784*/      OPC_CheckType, MVT::i32,
/* 57786*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDC), 0|OPFL_GlueOutput,
                    MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (addc:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (ADDC:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 57795*/    /*Scope*/ 11, /*->57807*/
/* 57796*/      OPC_CheckType, MVT::i64,
/* 57798*/      OPC_MorphNodeTo2, TARGET_VAL(PPC::ADDC8), 0|OPFL_GlueOutput,
                    MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (addc:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (ADDC8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 57807*/    0, /*End of Scope*/
/* 57808*/  /*SwitchOpcode*/ 89, TARGET_VAL(ISD::MUL),// ->57900
/* 57811*/    OPC_RecordChild0, // #0 = $rA
/* 57812*/    OPC_RecordChild1, // #1 = $imm
/* 57813*/    OPC_Scope, 38, /*->57853*/ // 5 children in Scope
/* 57815*/      OPC_MoveChild1,
/* 57816*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57819*/      OPC_Scope, 15, /*->57836*/ // 2 children in Scope
/* 57821*/        OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 57823*/        OPC_MoveParent,
/* 57824*/        OPC_CheckType, MVT::i32,
/* 57826*/        OPC_EmitConvertToTarget, 1,
/* 57828*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MULLI), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (mul:{ *:[i32] } i32:{ *:[i32] }:$rA, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm) - Complexity = 7
                  // Dst: (MULLI:{ *:[i32] } i32:{ *:[i32] }:$rA, (imm:{ *:[i32] }):$imm)
/* 57836*/      /*Scope*/ 15, /*->57852*/
/* 57837*/        OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 57839*/        OPC_MoveParent,
/* 57840*/        OPC_CheckType, MVT::i64,
/* 57842*/        OPC_EmitConvertToTarget, 1,
/* 57844*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MULLI8), 0,
                      MVT::i64, 2/*#Ops*/, 0, 2, 
                  // Src: (mul:{ *:[i64] } i64:{ *:[i64] }:$rA, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm) - Complexity = 7
                  // Dst: (MULLI8:{ *:[i64] } i64:{ *:[i64] }:$rA, (imm:{ *:[i64] }):$imm)
/* 57852*/      0, /*End of Scope*/
/* 57853*/    /*Scope*/ 10, /*->57864*/
/* 57854*/      OPC_CheckType, MVT::i32,
/* 57856*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MULLW), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (mul:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (MULLW:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 57864*/    /*Scope*/ 10, /*->57875*/
/* 57865*/      OPC_CheckType, MVT::i64,
/* 57867*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MULLD), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (mul:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (MULLD:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 57875*/    /*Scope*/ 10, /*->57886*/
/* 57876*/      OPC_CheckType, MVT::i1,
/* 57878*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1, 
                // Src: (mul:{ *:[i1] } i1:{ *:[i1] }:$a, i1:{ *:[i1] }:$b) - Complexity = 3
                // Dst: (CRAND:{ *:[i1] } ?:{ *:[i1] }:$a, ?:{ *:[i1] }:$b)
/* 57886*/    /*Scope*/ 12, /*->57899*/
/* 57887*/      OPC_CheckType, MVT::v4i32,
/* 57889*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 57891*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULUWM), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (mul:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VMULUWM:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 57899*/    0, /*End of Scope*/
/* 57900*/  /*SwitchOpcode*/ 72, TARGET_VAL(ISD::SUBC),// ->57975
/* 57903*/    OPC_RecordChild0, // #0 = $imm
/* 57904*/    OPC_Scope, 42, /*->57948*/ // 2 children in Scope
/* 57906*/      OPC_MoveChild0,
/* 57907*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57910*/      OPC_Scope, 17, /*->57929*/ // 2 children in Scope
/* 57912*/        OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 57914*/        OPC_MoveParent,
/* 57915*/        OPC_RecordChild1, // #1 = $rA
/* 57916*/        OPC_CheckType, MVT::i32,
/* 57918*/        OPC_EmitConvertToTarget, 0,
/* 57920*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFIC), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                  // Src: (subc:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, i32:{ *:[i32] }:$rA) - Complexity = 7
                  // Dst: (SUBFIC:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA, (imm:{ *:[i32] }):$imm)
/* 57929*/      /*Scope*/ 17, /*->57947*/
/* 57930*/        OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 57932*/        OPC_MoveParent,
/* 57933*/        OPC_RecordChild1, // #1 = $rA
/* 57934*/        OPC_CheckType, MVT::i64,
/* 57936*/        OPC_EmitConvertToTarget, 0,
/* 57938*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFIC8), 0|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                  // Src: (subc:{ *:[i64] } (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, i64:{ *:[i64] }:$rA) - Complexity = 7
                  // Dst: (SUBFIC8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA, (imm:{ *:[i64] }):$imm)
/* 57947*/      0, /*End of Scope*/
/* 57948*/    /*Scope*/ 25, /*->57974*/
/* 57949*/      OPC_RecordChild1, // #1 = $rA
/* 57950*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->57962
/* 57953*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFC), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (subc:{ *:[i32] } i32:{ *:[i32] }:$rB, i32:{ *:[i32] }:$rA) - Complexity = 3
                  // Dst: (SUBFC:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 57962*/      /*SwitchType*/ 9, MVT::i64,// ->57973
/* 57964*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SUBFC8), 0|OPFL_GlueOutput,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 0, 
                  // Src: (subc:{ *:[i64] } i64:{ *:[i64] }:$rB, i64:{ *:[i64] }:$rA) - Complexity = 3
                  // Dst: (SUBFC8:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 57973*/      0, // EndSwitchType
/* 57974*/    0, /*End of Scope*/
/* 57975*/  /*SwitchOpcode*/ 53|128,48/*6197*/, TARGET_VAL(ISD::SETCC),// ->64176
/* 57979*/    OPC_RecordChild0, // #0 = $s1
/* 57980*/    OPC_Scope, 59|128,8/*1083*/, /*->59066*/ // 8 children in Scope
/* 57983*/      OPC_CheckChild0Type, MVT::i32,
/* 57985*/      OPC_RecordChild1, // #1 = $imm
/* 57986*/      OPC_Scope, 46|128,5/*686*/, /*->58675*/ // 2 children in Scope
/* 57989*/        OPC_MoveChild1,
/* 57990*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57993*/        OPC_Scope, 30, /*->58025*/ // 10 children in Scope
/* 57995*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 57997*/          OPC_MoveParent,
/* 57998*/          OPC_MoveChild2,
/* 57999*/          OPC_CheckCondCode, ISD::SETULT,
/* 58001*/          OPC_MoveParent,
/* 58002*/          OPC_CheckType, MVT::i1,
/* 58004*/          OPC_EmitConvertToTarget, 1,
/* 58006*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58014*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58017*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULT:{ *:[Other] }) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] })
/* 58025*/        /*Scope*/ 30, /*->58056*/
/* 58026*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 58028*/          OPC_MoveParent,
/* 58029*/          OPC_MoveChild2,
/* 58030*/          OPC_CheckCondCode, ISD::SETLT,
/* 58032*/          OPC_MoveParent,
/* 58033*/          OPC_CheckType, MVT::i1,
/* 58035*/          OPC_EmitConvertToTarget, 1,
/* 58037*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58045*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58048*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLT:{ *:[Other] }) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] })
/* 58056*/        /*Scope*/ 30, /*->58087*/
/* 58057*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 58059*/          OPC_MoveParent,
/* 58060*/          OPC_MoveChild2,
/* 58061*/          OPC_CheckCondCode, ISD::SETUGT,
/* 58063*/          OPC_MoveParent,
/* 58064*/          OPC_CheckType, MVT::i1,
/* 58066*/          OPC_EmitConvertToTarget, 1,
/* 58068*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58076*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58079*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] })
/* 58087*/        /*Scope*/ 60, /*->58148*/
/* 58088*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 58090*/          OPC_MoveParent,
/* 58091*/          OPC_MoveChild2,
/* 58092*/          OPC_Scope, 26, /*->58120*/ // 2 children in Scope
/* 58094*/            OPC_CheckCondCode, ISD::SETGT,
/* 58096*/            OPC_MoveParent,
/* 58097*/            OPC_CheckType, MVT::i1,
/* 58099*/            OPC_EmitConvertToTarget, 1,
/* 58101*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58109*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58112*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGT:{ *:[Other] }) - Complexity = 7
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] })
/* 58120*/          /*Scope*/ 26, /*->58147*/
/* 58121*/            OPC_CheckCondCode, ISD::SETEQ,
/* 58123*/            OPC_MoveParent,
/* 58124*/            OPC_CheckType, MVT::i1,
/* 58126*/            OPC_EmitConvertToTarget, 1,
/* 58128*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58136*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58139*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETEQ:{ *:[Other] }) - Complexity = 7
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] })
/* 58147*/          0, /*End of Scope*/
/* 58148*/        /*Scope*/ 89, /*->58238*/
/* 58149*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 58151*/          OPC_MoveParent,
/* 58152*/          OPC_MoveChild2,
/* 58153*/          OPC_Scope, 26, /*->58181*/ // 2 children in Scope
/* 58155*/            OPC_CheckCondCode, ISD::SETEQ,
/* 58157*/            OPC_MoveParent,
/* 58158*/            OPC_CheckType, MVT::i1,
/* 58160*/            OPC_EmitConvertToTarget, 1,
/* 58162*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58170*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58173*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETEQ:{ *:[Other] }) - Complexity = 7
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] })
/* 58181*/          /*Scope*/ 55, /*->58237*/
/* 58182*/            OPC_CheckCondCode, ISD::SETUGE,
/* 58184*/            OPC_MoveParent,
/* 58185*/            OPC_CheckType, MVT::i1,
/* 58187*/            OPC_EmitConvertToTarget, 1,
/* 58189*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58197*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58200*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 58208*/            OPC_EmitConvertToTarget, 1,
/* 58210*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 58218*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58221*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 58229*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                          MVT::i1, 2/*#Ops*/, 5, 9, 
                      // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] }) - Complexity = 7
                      // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }))
/* 58237*/          0, /*End of Scope*/
/* 58238*/        /*Scope*/ 59, /*->58298*/
/* 58239*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 58241*/          OPC_MoveParent,
/* 58242*/          OPC_MoveChild2,
/* 58243*/          OPC_CheckCondCode, ISD::SETGE,
/* 58245*/          OPC_MoveParent,
/* 58246*/          OPC_CheckType, MVT::i1,
/* 58248*/          OPC_EmitConvertToTarget, 1,
/* 58250*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58258*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58261*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 58269*/          OPC_EmitConvertToTarget, 1,
/* 58271*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 58279*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58282*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 58290*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 5, 9, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETGE:{ *:[Other] }) - Complexity = 7
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_lt:{ *:[i32] }))
/* 58298*/        /*Scope*/ 59, /*->58358*/
/* 58299*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 58301*/          OPC_MoveParent,
/* 58302*/          OPC_MoveChild2,
/* 58303*/          OPC_CheckCondCode, ISD::SETULE,
/* 58305*/          OPC_MoveParent,
/* 58306*/          OPC_CheckType, MVT::i1,
/* 58308*/          OPC_EmitConvertToTarget, 1,
/* 58310*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58318*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58321*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 58329*/          OPC_EmitConvertToTarget, 1,
/* 58331*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 58339*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58342*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 58350*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 5, 9, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] }) - Complexity = 7
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }))
/* 58358*/        /*Scope*/ 118, /*->58477*/
/* 58359*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 58361*/          OPC_MoveParent,
/* 58362*/          OPC_MoveChild2,
/* 58363*/          OPC_Scope, 55, /*->58420*/ // 2 children in Scope
/* 58365*/            OPC_CheckCondCode, ISD::SETLE,
/* 58367*/            OPC_MoveParent,
/* 58368*/            OPC_CheckType, MVT::i1,
/* 58370*/            OPC_EmitConvertToTarget, 1,
/* 58372*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58380*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58383*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 58391*/            OPC_EmitConvertToTarget, 1,
/* 58393*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 58401*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58404*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 58412*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                          MVT::i1, 2/*#Ops*/, 5, 9, 
                      // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETLE:{ *:[Other] }) - Complexity = 7
                      // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_gt:{ *:[i32] }))
/* 58420*/          /*Scope*/ 55, /*->58476*/
/* 58421*/            OPC_CheckCondCode, ISD::SETNE,
/* 58423*/            OPC_MoveParent,
/* 58424*/            OPC_CheckType, MVT::i1,
/* 58426*/            OPC_EmitConvertToTarget, 1,
/* 58428*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58436*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58439*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 58447*/            OPC_EmitConvertToTarget, 1,
/* 58449*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 58457*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58460*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 58468*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                          MVT::i1, 2/*#Ops*/, 5, 9, 
                      // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm, SETNE:{ *:[Other] }) - Complexity = 7
                      // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }))
/* 58476*/          0, /*End of Scope*/
/* 58477*/        /*Scope*/ 59, /*->58537*/
/* 58478*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 58480*/          OPC_MoveParent,
/* 58481*/          OPC_MoveChild2,
/* 58482*/          OPC_CheckCondCode, ISD::SETNE,
/* 58484*/          OPC_MoveParent,
/* 58485*/          OPC_CheckType, MVT::i1,
/* 58487*/          OPC_EmitConvertToTarget, 1,
/* 58489*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58497*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58500*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 58508*/          OPC_EmitConvertToTarget, 1,
/* 58510*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 58518*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58521*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 58529*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 5, 9, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] }) - Complexity = 7
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } ?:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm), sub_eq:{ *:[i32] }))
/* 58537*/        /*Scope*/ 7|128,1/*135*/, /*->58674*/
/* 58539*/          OPC_MoveParent,
/* 58540*/          OPC_MoveChild2,
/* 58541*/          OPC_Scope, 42, /*->58585*/ // 2 children in Scope
/* 58543*/            OPC_CheckCondCode, ISD::SETEQ,
/* 58545*/            OPC_MoveParent,
/* 58546*/            OPC_CheckType, MVT::i1,
/* 58548*/            OPC_EmitConvertToTarget, 1,
/* 58550*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 58553*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 58561*/            OPC_EmitConvertToTarget, 1,
/* 58563*/            OPC_EmitNodeXForm, 1, 5, // LO16
/* 58566*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 58574*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58577*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8, 
                      // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETEQ:{ *:[Other] }) - Complexity = 6
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] })
/* 58585*/          /*Scope*/ 87, /*->58673*/
/* 58586*/            OPC_CheckCondCode, ISD::SETNE,
/* 58588*/            OPC_MoveParent,
/* 58589*/            OPC_CheckType, MVT::i1,
/* 58591*/            OPC_EmitConvertToTarget, 1,
/* 58593*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 58596*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 58604*/            OPC_EmitConvertToTarget, 1,
/* 58606*/            OPC_EmitNodeXForm, 1, 5, // LO16
/* 58609*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 58617*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58620*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 58628*/            OPC_EmitConvertToTarget, 1,
/* 58630*/            OPC_EmitNodeXForm, 0, 10, // HI16
/* 58633*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 11,  // Results = #12
/* 58641*/            OPC_EmitConvertToTarget, 1,
/* 58643*/            OPC_EmitNodeXForm, 1, 13, // LO16
/* 58646*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 12, 14,  // Results = #15
/* 58654*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58657*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 15, 16,  // Results = #17
/* 58665*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                          MVT::i1, 2/*#Ops*/, 9, 17, 
                      // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, (imm:{ *:[i32] }):$imm, SETNE:{ *:[Other] }) - Complexity = 6
                      // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLWI:{ *:[i32] } (XORIS:{ *:[i32] } ?:{ *:[i32] }:$s1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), sub_eq:{ *:[i32] }))
/* 58673*/          0, /*End of Scope*/
/* 58674*/        0, /*End of Scope*/
/* 58675*/      /*Scope*/ 4|128,3/*388*/, /*->59065*/
/* 58677*/        OPC_MoveChild2,
/* 58678*/        OPC_Scope, 24, /*->58704*/ // 10 children in Scope
/* 58680*/          OPC_CheckCondCode, ISD::SETULT,
/* 58682*/          OPC_MoveParent,
/* 58683*/          OPC_CheckType, MVT::i1,
/* 58685*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58693*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58696*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULT:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] })
/* 58704*/        /*Scope*/ 24, /*->58729*/
/* 58705*/          OPC_CheckCondCode, ISD::SETLT,
/* 58707*/          OPC_MoveParent,
/* 58708*/          OPC_CheckType, MVT::i1,
/* 58710*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58718*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58721*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLT:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] })
/* 58729*/        /*Scope*/ 24, /*->58754*/
/* 58730*/          OPC_CheckCondCode, ISD::SETUGT,
/* 58732*/          OPC_MoveParent,
/* 58733*/          OPC_CheckType, MVT::i1,
/* 58735*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58743*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58746*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGT:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] })
/* 58754*/        /*Scope*/ 24, /*->58779*/
/* 58755*/          OPC_CheckCondCode, ISD::SETGT,
/* 58757*/          OPC_MoveParent,
/* 58758*/          OPC_CheckType, MVT::i1,
/* 58760*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58768*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58771*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGT:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] })
/* 58779*/        /*Scope*/ 24, /*->58804*/
/* 58780*/          OPC_CheckCondCode, ISD::SETEQ,
/* 58782*/          OPC_MoveParent,
/* 58783*/          OPC_CheckType, MVT::i1,
/* 58785*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58793*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 58796*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETEQ:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] })
/* 58804*/        /*Scope*/ 51, /*->58856*/
/* 58805*/          OPC_CheckCondCode, ISD::SETUGE,
/* 58807*/          OPC_MoveParent,
/* 58808*/          OPC_CheckType, MVT::i1,
/* 58810*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58818*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58821*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58829*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 58837*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58840*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 58848*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETUGE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }))
/* 58856*/        /*Scope*/ 51, /*->58908*/
/* 58857*/          OPC_CheckCondCode, ISD::SETGE,
/* 58859*/          OPC_MoveParent,
/* 58860*/          OPC_CheckType, MVT::i1,
/* 58862*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58870*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58873*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58881*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 58889*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 58892*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 58900*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETGE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_lt:{ *:[i32] }))
/* 58908*/        /*Scope*/ 51, /*->58960*/
/* 58909*/          OPC_CheckCondCode, ISD::SETULE,
/* 58911*/          OPC_MoveParent,
/* 58912*/          OPC_CheckType, MVT::i1,
/* 58914*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58922*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58925*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58933*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 58941*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58944*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 58952*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETULE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }))
/* 58960*/        /*Scope*/ 51, /*->59012*/
/* 58961*/          OPC_CheckCondCode, ISD::SETLE,
/* 58963*/          OPC_MoveParent,
/* 58964*/          OPC_CheckType, MVT::i1,
/* 58966*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 58974*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58977*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 58985*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 58993*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 58996*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 59004*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETLE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_gt:{ *:[i32] }))
/* 59012*/        /*Scope*/ 51, /*->59064*/
/* 59013*/          OPC_CheckCondCode, ISD::SETNE,
/* 59015*/          OPC_MoveParent,
/* 59016*/          OPC_CheckType, MVT::i1,
/* 59018*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 59026*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59029*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 59037*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 59045*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59048*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 59056*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i32:{ *:[i32] }:$s1, i32:{ *:[i32] }:$s2, SETNE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPW:{ *:[i32] } ?:{ *:[i32] }:$s1, ?:{ *:[i32] }:$s2), sub_eq:{ *:[i32] }))
/* 59064*/        0, /*End of Scope*/
/* 59065*/      0, /*End of Scope*/
/* 59066*/    /*Scope*/ 62|128,8/*1086*/, /*->60154*/
/* 59068*/      OPC_CheckChild0Type, MVT::i64,
/* 59070*/      OPC_RecordChild1, // #1 = $imm
/* 59071*/      OPC_Scope, 49|128,5/*689*/, /*->59763*/ // 2 children in Scope
/* 59074*/        OPC_MoveChild1,
/* 59075*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59078*/        OPC_Scope, 30, /*->59110*/ // 12 children in Scope
/* 59080*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 59082*/          OPC_MoveParent,
/* 59083*/          OPC_MoveChild2,
/* 59084*/          OPC_CheckCondCode, ISD::SETULT,
/* 59086*/          OPC_MoveParent,
/* 59087*/          OPC_CheckType, MVT::i1,
/* 59089*/          OPC_EmitConvertToTarget, 1,
/* 59091*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59099*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59102*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULT:{ *:[Other] }) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] })
/* 59110*/        /*Scope*/ 30, /*->59141*/
/* 59111*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 59113*/          OPC_MoveParent,
/* 59114*/          OPC_MoveChild2,
/* 59115*/          OPC_CheckCondCode, ISD::SETLT,
/* 59117*/          OPC_MoveParent,
/* 59118*/          OPC_CheckType, MVT::i1,
/* 59120*/          OPC_EmitConvertToTarget, 1,
/* 59122*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59130*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59133*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLT:{ *:[Other] }) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] })
/* 59141*/        /*Scope*/ 30, /*->59172*/
/* 59142*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 59144*/          OPC_MoveParent,
/* 59145*/          OPC_MoveChild2,
/* 59146*/          OPC_CheckCondCode, ISD::SETUGT,
/* 59148*/          OPC_MoveParent,
/* 59149*/          OPC_CheckType, MVT::i1,
/* 59151*/          OPC_EmitConvertToTarget, 1,
/* 59153*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59161*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 59164*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] })
/* 59172*/        /*Scope*/ 60, /*->59233*/
/* 59173*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 59175*/          OPC_MoveParent,
/* 59176*/          OPC_MoveChild2,
/* 59177*/          OPC_Scope, 26, /*->59205*/ // 2 children in Scope
/* 59179*/            OPC_CheckCondCode, ISD::SETGT,
/* 59181*/            OPC_MoveParent,
/* 59182*/            OPC_CheckType, MVT::i1,
/* 59184*/            OPC_EmitConvertToTarget, 1,
/* 59186*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59194*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 59197*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGT:{ *:[Other] }) - Complexity = 7
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] })
/* 59205*/          /*Scope*/ 26, /*->59232*/
/* 59206*/            OPC_CheckCondCode, ISD::SETEQ,
/* 59208*/            OPC_MoveParent,
/* 59209*/            OPC_CheckType, MVT::i1,
/* 59211*/            OPC_EmitConvertToTarget, 1,
/* 59213*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59221*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59224*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4, 
                      // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETEQ:{ *:[Other] }) - Complexity = 7
                      // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] })
/* 59232*/          0, /*End of Scope*/
/* 59233*/        /*Scope*/ 30, /*->59264*/
/* 59234*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 59236*/          OPC_MoveParent,
/* 59237*/          OPC_MoveChild2,
/* 59238*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59240*/          OPC_MoveParent,
/* 59241*/          OPC_CheckType, MVT::i1,
/* 59243*/          OPC_EmitConvertToTarget, 1,
/* 59245*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59253*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59256*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETEQ:{ *:[Other] }) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] })
/* 59264*/        /*Scope*/ 46, /*->59311*/
/* 59265*/          OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 59267*/          OPC_MoveParent,
/* 59268*/          OPC_MoveChild2,
/* 59269*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59271*/          OPC_MoveParent,
/* 59272*/          OPC_CheckType, MVT::i1,
/* 59274*/          OPC_EmitConvertToTarget, 1,
/* 59276*/          OPC_EmitNodeXForm, 0, 2, // HI16
/* 59279*/          OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 59287*/          OPC_EmitConvertToTarget, 1,
/* 59289*/          OPC_EmitNodeXForm, 1, 5, // LO16
/* 59292*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 59300*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59303*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETEQ:{ *:[Other] }) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] })
/* 59311*/        /*Scope*/ 59, /*->59371*/
/* 59312*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 59314*/          OPC_MoveParent,
/* 59315*/          OPC_MoveChild2,
/* 59316*/          OPC_CheckCondCode, ISD::SETUGE,
/* 59318*/          OPC_MoveParent,
/* 59319*/          OPC_CheckType, MVT::i1,
/* 59321*/          OPC_EmitConvertToTarget, 1,
/* 59323*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59331*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59334*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 59342*/          OPC_EmitConvertToTarget, 1,
/* 59344*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 59352*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59355*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 59363*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 5, 9, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETUGE:{ *:[Other] }) - Complexity = 7
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }))
/* 59371*/        /*Scope*/ 59, /*->59431*/
/* 59372*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 59374*/          OPC_MoveParent,
/* 59375*/          OPC_MoveChild2,
/* 59376*/          OPC_CheckCondCode, ISD::SETGE,
/* 59378*/          OPC_MoveParent,
/* 59379*/          OPC_CheckType, MVT::i1,
/* 59381*/          OPC_EmitConvertToTarget, 1,
/* 59383*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59391*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59394*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 59402*/          OPC_EmitConvertToTarget, 1,
/* 59404*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 59412*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59415*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 59423*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 5, 9, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETGE:{ *:[Other] }) - Complexity = 7
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_lt:{ *:[i32] }))
/* 59431*/        /*Scope*/ 59, /*->59491*/
/* 59432*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 59434*/          OPC_MoveParent,
/* 59435*/          OPC_MoveChild2,
/* 59436*/          OPC_CheckCondCode, ISD::SETULE,
/* 59438*/          OPC_MoveParent,
/* 59439*/          OPC_CheckType, MVT::i1,
/* 59441*/          OPC_EmitConvertToTarget, 1,
/* 59443*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59451*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 59454*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 59462*/          OPC_EmitConvertToTarget, 1,
/* 59464*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 59472*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 59475*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 59483*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 5, 9, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETULE:{ *:[Other] }) - Complexity = 7
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }))
/* 59491*/        /*Scope*/ 118, /*->59610*/
/* 59492*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 59494*/          OPC_MoveParent,
/* 59495*/          OPC_MoveChild2,
/* 59496*/          OPC_Scope, 55, /*->59553*/ // 2 children in Scope
/* 59498*/            OPC_CheckCondCode, ISD::SETLE,
/* 59500*/            OPC_MoveParent,
/* 59501*/            OPC_CheckType, MVT::i1,
/* 59503*/            OPC_EmitConvertToTarget, 1,
/* 59505*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59513*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 59516*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 59524*/            OPC_EmitConvertToTarget, 1,
/* 59526*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 59534*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 59537*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 59545*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                          MVT::i1, 2/*#Ops*/, 5, 9, 
                      // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETLE:{ *:[Other] }) - Complexity = 7
                      // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_gt:{ *:[i32] }))
/* 59553*/          /*Scope*/ 55, /*->59609*/
/* 59554*/            OPC_CheckCondCode, ISD::SETNE,
/* 59556*/            OPC_MoveParent,
/* 59557*/            OPC_CheckType, MVT::i1,
/* 59559*/            OPC_EmitConvertToTarget, 1,
/* 59561*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59569*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59572*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 59580*/            OPC_EmitConvertToTarget, 1,
/* 59582*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 59590*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59593*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 59601*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                          MVT::i1, 2/*#Ops*/, 5, 9, 
                      // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm, SETNE:{ *:[Other] }) - Complexity = 7
                      // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }))
/* 59609*/          0, /*End of Scope*/
/* 59610*/        /*Scope*/ 59, /*->59670*/
/* 59611*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 59613*/          OPC_MoveParent,
/* 59614*/          OPC_MoveChild2,
/* 59615*/          OPC_CheckCondCode, ISD::SETNE,
/* 59617*/          OPC_MoveParent,
/* 59618*/          OPC_CheckType, MVT::i1,
/* 59620*/          OPC_EmitConvertToTarget, 1,
/* 59622*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 59630*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59633*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 59641*/          OPC_EmitConvertToTarget, 1,
/* 59643*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 59651*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59654*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 59662*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 5, 9, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_immZExt16>><<X:LO16>>:$imm, SETNE:{ *:[Other] }) - Complexity = 7
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } ?:{ *:[i64] }:$s1, (imm:{ *:[i64] }):$imm), sub_eq:{ *:[i32] }))
/* 59670*/        /*Scope*/ 91, /*->59762*/
/* 59671*/          OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 59673*/          OPC_MoveParent,
/* 59674*/          OPC_MoveChild2,
/* 59675*/          OPC_CheckCondCode, ISD::SETNE,
/* 59677*/          OPC_MoveParent,
/* 59678*/          OPC_CheckType, MVT::i1,
/* 59680*/          OPC_EmitConvertToTarget, 1,
/* 59682*/          OPC_EmitNodeXForm, 0, 2, // HI16
/* 59685*/          OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 59693*/          OPC_EmitConvertToTarget, 1,
/* 59695*/          OPC_EmitNodeXForm, 1, 5, // LO16
/* 59698*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 59706*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59709*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 59717*/          OPC_EmitConvertToTarget, 1,
/* 59719*/          OPC_EmitNodeXForm, 0, 10, // HI16
/* 59722*/          OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 11,  // Results = #12
/* 59730*/          OPC_EmitConvertToTarget, 1,
/* 59732*/          OPC_EmitNodeXForm, 1, 13, // LO16
/* 59735*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 12, 14,  // Results = #15
/* 59743*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59746*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 15, 16,  // Results = #17
/* 59754*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 9, 17, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, (imm:{ *:[i64] })<<P:Predicate_imm64ZExt32>>:$imm, SETNE:{ *:[Other] }) - Complexity = 7
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLDI:{ *:[i32] } (XORIS8:{ *:[i64] } ?:{ *:[i64] }:$s1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO16:{ *:[i64] } (imm:{ *:[i64] }):$imm)), sub_eq:{ *:[i32] }))
/* 59762*/        0, /*End of Scope*/
/* 59763*/      /*Scope*/ 4|128,3/*388*/, /*->60153*/
/* 59765*/        OPC_MoveChild2,
/* 59766*/        OPC_Scope, 24, /*->59792*/ // 10 children in Scope
/* 59768*/          OPC_CheckCondCode, ISD::SETULT,
/* 59770*/          OPC_MoveParent,
/* 59771*/          OPC_CheckType, MVT::i1,
/* 59773*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 59781*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59784*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULT:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] })
/* 59792*/        /*Scope*/ 24, /*->59817*/
/* 59793*/          OPC_CheckCondCode, ISD::SETLT,
/* 59795*/          OPC_MoveParent,
/* 59796*/          OPC_CheckType, MVT::i1,
/* 59798*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 59806*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59809*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLT:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] })
/* 59817*/        /*Scope*/ 24, /*->59842*/
/* 59818*/          OPC_CheckCondCode, ISD::SETUGT,
/* 59820*/          OPC_MoveParent,
/* 59821*/          OPC_CheckType, MVT::i1,
/* 59823*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 59831*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 59834*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGT:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] })
/* 59842*/        /*Scope*/ 24, /*->59867*/
/* 59843*/          OPC_CheckCondCode, ISD::SETGT,
/* 59845*/          OPC_MoveParent,
/* 59846*/          OPC_CheckType, MVT::i1,
/* 59848*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 59856*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 59859*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGT:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] })
/* 59867*/        /*Scope*/ 24, /*->59892*/
/* 59868*/          OPC_CheckCondCode, ISD::SETEQ,
/* 59870*/          OPC_MoveParent,
/* 59871*/          OPC_CheckType, MVT::i1,
/* 59873*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 59881*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 59884*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETEQ:{ *:[Other] }) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] })
/* 59892*/        /*Scope*/ 51, /*->59944*/
/* 59893*/          OPC_CheckCondCode, ISD::SETUGE,
/* 59895*/          OPC_MoveParent,
/* 59896*/          OPC_CheckType, MVT::i1,
/* 59898*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 59906*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59909*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 59917*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 59925*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59928*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 59936*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETUGE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }))
/* 59944*/        /*Scope*/ 51, /*->59996*/
/* 59945*/          OPC_CheckCondCode, ISD::SETGE,
/* 59947*/          OPC_MoveParent,
/* 59948*/          OPC_CheckType, MVT::i1,
/* 59950*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 59958*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59961*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 59969*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 59977*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 59980*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 59988*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETGE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] }))
/* 59996*/        /*Scope*/ 51, /*->60048*/
/* 59997*/          OPC_CheckCondCode, ISD::SETULE,
/* 59999*/          OPC_MoveParent,
/* 60000*/          OPC_CheckType, MVT::i1,
/* 60002*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60010*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60013*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60021*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60029*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60032*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60040*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }))
/* 60048*/        /*Scope*/ 51, /*->60100*/
/* 60049*/          OPC_CheckCondCode, ISD::SETLE,
/* 60051*/          OPC_MoveParent,
/* 60052*/          OPC_CheckType, MVT::i1,
/* 60054*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60062*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60065*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60073*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60081*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60084*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60092*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETLE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_gt:{ *:[i32] }))
/* 60100*/        /*Scope*/ 51, /*->60152*/
/* 60101*/          OPC_CheckCondCode, ISD::SETNE,
/* 60103*/          OPC_MoveParent,
/* 60104*/          OPC_CheckType, MVT::i1,
/* 60106*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60114*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60117*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60125*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60133*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60136*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60144*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                        MVT::i1, 2/*#Ops*/, 4, 7, 
                    // Src: (setcc:{ *:[i1] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETNE:{ *:[Other] }) - Complexity = 3
                    // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (CMPD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_eq:{ *:[i32] }))
/* 60152*/        0, /*End of Scope*/
/* 60153*/      0, /*End of Scope*/
/* 60154*/    /*Scope*/ 18|128,1/*146*/, /*->60302*/
/* 60156*/      OPC_CheckChild0Type, MVT::i1,
/* 60158*/      OPC_RecordChild1, // #1 = $s2
/* 60159*/      OPC_MoveChild2,
/* 60160*/      OPC_Scope, 13, /*->60175*/ // 10 children in Scope
/* 60162*/        OPC_CheckCondCode, ISD::SETLT,
/* 60164*/        OPC_MoveParent,
/* 60165*/        OPC_CheckType, MVT::i1,
/* 60167*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRANDC), 0,
                      MVT::i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$s1, ?:{ *:[i1] }:$s2)
/* 60175*/      /*Scope*/ 13, /*->60189*/
/* 60176*/        OPC_CheckCondCode, ISD::SETULT,
/* 60178*/        OPC_MoveParent,
/* 60179*/        OPC_CheckType, MVT::i1,
/* 60181*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRANDC), 0,
                      MVT::i1, 2/*#Ops*/, 1, 0, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETULT:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$s2, ?:{ *:[i1] }:$s1)
/* 60189*/      /*Scope*/ 13, /*->60203*/
/* 60190*/        OPC_CheckCondCode, ISD::SETLE,
/* 60192*/        OPC_MoveParent,
/* 60193*/        OPC_CheckType, MVT::i1,
/* 60195*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRORC), 0,
                      MVT::i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRORC:{ *:[i1] } ?:{ *:[i1] }:$s1, ?:{ *:[i1] }:$s2)
/* 60203*/      /*Scope*/ 13, /*->60217*/
/* 60204*/        OPC_CheckCondCode, ISD::SETULE,
/* 60206*/        OPC_MoveParent,
/* 60207*/        OPC_CheckType, MVT::i1,
/* 60209*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRORC), 0,
                      MVT::i1, 2/*#Ops*/, 1, 0, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETULE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRORC:{ *:[i1] } ?:{ *:[i1] }:$s2, ?:{ *:[i1] }:$s1)
/* 60217*/      /*Scope*/ 13, /*->60231*/
/* 60218*/        OPC_CheckCondCode, ISD::SETEQ,
/* 60220*/        OPC_MoveParent,
/* 60221*/        OPC_CheckType, MVT::i1,
/* 60223*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CREQV), 0,
                      MVT::i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (CREQV:{ *:[i1] } ?:{ *:[i1] }:$s1, ?:{ *:[i1] }:$s2)
/* 60231*/      /*Scope*/ 13, /*->60245*/
/* 60232*/        OPC_CheckCondCode, ISD::SETGE,
/* 60234*/        OPC_MoveParent,
/* 60235*/        OPC_CheckType, MVT::i1,
/* 60237*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRORC), 0,
                      MVT::i1, 2/*#Ops*/, 1, 0, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRORC:{ *:[i1] } ?:{ *:[i1] }:$s2, ?:{ *:[i1] }:$s1)
/* 60245*/      /*Scope*/ 13, /*->60259*/
/* 60246*/        OPC_CheckCondCode, ISD::SETUGE,
/* 60248*/        OPC_MoveParent,
/* 60249*/        OPC_CheckType, MVT::i1,
/* 60251*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRORC), 0,
                      MVT::i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETUGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRORC:{ *:[i1] } ?:{ *:[i1] }:$s1, ?:{ *:[i1] }:$s2)
/* 60259*/      /*Scope*/ 13, /*->60273*/
/* 60260*/        OPC_CheckCondCode, ISD::SETGT,
/* 60262*/        OPC_MoveParent,
/* 60263*/        OPC_CheckType, MVT::i1,
/* 60265*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRANDC), 0,
                      MVT::i1, 2/*#Ops*/, 1, 0, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$s2, ?:{ *:[i1] }:$s1)
/* 60273*/      /*Scope*/ 13, /*->60287*/
/* 60274*/        OPC_CheckCondCode, ISD::SETUGT,
/* 60276*/        OPC_MoveParent,
/* 60277*/        OPC_CheckType, MVT::i1,
/* 60279*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRANDC), 0,
                      MVT::i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETUGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$s1, ?:{ *:[i1] }:$s2)
/* 60287*/      /*Scope*/ 13, /*->60301*/
/* 60288*/        OPC_CheckCondCode, ISD::SETNE,
/* 60290*/        OPC_MoveParent,
/* 60291*/        OPC_CheckType, MVT::i1,
/* 60293*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRXOR), 0,
                      MVT::i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[i1] } i1:{ *:[i1] }:$s1, i1:{ *:[i1] }:$s2, SETNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$s1, ?:{ *:[i1] }:$s2)
/* 60301*/      0, /*End of Scope*/
/* 60302*/    /*Scope*/ 35|128,8/*1059*/, /*->61363*/
/* 60304*/      OPC_CheckChild0Type, MVT::f32,
/* 60306*/      OPC_RecordChild1, // #1 = $s2
/* 60307*/      OPC_MoveChild2,
/* 60308*/      OPC_Scope, 26, /*->60336*/ // 26 children in Scope
/* 60310*/        OPC_CheckCondCode, ISD::SETOLT,
/* 60312*/        OPC_MoveParent,
/* 60313*/        OPC_CheckType, MVT::i1,
/* 60315*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60317*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60325*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60328*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETOLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] })
/* 60336*/      /*Scope*/ 26, /*->60363*/
/* 60337*/        OPC_CheckCondCode, ISD::SETLT,
/* 60339*/        OPC_MoveParent,
/* 60340*/        OPC_CheckType, MVT::i1,
/* 60342*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60344*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60352*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60355*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] })
/* 60363*/      /*Scope*/ 26, /*->60390*/
/* 60364*/        OPC_CheckCondCode, ISD::SETOGT,
/* 60366*/        OPC_MoveParent,
/* 60367*/        OPC_CheckType, MVT::i1,
/* 60369*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60371*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60379*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60382*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETOGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 60390*/      /*Scope*/ 26, /*->60417*/
/* 60391*/        OPC_CheckCondCode, ISD::SETGT,
/* 60393*/        OPC_MoveParent,
/* 60394*/        OPC_CheckType, MVT::i1,
/* 60396*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60398*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60406*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60409*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 60417*/      /*Scope*/ 26, /*->60444*/
/* 60418*/        OPC_CheckCondCode, ISD::SETOEQ,
/* 60420*/        OPC_MoveParent,
/* 60421*/        OPC_CheckType, MVT::i1,
/* 60423*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60425*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60433*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60436*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETOEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] })
/* 60444*/      /*Scope*/ 26, /*->60471*/
/* 60445*/        OPC_CheckCondCode, ISD::SETEQ,
/* 60447*/        OPC_MoveParent,
/* 60448*/        OPC_CheckType, MVT::i1,
/* 60450*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60452*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60460*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60463*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] })
/* 60471*/      /*Scope*/ 26, /*->60498*/
/* 60472*/        OPC_CheckCondCode, ISD::SETUO,
/* 60474*/        OPC_MoveParent,
/* 60475*/        OPC_CheckType, MVT::i1,
/* 60477*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60479*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60487*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 60490*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUO:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] })
/* 60498*/      /*Scope*/ 26, /*->60525*/
/* 60499*/        OPC_CheckCondCode, ISD::SETOLT,
/* 60501*/        OPC_MoveParent,
/* 60502*/        OPC_CheckType, MVT::i1,
/* 60504*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 60506*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60514*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60517*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETOLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 60525*/      /*Scope*/ 26, /*->60552*/
/* 60526*/        OPC_CheckCondCode, ISD::SETLT,
/* 60528*/        OPC_MoveParent,
/* 60529*/        OPC_CheckType, MVT::i1,
/* 60531*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 60533*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60541*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60544*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 60552*/      /*Scope*/ 26, /*->60579*/
/* 60553*/        OPC_CheckCondCode, ISD::SETOGT,
/* 60555*/        OPC_MoveParent,
/* 60556*/        OPC_CheckType, MVT::i1,
/* 60558*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 60560*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60568*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60571*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETOGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 60579*/      /*Scope*/ 26, /*->60606*/
/* 60580*/        OPC_CheckCondCode, ISD::SETGT,
/* 60582*/        OPC_MoveParent,
/* 60583*/        OPC_CheckType, MVT::i1,
/* 60585*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 60587*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60595*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60598*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 60606*/      /*Scope*/ 26, /*->60633*/
/* 60607*/        OPC_CheckCondCode, ISD::SETOEQ,
/* 60609*/        OPC_MoveParent,
/* 60610*/        OPC_CheckType, MVT::i1,
/* 60612*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 60614*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60622*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60625*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETOEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 60633*/      /*Scope*/ 26, /*->60660*/
/* 60634*/        OPC_CheckCondCode, ISD::SETEQ,
/* 60636*/        OPC_MoveParent,
/* 60637*/        OPC_CheckType, MVT::i1,
/* 60639*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 60641*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60649*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60652*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] })
/* 60660*/      /*Scope*/ 53, /*->60714*/
/* 60661*/        OPC_CheckCondCode, ISD::SETUGE,
/* 60663*/        OPC_MoveParent,
/* 60664*/        OPC_CheckType, MVT::i1,
/* 60666*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60668*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60676*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60679*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60687*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60695*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60698*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60706*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }))
/* 60714*/      /*Scope*/ 53, /*->60768*/
/* 60715*/        OPC_CheckCondCode, ISD::SETGE,
/* 60717*/        OPC_MoveParent,
/* 60718*/        OPC_CheckType, MVT::i1,
/* 60720*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60722*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60730*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60733*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60741*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60749*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60752*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60760*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_lt:{ *:[i32] }))
/* 60768*/      /*Scope*/ 53, /*->60822*/
/* 60769*/        OPC_CheckCondCode, ISD::SETULE,
/* 60771*/        OPC_MoveParent,
/* 60772*/        OPC_CheckType, MVT::i1,
/* 60774*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60776*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60784*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60787*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60795*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60803*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60806*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60814*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }))
/* 60822*/      /*Scope*/ 53, /*->60876*/
/* 60823*/        OPC_CheckCondCode, ISD::SETLE,
/* 60825*/        OPC_MoveParent,
/* 60826*/        OPC_CheckType, MVT::i1,
/* 60828*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60830*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60838*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60841*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60849*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60857*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60860*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60868*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }))
/* 60876*/      /*Scope*/ 53, /*->60930*/
/* 60877*/        OPC_CheckCondCode, ISD::SETUNE,
/* 60879*/        OPC_MoveParent,
/* 60880*/        OPC_CheckType, MVT::i1,
/* 60882*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60884*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60892*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60895*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60903*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60911*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60914*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60922*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }))
/* 60930*/      /*Scope*/ 53, /*->60984*/
/* 60931*/        OPC_CheckCondCode, ISD::SETNE,
/* 60933*/        OPC_MoveParent,
/* 60934*/        OPC_CheckType, MVT::i1,
/* 60936*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60938*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 60946*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60949*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 60957*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 60965*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60968*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 60976*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_eq:{ *:[i32] }))
/* 60984*/      /*Scope*/ 53, /*->61038*/
/* 60985*/        OPC_CheckCondCode, ISD::SETO,
/* 60987*/        OPC_MoveParent,
/* 60988*/        OPC_CheckType, MVT::i1,
/* 60990*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 60992*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61000*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 61003*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61011*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61019*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 61022*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61030*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETO:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUS:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_un:{ *:[i32] }))
/* 61038*/      /*Scope*/ 53, /*->61092*/
/* 61039*/        OPC_CheckCondCode, ISD::SETUGE,
/* 61041*/        OPC_MoveParent,
/* 61042*/        OPC_CheckType, MVT::i1,
/* 61044*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61046*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61054*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61057*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61065*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61073*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61076*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61084*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }))
/* 61092*/      /*Scope*/ 53, /*->61146*/
/* 61093*/        OPC_CheckCondCode, ISD::SETGE,
/* 61095*/        OPC_MoveParent,
/* 61096*/        OPC_CheckType, MVT::i1,
/* 61098*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61100*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61108*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61111*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61119*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61127*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61130*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61138*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPLT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }))
/* 61146*/      /*Scope*/ 53, /*->61200*/
/* 61147*/        OPC_CheckCondCode, ISD::SETULE,
/* 61149*/        OPC_MoveParent,
/* 61150*/        OPC_CheckType, MVT::i1,
/* 61152*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61154*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61162*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61165*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61173*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61181*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61184*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61192*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETULE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }))
/* 61200*/      /*Scope*/ 53, /*->61254*/
/* 61201*/        OPC_CheckCondCode, ISD::SETLE,
/* 61203*/        OPC_MoveParent,
/* 61204*/        OPC_CheckType, MVT::i1,
/* 61206*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61208*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61216*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61219*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61227*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61235*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61238*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61246*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPGT:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }))
/* 61254*/      /*Scope*/ 53, /*->61308*/
/* 61255*/        OPC_CheckCondCode, ISD::SETUNE,
/* 61257*/        OPC_MoveParent,
/* 61258*/        OPC_CheckType, MVT::i1,
/* 61260*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61262*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61270*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61273*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61281*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61289*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61292*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61300*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETUNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }))
/* 61308*/      /*Scope*/ 53, /*->61362*/
/* 61309*/        OPC_CheckCondCode, ISD::SETNE,
/* 61311*/        OPC_MoveParent,
/* 61312*/        OPC_CheckType, MVT::i1,
/* 61314*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61316*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61324*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61327*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61335*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61343*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61346*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61354*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f32:{ *:[f32] }:$s1, f32:{ *:[f32] }:$s2, SETNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFSCMPEQ:{ *:[i32] } ?:{ *:[f32] }:$s1, ?:{ *:[f32] }:$s2), sub_gt:{ *:[i32] }))
/* 61362*/      0, /*End of Scope*/
/* 61363*/    /*Scope*/ 35|128,8/*1059*/, /*->62424*/
/* 61365*/      OPC_CheckChild0Type, MVT::f64,
/* 61367*/      OPC_RecordChild1, // #1 = $s2
/* 61368*/      OPC_MoveChild2,
/* 61369*/      OPC_Scope, 26, /*->61397*/ // 26 children in Scope
/* 61371*/        OPC_CheckCondCode, ISD::SETOLT,
/* 61373*/        OPC_MoveParent,
/* 61374*/        OPC_CheckType, MVT::i1,
/* 61376*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61378*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61386*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61389*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETOLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] })
/* 61397*/      /*Scope*/ 26, /*->61424*/
/* 61398*/        OPC_CheckCondCode, ISD::SETLT,
/* 61400*/        OPC_MoveParent,
/* 61401*/        OPC_CheckType, MVT::i1,
/* 61403*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61405*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61413*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61416*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] })
/* 61424*/      /*Scope*/ 26, /*->61451*/
/* 61425*/        OPC_CheckCondCode, ISD::SETOGT,
/* 61427*/        OPC_MoveParent,
/* 61428*/        OPC_CheckType, MVT::i1,
/* 61430*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61432*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61440*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61443*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETOGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 61451*/      /*Scope*/ 26, /*->61478*/
/* 61452*/        OPC_CheckCondCode, ISD::SETGT,
/* 61454*/        OPC_MoveParent,
/* 61455*/        OPC_CheckType, MVT::i1,
/* 61457*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61459*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61467*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61470*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 61478*/      /*Scope*/ 26, /*->61505*/
/* 61479*/        OPC_CheckCondCode, ISD::SETOEQ,
/* 61481*/        OPC_MoveParent,
/* 61482*/        OPC_CheckType, MVT::i1,
/* 61484*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61486*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61494*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61497*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETOEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] })
/* 61505*/      /*Scope*/ 26, /*->61532*/
/* 61506*/        OPC_CheckCondCode, ISD::SETEQ,
/* 61508*/        OPC_MoveParent,
/* 61509*/        OPC_CheckType, MVT::i1,
/* 61511*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61513*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61521*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61524*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] })
/* 61532*/      /*Scope*/ 26, /*->61559*/
/* 61533*/        OPC_CheckCondCode, ISD::SETUO,
/* 61535*/        OPC_MoveParent,
/* 61536*/        OPC_CheckType, MVT::i1,
/* 61538*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61540*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61548*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 61551*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUO:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] })
/* 61559*/      /*Scope*/ 26, /*->61586*/
/* 61560*/        OPC_CheckCondCode, ISD::SETOLT,
/* 61562*/        OPC_MoveParent,
/* 61563*/        OPC_CheckType, MVT::i1,
/* 61565*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61567*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61575*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61578*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETOLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 61586*/      /*Scope*/ 26, /*->61613*/
/* 61587*/        OPC_CheckCondCode, ISD::SETLT,
/* 61589*/        OPC_MoveParent,
/* 61590*/        OPC_CheckType, MVT::i1,
/* 61592*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61594*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61602*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61605*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 61613*/      /*Scope*/ 26, /*->61640*/
/* 61614*/        OPC_CheckCondCode, ISD::SETOGT,
/* 61616*/        OPC_MoveParent,
/* 61617*/        OPC_CheckType, MVT::i1,
/* 61619*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61621*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61629*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61632*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETOGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 61640*/      /*Scope*/ 26, /*->61667*/
/* 61641*/        OPC_CheckCondCode, ISD::SETGT,
/* 61643*/        OPC_MoveParent,
/* 61644*/        OPC_CheckType, MVT::i1,
/* 61646*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61648*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61656*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61659*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 61667*/      /*Scope*/ 26, /*->61694*/
/* 61668*/        OPC_CheckCondCode, ISD::SETOEQ,
/* 61670*/        OPC_MoveParent,
/* 61671*/        OPC_CheckType, MVT::i1,
/* 61673*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61675*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61683*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61686*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETOEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 61694*/      /*Scope*/ 26, /*->61721*/
/* 61695*/        OPC_CheckCondCode, ISD::SETEQ,
/* 61697*/        OPC_MoveParent,
/* 61698*/        OPC_CheckType, MVT::i1,
/* 61700*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 61702*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61710*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61713*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] })
/* 61721*/      /*Scope*/ 53, /*->61775*/
/* 61722*/        OPC_CheckCondCode, ISD::SETUGE,
/* 61724*/        OPC_MoveParent,
/* 61725*/        OPC_CheckType, MVT::i1,
/* 61727*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61729*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61737*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61740*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61748*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61756*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61759*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61767*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }))
/* 61775*/      /*Scope*/ 53, /*->61829*/
/* 61776*/        OPC_CheckCondCode, ISD::SETGE,
/* 61778*/        OPC_MoveParent,
/* 61779*/        OPC_CheckType, MVT::i1,
/* 61781*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61783*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61791*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61794*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61802*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61810*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61813*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61821*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_lt:{ *:[i32] }))
/* 61829*/      /*Scope*/ 53, /*->61883*/
/* 61830*/        OPC_CheckCondCode, ISD::SETULE,
/* 61832*/        OPC_MoveParent,
/* 61833*/        OPC_CheckType, MVT::i1,
/* 61835*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61837*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61845*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61848*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61856*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61864*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61867*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61875*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }))
/* 61883*/      /*Scope*/ 53, /*->61937*/
/* 61884*/        OPC_CheckCondCode, ISD::SETLE,
/* 61886*/        OPC_MoveParent,
/* 61887*/        OPC_CheckType, MVT::i1,
/* 61889*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61891*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61899*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61902*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61910*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61918*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61921*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61929*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }))
/* 61937*/      /*Scope*/ 53, /*->61991*/
/* 61938*/        OPC_CheckCondCode, ISD::SETUNE,
/* 61940*/        OPC_MoveParent,
/* 61941*/        OPC_CheckType, MVT::i1,
/* 61943*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61945*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61953*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61956*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61964*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61972*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61975*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61983*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }))
/* 61991*/      /*Scope*/ 53, /*->62045*/
/* 61992*/        OPC_CheckCondCode, ISD::SETNE,
/* 61994*/        OPC_MoveParent,
/* 61995*/        OPC_CheckType, MVT::i1,
/* 61997*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 61999*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62007*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62010*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62018*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62026*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62029*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62037*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_eq:{ *:[i32] }))
/* 62045*/      /*Scope*/ 53, /*->62099*/
/* 62046*/        OPC_CheckCondCode, ISD::SETO,
/* 62048*/        OPC_MoveParent,
/* 62049*/        OPC_CheckType, MVT::i1,
/* 62051*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62053*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62061*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 62064*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62072*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62080*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 62083*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62091*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETO:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (FCMPUD:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_un:{ *:[i32] }))
/* 62099*/      /*Scope*/ 53, /*->62153*/
/* 62100*/        OPC_CheckCondCode, ISD::SETUGE,
/* 62102*/        OPC_MoveParent,
/* 62103*/        OPC_CheckType, MVT::i1,
/* 62105*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 62107*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62115*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62118*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62126*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62134*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62137*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62145*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }))
/* 62153*/      /*Scope*/ 53, /*->62207*/
/* 62154*/        OPC_CheckCondCode, ISD::SETGE,
/* 62156*/        OPC_MoveParent,
/* 62157*/        OPC_CheckType, MVT::i1,
/* 62159*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 62161*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62169*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62172*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62180*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62188*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62191*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62199*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPLT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }))
/* 62207*/      /*Scope*/ 53, /*->62261*/
/* 62208*/        OPC_CheckCondCode, ISD::SETULE,
/* 62210*/        OPC_MoveParent,
/* 62211*/        OPC_CheckType, MVT::i1,
/* 62213*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 62215*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62223*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62226*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62234*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62242*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62245*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62253*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETULE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }))
/* 62261*/      /*Scope*/ 53, /*->62315*/
/* 62262*/        OPC_CheckCondCode, ISD::SETLE,
/* 62264*/        OPC_MoveParent,
/* 62265*/        OPC_CheckType, MVT::i1,
/* 62267*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 62269*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62277*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62280*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62288*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62296*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62299*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62307*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPGT:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }))
/* 62315*/      /*Scope*/ 53, /*->62369*/
/* 62316*/        OPC_CheckCondCode, ISD::SETUNE,
/* 62318*/        OPC_MoveParent,
/* 62319*/        OPC_CheckType, MVT::i1,
/* 62321*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 62323*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62331*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62334*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62342*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62350*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62353*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62361*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETUNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }))
/* 62369*/      /*Scope*/ 53, /*->62423*/
/* 62370*/        OPC_CheckCondCode, ISD::SETNE,
/* 62372*/        OPC_MoveParent,
/* 62373*/        OPC_CheckType, MVT::i1,
/* 62375*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 62377*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62385*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62388*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62396*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62404*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62407*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62415*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f64:{ *:[f64] }:$s1, f64:{ *:[f64] }:$s2, SETNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (EFDCMPEQ:{ *:[i32] } ?:{ *:[f64] }:$s1, ?:{ *:[f64] }:$s2), sub_gt:{ *:[i32] }))
/* 62423*/      0, /*End of Scope*/
/* 62424*/    /*Scope*/ 61|128,4/*573*/, /*->62999*/
/* 62426*/      OPC_CheckChild0Type, MVT::f128,
/* 62428*/      OPC_RecordChild1, // #1 = $s2
/* 62429*/      OPC_MoveChild2,
/* 62430*/      OPC_Scope, 26, /*->62458*/ // 14 children in Scope
/* 62432*/        OPC_CheckCondCode, ISD::SETOLT,
/* 62434*/        OPC_MoveParent,
/* 62435*/        OPC_CheckType, MVT::i1,
/* 62437*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62439*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62447*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62450*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETOLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] })
/* 62458*/      /*Scope*/ 26, /*->62485*/
/* 62459*/        OPC_CheckCondCode, ISD::SETLT,
/* 62461*/        OPC_MoveParent,
/* 62462*/        OPC_CheckType, MVT::i1,
/* 62464*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62466*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62474*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62477*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] })
/* 62485*/      /*Scope*/ 26, /*->62512*/
/* 62486*/        OPC_CheckCondCode, ISD::SETOGT,
/* 62488*/        OPC_MoveParent,
/* 62489*/        OPC_CheckType, MVT::i1,
/* 62491*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62493*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62501*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62504*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETOGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] })
/* 62512*/      /*Scope*/ 26, /*->62539*/
/* 62513*/        OPC_CheckCondCode, ISD::SETGT,
/* 62515*/        OPC_MoveParent,
/* 62516*/        OPC_CheckType, MVT::i1,
/* 62518*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62520*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62528*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62531*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] })
/* 62539*/      /*Scope*/ 26, /*->62566*/
/* 62540*/        OPC_CheckCondCode, ISD::SETOEQ,
/* 62542*/        OPC_MoveParent,
/* 62543*/        OPC_CheckType, MVT::i1,
/* 62545*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62547*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62555*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62558*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETOEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] })
/* 62566*/      /*Scope*/ 26, /*->62593*/
/* 62567*/        OPC_CheckCondCode, ISD::SETEQ,
/* 62569*/        OPC_MoveParent,
/* 62570*/        OPC_CheckType, MVT::i1,
/* 62572*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62574*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62582*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62585*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] })
/* 62593*/      /*Scope*/ 26, /*->62620*/
/* 62594*/        OPC_CheckCondCode, ISD::SETUO,
/* 62596*/        OPC_MoveParent,
/* 62597*/        OPC_CheckType, MVT::i1,
/* 62599*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62601*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62609*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 62612*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUO:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] })
/* 62620*/      /*Scope*/ 53, /*->62674*/
/* 62621*/        OPC_CheckCondCode, ISD::SETUGE,
/* 62623*/        OPC_MoveParent,
/* 62624*/        OPC_CheckType, MVT::i1,
/* 62626*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62628*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62636*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62639*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62647*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62655*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62658*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62666*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }))
/* 62674*/      /*Scope*/ 53, /*->62728*/
/* 62675*/        OPC_CheckCondCode, ISD::SETGE,
/* 62677*/        OPC_MoveParent,
/* 62678*/        OPC_CheckType, MVT::i1,
/* 62680*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62682*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62690*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62693*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62701*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62709*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62712*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62720*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_lt:{ *:[i32] }))
/* 62728*/      /*Scope*/ 53, /*->62782*/
/* 62729*/        OPC_CheckCondCode, ISD::SETULE,
/* 62731*/        OPC_MoveParent,
/* 62732*/        OPC_CheckType, MVT::i1,
/* 62734*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62736*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62744*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62747*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62755*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62763*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62766*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62774*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETULE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }))
/* 62782*/      /*Scope*/ 53, /*->62836*/
/* 62783*/        OPC_CheckCondCode, ISD::SETLE,
/* 62785*/        OPC_MoveParent,
/* 62786*/        OPC_CheckType, MVT::i1,
/* 62788*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62790*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62798*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62801*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62809*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62817*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62820*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62828*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_gt:{ *:[i32] }))
/* 62836*/      /*Scope*/ 53, /*->62890*/
/* 62837*/        OPC_CheckCondCode, ISD::SETUNE,
/* 62839*/        OPC_MoveParent,
/* 62840*/        OPC_CheckType, MVT::i1,
/* 62842*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62844*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62852*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62855*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62863*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62871*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62874*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62882*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETUNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }))
/* 62890*/      /*Scope*/ 53, /*->62944*/
/* 62891*/        OPC_CheckCondCode, ISD::SETNE,
/* 62893*/        OPC_MoveParent,
/* 62894*/        OPC_CheckType, MVT::i1,
/* 62896*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62898*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62906*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62909*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62917*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62925*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62928*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62936*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_eq:{ *:[i32] }))
/* 62944*/      /*Scope*/ 53, /*->62998*/
/* 62945*/        OPC_CheckCondCode, ISD::SETO,
/* 62947*/        OPC_MoveParent,
/* 62948*/        OPC_CheckType, MVT::i1,
/* 62950*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 62952*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62960*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 62963*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62971*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62979*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 62982*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62990*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::CRNOR), 0,
                      MVT::i1, 2/*#Ops*/, 4, 7, 
                  // Src: (setcc:{ *:[i1] } f128:{ *:[f128] }:$s1, f128:{ *:[f128] }:$s2, SETO:{ *:[Other] }) - Complexity = 3
                  // Dst: (CRNOR:{ *:[i1] } (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i1] } (XSCMPUQP:{ *:[i32] } ?:{ *:[f128] }:$s1, ?:{ *:[f128] }:$s2), sub_un:{ *:[i32] }))
/* 62998*/      0, /*End of Scope*/
/* 62999*/    /*Scope*/ 74|128,4/*586*/, /*->63587*/
/* 63001*/      OPC_CheckChild0Type, MVT::v4f64,
/* 63003*/      OPC_RecordChild1, // #1 = $FRB
/* 63004*/      OPC_MoveChild2,
/* 63005*/      OPC_Scope, 15, /*->63022*/ // 20 children in Scope
/* 63007*/        OPC_CheckCondCode, ISD::SETUO,
/* 63009*/        OPC_MoveParent,
/* 63010*/        OPC_CheckType, MVT::v4i1,
/* 63012*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63014*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETUO:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFTSTNANb:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 63022*/      /*Scope*/ 15, /*->63038*/
/* 63023*/        OPC_CheckCondCode, ISD::SETOLT,
/* 63025*/        OPC_MoveParent,
/* 63026*/        OPC_CheckType, MVT::v4i1,
/* 63028*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63030*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETOLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPLTb:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 63038*/      /*Scope*/ 15, /*->63054*/
/* 63039*/        OPC_CheckCondCode, ISD::SETOGT,
/* 63041*/        OPC_MoveParent,
/* 63042*/        OPC_CheckType, MVT::v4i1,
/* 63044*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63046*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETOGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPGTb:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 63054*/      /*Scope*/ 15, /*->63070*/
/* 63055*/        OPC_CheckCondCode, ISD::SETOEQ,
/* 63057*/        OPC_MoveParent,
/* 63058*/        OPC_CheckType, MVT::v4i1,
/* 63060*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63062*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETOEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPEQb:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 63070*/      /*Scope*/ 15, /*->63086*/
/* 63071*/        OPC_CheckCondCode, ISD::SETEQ,
/* 63073*/        OPC_MoveParent,
/* 63074*/        OPC_CheckType, MVT::v4i1,
/* 63076*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63078*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPEQb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB)
/* 63086*/      /*Scope*/ 15, /*->63102*/
/* 63087*/        OPC_CheckCondCode, ISD::SETGT,
/* 63089*/        OPC_MoveParent,
/* 63090*/        OPC_CheckType, MVT::v4i1,
/* 63092*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63094*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPGTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB)
/* 63102*/      /*Scope*/ 15, /*->63118*/
/* 63103*/        OPC_CheckCondCode, ISD::SETLT,
/* 63105*/        OPC_MoveParent,
/* 63106*/        OPC_CheckType, MVT::v4i1,
/* 63108*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63110*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPLTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB)
/* 63118*/      /*Scope*/ 35, /*->63154*/
/* 63119*/        OPC_CheckCondCode, ISD::SETOGE,
/* 63121*/        OPC_MoveParent,
/* 63122*/        OPC_CheckType, MVT::v4i1,
/* 63124*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63126*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63134*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63142*/        OPC_EmitInteger, MVT::i32, 8, 
/* 63145*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETOGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPLTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 8:{ *:[i32] })
/* 63154*/      /*Scope*/ 35, /*->63190*/
/* 63155*/        OPC_CheckCondCode, ISD::SETOLE,
/* 63157*/        OPC_MoveParent,
/* 63158*/        OPC_CheckType, MVT::v4i1,
/* 63160*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63162*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63170*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63178*/        OPC_EmitInteger, MVT::i32, 8, 
/* 63181*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETOLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPGTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 8:{ *:[i32] })
/* 63190*/      /*Scope*/ 35, /*->63226*/
/* 63191*/        OPC_CheckCondCode, ISD::SETONE,
/* 63193*/        OPC_MoveParent,
/* 63194*/        OPC_CheckType, MVT::v4i1,
/* 63196*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63198*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63206*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63214*/        OPC_EmitInteger, MVT::i32, 8, 
/* 63217*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETONE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPEQb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 8:{ *:[i32] })
/* 63226*/      /*Scope*/ 35, /*->63262*/
/* 63227*/        OPC_CheckCondCode, ISD::SETO,
/* 63229*/        OPC_MoveParent,
/* 63230*/        OPC_CheckType, MVT::v4i1,
/* 63232*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63234*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63242*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63250*/        OPC_EmitInteger, MVT::i32, 10, 
/* 63253*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETO:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 10:{ *:[i32] })
/* 63262*/      /*Scope*/ 35, /*->63298*/
/* 63263*/        OPC_CheckCondCode, ISD::SETUEQ,
/* 63265*/        OPC_MoveParent,
/* 63266*/        OPC_CheckType, MVT::v4i1,
/* 63268*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63270*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63278*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63286*/        OPC_EmitInteger, MVT::i32, 7, 
/* 63289*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETUEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPEQb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 7:{ *:[i32] })
/* 63298*/      /*Scope*/ 35, /*->63334*/
/* 63299*/        OPC_CheckCondCode, ISD::SETUGT,
/* 63301*/        OPC_MoveParent,
/* 63302*/        OPC_CheckType, MVT::v4i1,
/* 63304*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63306*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63314*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63322*/        OPC_EmitInteger, MVT::i32, 7, 
/* 63325*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETUGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPGTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 7:{ *:[i32] })
/* 63334*/      /*Scope*/ 35, /*->63370*/
/* 63335*/        OPC_CheckCondCode, ISD::SETUGE,
/* 63337*/        OPC_MoveParent,
/* 63338*/        OPC_CheckType, MVT::v4i1,
/* 63340*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63342*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63350*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63358*/        OPC_EmitInteger, MVT::i32, 13, 
/* 63361*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETUGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFCMPLTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 13:{ *:[i32] })
/* 63370*/      /*Scope*/ 35, /*->63406*/
/* 63371*/        OPC_CheckCondCode, ISD::SETULT,
/* 63373*/        OPC_MoveParent,
/* 63374*/        OPC_CheckType, MVT::v4i1,
/* 63376*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63378*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63386*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63394*/        OPC_EmitInteger, MVT::i32, 7, 
/* 63397*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETULT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPLTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 7:{ *:[i32] })
/* 63406*/      /*Scope*/ 35, /*->63442*/
/* 63407*/        OPC_CheckCondCode, ISD::SETULE,
/* 63409*/        OPC_MoveParent,
/* 63410*/        OPC_CheckType, MVT::v4i1,
/* 63412*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63414*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63422*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63430*/        OPC_EmitInteger, MVT::i32, 13, 
/* 63433*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETULE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFCMPGTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 13:{ *:[i32] })
/* 63442*/      /*Scope*/ 35, /*->63478*/
/* 63443*/        OPC_CheckCondCode, ISD::SETUNE,
/* 63445*/        OPC_MoveParent,
/* 63446*/        OPC_CheckType, MVT::v4i1,
/* 63448*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63450*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63458*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63466*/        OPC_EmitInteger, MVT::i32, 13, 
/* 63469*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETUNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFCMPEQb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 13:{ *:[i32] })
/* 63478*/      /*Scope*/ 35, /*->63514*/
/* 63479*/        OPC_CheckCondCode, ISD::SETGE,
/* 63481*/        OPC_MoveParent,
/* 63482*/        OPC_CheckType, MVT::v4i1,
/* 63484*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63486*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63494*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63502*/        OPC_EmitInteger, MVT::i32, 10, 
/* 63505*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPLTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFCMPLTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 10:{ *:[i32] })
/* 63514*/      /*Scope*/ 35, /*->63550*/
/* 63515*/        OPC_CheckCondCode, ISD::SETLE,
/* 63517*/        OPC_MoveParent,
/* 63518*/        OPC_CheckType, MVT::v4i1,
/* 63520*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63522*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63530*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63538*/        OPC_EmitInteger, MVT::i32, 10, 
/* 63541*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPGTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFCMPGTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 10:{ *:[i32] })
/* 63550*/      /*Scope*/ 35, /*->63586*/
/* 63551*/        OPC_CheckCondCode, ISD::SETNE,
/* 63553*/        OPC_MoveParent,
/* 63554*/        OPC_CheckType, MVT::v4i1,
/* 63556*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63558*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63566*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63574*/        OPC_EmitInteger, MVT::i32, 10, 
/* 63577*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, SETNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPEQb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFCMPEQb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), 10:{ *:[i32] })
/* 63586*/      0, /*End of Scope*/
/* 63587*/    /*Scope*/ 74|128,4/*586*/, /*->64175*/
/* 63589*/      OPC_CheckChild0Type, MVT::v4f32,
/* 63591*/      OPC_RecordChild1, // #1 = $FRB
/* 63592*/      OPC_MoveChild2,
/* 63593*/      OPC_Scope, 15, /*->63610*/ // 20 children in Scope
/* 63595*/        OPC_CheckCondCode, ISD::SETUO,
/* 63597*/        OPC_MoveParent,
/* 63598*/        OPC_CheckType, MVT::v4i1,
/* 63600*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63602*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETUO:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFTSTNANbs:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB)
/* 63610*/      /*Scope*/ 15, /*->63626*/
/* 63611*/        OPC_CheckCondCode, ISD::SETOLT,
/* 63613*/        OPC_MoveParent,
/* 63614*/        OPC_CheckType, MVT::v4i1,
/* 63616*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63618*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETOLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPLTbs:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB)
/* 63626*/      /*Scope*/ 15, /*->63642*/
/* 63627*/        OPC_CheckCondCode, ISD::SETOGT,
/* 63629*/        OPC_MoveParent,
/* 63630*/        OPC_CheckType, MVT::v4i1,
/* 63632*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63634*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETOGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPGTbs:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB)
/* 63642*/      /*Scope*/ 15, /*->63658*/
/* 63643*/        OPC_CheckCondCode, ISD::SETOEQ,
/* 63645*/        OPC_MoveParent,
/* 63646*/        OPC_CheckType, MVT::v4i1,
/* 63648*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63650*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETOEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPEQbs:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB)
/* 63658*/      /*Scope*/ 15, /*->63674*/
/* 63659*/        OPC_CheckCondCode, ISD::SETEQ,
/* 63661*/        OPC_MoveParent,
/* 63662*/        OPC_CheckType, MVT::v4i1,
/* 63664*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63666*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPEQbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB)
/* 63674*/      /*Scope*/ 15, /*->63690*/
/* 63675*/        OPC_CheckCondCode, ISD::SETGT,
/* 63677*/        OPC_MoveParent,
/* 63678*/        OPC_CheckType, MVT::v4i1,
/* 63680*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63682*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPGTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB)
/* 63690*/      /*Scope*/ 15, /*->63706*/
/* 63691*/        OPC_CheckCondCode, ISD::SETLT,
/* 63693*/        OPC_MoveParent,
/* 63694*/        OPC_CheckType, MVT::v4i1,
/* 63696*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63698*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETLT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFCMPLTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB)
/* 63706*/      /*Scope*/ 35, /*->63742*/
/* 63707*/        OPC_CheckCondCode, ISD::SETOGE,
/* 63709*/        OPC_MoveParent,
/* 63710*/        OPC_CheckType, MVT::v4i1,
/* 63712*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63714*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63722*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63730*/        OPC_EmitInteger, MVT::i32, 8, 
/* 63733*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETOGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPLTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 8:{ *:[i32] })
/* 63742*/      /*Scope*/ 35, /*->63778*/
/* 63743*/        OPC_CheckCondCode, ISD::SETOLE,
/* 63745*/        OPC_MoveParent,
/* 63746*/        OPC_CheckType, MVT::v4i1,
/* 63748*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63750*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63758*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63766*/        OPC_EmitInteger, MVT::i32, 8, 
/* 63769*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETOLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPGTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 8:{ *:[i32] })
/* 63778*/      /*Scope*/ 35, /*->63814*/
/* 63779*/        OPC_CheckCondCode, ISD::SETONE,
/* 63781*/        OPC_MoveParent,
/* 63782*/        OPC_CheckType, MVT::v4i1,
/* 63784*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63786*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63794*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63802*/        OPC_EmitInteger, MVT::i32, 8, 
/* 63805*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETONE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPEQbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 8:{ *:[i32] })
/* 63814*/      /*Scope*/ 35, /*->63850*/
/* 63815*/        OPC_CheckCondCode, ISD::SETO,
/* 63817*/        OPC_MoveParent,
/* 63818*/        OPC_CheckType, MVT::v4i1,
/* 63820*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63822*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63830*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63838*/        OPC_EmitInteger, MVT::i32, 10, 
/* 63841*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETO:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 10:{ *:[i32] })
/* 63850*/      /*Scope*/ 35, /*->63886*/
/* 63851*/        OPC_CheckCondCode, ISD::SETUEQ,
/* 63853*/        OPC_MoveParent,
/* 63854*/        OPC_CheckType, MVT::v4i1,
/* 63856*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63858*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63866*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63874*/        OPC_EmitInteger, MVT::i32, 7, 
/* 63877*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETUEQ:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPEQbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 7:{ *:[i32] })
/* 63886*/      /*Scope*/ 35, /*->63922*/
/* 63887*/        OPC_CheckCondCode, ISD::SETUGT,
/* 63889*/        OPC_MoveParent,
/* 63890*/        OPC_CheckType, MVT::v4i1,
/* 63892*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63894*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63902*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63910*/        OPC_EmitInteger, MVT::i32, 7, 
/* 63913*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETUGT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPGTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 7:{ *:[i32] })
/* 63922*/      /*Scope*/ 35, /*->63958*/
/* 63923*/        OPC_CheckCondCode, ISD::SETUGE,
/* 63925*/        OPC_MoveParent,
/* 63926*/        OPC_CheckType, MVT::v4i1,
/* 63928*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63930*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63938*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63946*/        OPC_EmitInteger, MVT::i32, 13, 
/* 63949*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETUGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFCMPLTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 13:{ *:[i32] })
/* 63958*/      /*Scope*/ 35, /*->63994*/
/* 63959*/        OPC_CheckCondCode, ISD::SETULT,
/* 63961*/        OPC_MoveParent,
/* 63962*/        OPC_CheckType, MVT::v4i1,
/* 63964*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 63966*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63974*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 63982*/        OPC_EmitInteger, MVT::i32, 7, 
/* 63985*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETULT:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPLTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 7:{ *:[i32] })
/* 63994*/      /*Scope*/ 35, /*->64030*/
/* 63995*/        OPC_CheckCondCode, ISD::SETULE,
/* 63997*/        OPC_MoveParent,
/* 63998*/        OPC_CheckType, MVT::v4i1,
/* 64000*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 64002*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64010*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 64018*/        OPC_EmitInteger, MVT::i32, 13, 
/* 64021*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETULE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFCMPGTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 13:{ *:[i32] })
/* 64030*/      /*Scope*/ 35, /*->64066*/
/* 64031*/        OPC_CheckCondCode, ISD::SETUNE,
/* 64033*/        OPC_MoveParent,
/* 64034*/        OPC_CheckType, MVT::v4i1,
/* 64036*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 64038*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64046*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 64054*/        OPC_EmitInteger, MVT::i32, 13, 
/* 64057*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETUNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFCMPEQbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 13:{ *:[i32] })
/* 64066*/      /*Scope*/ 35, /*->64102*/
/* 64067*/        OPC_CheckCondCode, ISD::SETGE,
/* 64069*/        OPC_MoveParent,
/* 64070*/        OPC_CheckType, MVT::v4i1,
/* 64072*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 64074*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64082*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 64090*/        OPC_EmitInteger, MVT::i32, 10, 
/* 64093*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETGE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPLTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFCMPLTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 10:{ *:[i32] })
/* 64102*/      /*Scope*/ 35, /*->64138*/
/* 64103*/        OPC_CheckCondCode, ISD::SETLE,
/* 64105*/        OPC_MoveParent,
/* 64106*/        OPC_CheckType, MVT::v4i1,
/* 64108*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 64110*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64118*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 64126*/        OPC_EmitInteger, MVT::i32, 10, 
/* 64129*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETLE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPGTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFCMPGTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 10:{ *:[i32] })
/* 64138*/      /*Scope*/ 35, /*->64174*/
/* 64139*/        OPC_CheckCondCode, ISD::SETNE,
/* 64141*/        OPC_MoveParent,
/* 64142*/        OPC_CheckType, MVT::v4i1,
/* 64144*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 64146*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64154*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 64162*/        OPC_EmitInteger, MVT::i32, 10, 
/* 64165*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (setcc:{ *:[v4i1] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, SETNE:{ *:[Other] }) - Complexity = 3
                  // Dst: (QVFLOGICALb:{ *:[v4i1] } (QVFCMPEQbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFCMPEQbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), 10:{ *:[i32] })
/* 64174*/      0, /*End of Scope*/
/* 64175*/    0, /*End of Scope*/
/* 64176*/  /*SwitchOpcode*/ 85, TARGET_VAL(PPCISD::CALL),// ->64264
/* 64179*/    OPC_RecordNode, // #0 = 'PPCcall' chained node
/* 64180*/    OPC_CaptureGlueInput,
/* 64181*/    OPC_RecordChild1, // #1 = $func
/* 64182*/    OPC_MoveChild1,
/* 64183*/    OPC_SwitchOpcode /*3 cases */, 26, TARGET_VAL(ISD::Constant),// ->64213
/* 64187*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->64200
/* 64190*/        OPC_MoveParent,
/* 64191*/        OPC_EmitMergeInputChains1_0,
/* 64192*/        OPC_EmitConvertToTarget, 1,
/* 64194*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BLA), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 2, 
                  // Src: (PPCcall (imm:{ *:[i32] }):$func) - Complexity = 6
                  // Dst: (BLA (imm:{ *:[i32] }):$func)
/* 64200*/      /*SwitchType*/ 10, MVT::i64,// ->64212
/* 64202*/        OPC_MoveParent,
/* 64203*/        OPC_EmitMergeInputChains1_0,
/* 64204*/        OPC_EmitConvertToTarget, 1,
/* 64206*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BLA8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 2, 
                  // Src: (PPCcall (imm:{ *:[i64] }):$func) - Complexity = 6
                  // Dst: (BLA8 (imm:{ *:[i64] }):$func)
/* 64212*/      0, // EndSwitchType
/* 64213*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::TargetGlobalAddress),// ->64238
/* 64216*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->64227
/* 64219*/        OPC_MoveParent,
/* 64220*/        OPC_EmitMergeInputChains1_0,
/* 64221*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (PPCcall (tglobaladdr:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (BL (tglobaladdr:{ *:[i32] }):$dst)
/* 64227*/      /*SwitchType*/ 8, MVT::i64,// ->64237
/* 64229*/        OPC_MoveParent,
/* 64230*/        OPC_EmitMergeInputChains1_0,
/* 64231*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BL8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (PPCcall (tglobaladdr:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (BL8 (tglobaladdr:{ *:[i64] }):$dst)
/* 64237*/      0, // EndSwitchType
/* 64238*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::TargetExternalSymbol),// ->64263
/* 64241*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->64252
/* 64244*/        OPC_MoveParent,
/* 64245*/        OPC_EmitMergeInputChains1_0,
/* 64246*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (PPCcall (texternalsym:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (BL (texternalsym:{ *:[i32] }):$dst)
/* 64252*/      /*SwitchType*/ 8, MVT::i64,// ->64262
/* 64254*/        OPC_MoveParent,
/* 64255*/        OPC_EmitMergeInputChains1_0,
/* 64256*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BL8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (PPCcall (texternalsym:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (BL8 (texternalsym:{ *:[i64] }):$dst)
/* 64262*/      0, // EndSwitchType
/* 64263*/    0, // EndSwitchOpcode
/* 64264*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::SC),// ->64285
/* 64267*/    OPC_RecordNode, // #0 = 'PPCsc' chained node
/* 64268*/    OPC_RecordChild1, // #1 = $lev
/* 64269*/    OPC_MoveChild1,
/* 64270*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64273*/    OPC_CheckType, MVT::i32,
/* 64275*/    OPC_MoveParent,
/* 64276*/    OPC_EmitMergeInputChains1_0,
/* 64277*/    OPC_EmitConvertToTarget, 1,
/* 64279*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::SC), 0|OPFL_Chain,
                  1/*#Ops*/, 2, 
              // Src: (PPCsc (imm:{ *:[i32] }):$lev) - Complexity = 6
              // Dst: (SC (imm:{ *:[i32] }):$lev)
/* 64285*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::RFEBB),// ->64306
/* 64288*/    OPC_RecordNode, // #0 = 'PPCrfebb' chained node
/* 64289*/    OPC_RecordChild1, // #1 = $imm
/* 64290*/    OPC_MoveChild1,
/* 64291*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64294*/    OPC_CheckType, MVT::i32,
/* 64296*/    OPC_MoveParent,
/* 64297*/    OPC_EmitMergeInputChains1_0,
/* 64298*/    OPC_EmitConvertToTarget, 1,
/* 64300*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::RFEBB), 0|OPFL_Chain,
                  1/*#Ops*/, 2, 
              // Src: (PPCrfebb (imm:{ *:[i32] }):$imm) - Complexity = 6
              // Dst: (RFEBB (imm:{ *:[i32] }):$imm)
/* 64306*/  /*SwitchOpcode*/ 127, TARGET_VAL(ISD::SRA),// ->64436
/* 64309*/    OPC_RecordChild0, // #0 = $rS
/* 64310*/    OPC_RecordChild1, // #1 = $SH
/* 64311*/    OPC_Scope, 35, /*->64348*/ // 6 children in Scope
/* 64313*/      OPC_MoveChild1,
/* 64314*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64317*/      OPC_CheckType, MVT::i32,
/* 64319*/      OPC_MoveParent,
/* 64320*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->64334
/* 64323*/        OPC_EmitConvertToTarget, 1,
/* 64325*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SRAWI), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sra:{ *:[i32] } i32:{ *:[i32] }:$rS, (imm:{ *:[i32] }):$SH) - Complexity = 6
                  // Dst: (SRAWI:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rS, (imm:{ *:[i32] }):$SH)
/* 64334*/      /*SwitchType*/ 11, MVT::i64,// ->64347
/* 64336*/        OPC_EmitConvertToTarget, 1,
/* 64338*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SRADI), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sra:{ *:[i64] } i64:{ *:[i64] }:$rS, (imm:{ *:[i32] }):$SH) - Complexity = 6
                  // Dst: (SRADI:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rS, (imm:{ *:[i32] }):$SH)
/* 64347*/      0, // EndSwitchType
/* 64348*/    /*Scope*/ 26, /*->64375*/
/* 64349*/      OPC_CheckChild1Type, MVT::i32,
/* 64351*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->64363
/* 64354*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SRAW), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sra:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SRAW:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$rS, ?:{ *:[i32] }:$rB)
/* 64363*/      /*SwitchType*/ 9, MVT::i64,// ->64374
/* 64365*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SRAD), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sra:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SRAD:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$rS, ?:{ *:[i32] }:$rB)
/* 64374*/      0, // EndSwitchType
/* 64375*/    /*Scope*/ 14, /*->64390*/
/* 64376*/      OPC_CheckChild1Type, MVT::v16i8,
/* 64378*/      OPC_CheckType, MVT::v16i8,
/* 64380*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64382*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (sra:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VSRAB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vB)
/* 64390*/    /*Scope*/ 14, /*->64405*/
/* 64391*/      OPC_CheckChild1Type, MVT::v8i16,
/* 64393*/      OPC_CheckType, MVT::v8i16,
/* 64395*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64397*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (sra:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VSRAH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v8i16] }:$vB)
/* 64405*/    /*Scope*/ 14, /*->64420*/
/* 64406*/      OPC_CheckChild1Type, MVT::v4i32,
/* 64408*/      OPC_CheckType, MVT::v4i32,
/* 64410*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64412*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (sra:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VSRAW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 64420*/    /*Scope*/ 14, /*->64435*/
/* 64421*/      OPC_CheckChild1Type, MVT::v2i64,
/* 64423*/      OPC_CheckType, MVT::v2i64,
/* 64425*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 64427*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (sra:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VSRAD:{ *:[v2i64] } ?:{ *:[v2i64] }:$vA, ?:{ *:[v2i64] }:$vB)
/* 64435*/    0, /*End of Scope*/
/* 64436*/  /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(ISD::SHL),// ->64613
/* 64440*/    OPC_RecordChild0, // #0 = $in
/* 64441*/    OPC_RecordChild1, // #1 = $imm
/* 64442*/    OPC_Scope, 49, /*->64493*/ // 7 children in Scope
/* 64444*/      OPC_MoveChild1,
/* 64445*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64448*/      OPC_CheckType, MVT::i32,
/* 64450*/      OPC_MoveParent,
/* 64451*/      OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->64474
/* 64454*/        OPC_EmitConvertToTarget, 1,
/* 64456*/        OPC_EmitInteger, MVT::i32, 0, 
/* 64459*/        OPC_EmitConvertToTarget, 1,
/* 64461*/        OPC_EmitNodeXForm, 6, 4, // SHL32
/* 64464*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 5, 
                  // Src: (shl:{ *:[i32] } i32:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                  // Dst: (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm, 0:{ *:[i32] }, (SHL32:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 64474*/      /*SwitchType*/ 16, MVT::i64,// ->64492
/* 64476*/        OPC_EmitConvertToTarget, 1,
/* 64478*/        OPC_EmitConvertToTarget, 1,
/* 64480*/        OPC_EmitNodeXForm, 7, 3, // SHL64
/* 64483*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 0, 2, 4, 
                  // Src: (shl:{ *:[i64] } i64:{ *:[i64] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                  // Dst: (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$in, (imm:{ *:[i32] }):$imm, (SHL64:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 64492*/      0, // EndSwitchType
/* 64493*/    /*Scope*/ 24, /*->64518*/
/* 64494*/      OPC_CheckChild1Type, MVT::i32,
/* 64496*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->64507
/* 64499*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SLW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (shl:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SLW:{ *:[i32] } ?:{ *:[i32] }:$rS, ?:{ *:[i32] }:$rB)
/* 64507*/      /*SwitchType*/ 8, MVT::i64,// ->64517
/* 64509*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SLD), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (shl:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SLD:{ *:[i64] } ?:{ *:[i64] }:$rS, ?:{ *:[i32] }:$rB)
/* 64517*/      0, // EndSwitchType
/* 64518*/    /*Scope*/ 14, /*->64533*/
/* 64519*/      OPC_CheckChild1Type, MVT::v16i8,
/* 64521*/      OPC_CheckType, MVT::v16i8,
/* 64523*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64525*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (shl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VSLB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vB)
/* 64533*/    /*Scope*/ 14, /*->64548*/
/* 64534*/      OPC_CheckChild1Type, MVT::v8i16,
/* 64536*/      OPC_CheckType, MVT::v8i16,
/* 64538*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64540*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (shl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VSLH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v8i16] }:$vB)
/* 64548*/    /*Scope*/ 14, /*->64563*/
/* 64549*/      OPC_CheckChild1Type, MVT::v4i32,
/* 64551*/      OPC_CheckType, MVT::v4i32,
/* 64553*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64555*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (shl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VSLW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 64563*/    /*Scope*/ 14, /*->64578*/
/* 64564*/      OPC_CheckChild1Type, MVT::v2i64,
/* 64566*/      OPC_CheckType, MVT::v2i64,
/* 64568*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 64570*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (shl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VSLD:{ *:[v2i64] } ?:{ *:[v2i64] }:$vA, ?:{ *:[v2i64] }:$vB)
/* 64578*/    /*Scope*/ 33, /*->64612*/
/* 64579*/      OPC_CheckChild1Type, MVT::v1i128,
/* 64581*/      OPC_CheckType, MVT::v1i128,
/* 64583*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64585*/      OPC_EmitNode1, TARGET_VAL(PPC::VSLO), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64593*/      OPC_EmitInteger, MVT::i32, 15, 
/* 64596*/      OPC_EmitNode1, TARGET_VAL(PPC::VSPLTB), 0,
                    MVT::v16i8, 2/*#Ops*/, 3, 1,  // Results = #4
/* 64604*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSL), 0,
                    MVT::v1i128, 2/*#Ops*/, 2, 4, 
                // Src: (shl:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 3
                // Dst: (VSL:{ *:[v1i128] } (VSLO:{ *:[v16i8] } ?:{ *:[v1i128] }:$vA, ?:{ *:[v1i128] }:$vB), (VSPLTB:{ *:[v16i8] } 15:{ *:[i32] }, ?:{ *:[v1i128] }:$vB))
/* 64612*/    0, /*End of Scope*/
/* 64613*/  /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(ISD::SRL),// ->64790
/* 64617*/    OPC_RecordChild0, // #0 = $in
/* 64618*/    OPC_RecordChild1, // #1 = $imm
/* 64619*/    OPC_Scope, 49, /*->64670*/ // 7 children in Scope
/* 64621*/      OPC_MoveChild1,
/* 64622*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64625*/      OPC_CheckType, MVT::i32,
/* 64627*/      OPC_MoveParent,
/* 64628*/      OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->64651
/* 64631*/        OPC_EmitConvertToTarget, 1,
/* 64633*/        OPC_EmitNodeXForm, 8, 2, // SRL32
/* 64636*/        OPC_EmitConvertToTarget, 1,
/* 64638*/        OPC_EmitInteger, MVT::i32, 31, 
/* 64641*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                      MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (srl:{ *:[i32] } i32:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                  // Dst: (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$in, (SRL32:{ *:[i32] } (imm:{ *:[i32] }):$imm), (imm:{ *:[i32] }):$imm, 31:{ *:[i32] })
/* 64651*/      /*SwitchType*/ 16, MVT::i64,// ->64669
/* 64653*/        OPC_EmitConvertToTarget, 1,
/* 64655*/        OPC_EmitNodeXForm, 9, 2, // SRL64
/* 64658*/        OPC_EmitConvertToTarget, 1,
/* 64660*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 0, 3, 4, 
                  // Src: (srl:{ *:[i64] } i64:{ *:[i64] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                  // Dst: (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$in, (SRL64:{ *:[i32] } (imm:{ *:[i32] }):$imm), (imm:{ *:[i32] }):$imm)
/* 64669*/      0, // EndSwitchType
/* 64670*/    /*Scope*/ 24, /*->64695*/
/* 64671*/      OPC_CheckChild1Type, MVT::i32,
/* 64673*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->64684
/* 64676*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SRW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (srl:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SRW:{ *:[i32] } ?:{ *:[i32] }:$rS, ?:{ *:[i32] }:$rB)
/* 64684*/      /*SwitchType*/ 8, MVT::i64,// ->64694
/* 64686*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (srl:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SRD:{ *:[i64] } ?:{ *:[i64] }:$rS, ?:{ *:[i32] }:$rB)
/* 64694*/      0, // EndSwitchType
/* 64695*/    /*Scope*/ 14, /*->64710*/
/* 64696*/      OPC_CheckChild1Type, MVT::v16i8,
/* 64698*/      OPC_CheckType, MVT::v16i8,
/* 64700*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64702*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (srl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VSRB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vB)
/* 64710*/    /*Scope*/ 14, /*->64725*/
/* 64711*/      OPC_CheckChild1Type, MVT::v8i16,
/* 64713*/      OPC_CheckType, MVT::v8i16,
/* 64715*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64717*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (srl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VSRH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v8i16] }:$vB)
/* 64725*/    /*Scope*/ 14, /*->64740*/
/* 64726*/      OPC_CheckChild1Type, MVT::v4i32,
/* 64728*/      OPC_CheckType, MVT::v4i32,
/* 64730*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64732*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (srl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VSRW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 64740*/    /*Scope*/ 14, /*->64755*/
/* 64741*/      OPC_CheckChild1Type, MVT::v2i64,
/* 64743*/      OPC_CheckType, MVT::v2i64,
/* 64745*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 64747*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (srl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VSRD:{ *:[v2i64] } ?:{ *:[v2i64] }:$vA, ?:{ *:[v2i64] }:$vB)
/* 64755*/    /*Scope*/ 33, /*->64789*/
/* 64756*/      OPC_CheckChild1Type, MVT::v1i128,
/* 64758*/      OPC_CheckType, MVT::v1i128,
/* 64760*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 64762*/      OPC_EmitNode1, TARGET_VAL(PPC::VSRO), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64770*/      OPC_EmitInteger, MVT::i32, 15, 
/* 64773*/      OPC_EmitNode1, TARGET_VAL(PPC::VSPLTB), 0,
                    MVT::v16i8, 2/*#Ops*/, 3, 1,  // Results = #4
/* 64781*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSR), 0,
                    MVT::v1i128, 2/*#Ops*/, 2, 4, 
                // Src: (srl:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 3
                // Dst: (VSR:{ *:[v1i128] } (VSRO:{ *:[v16i8] } ?:{ *:[v1i128] }:$vA, ?:{ *:[v1i128] }:$vB), (VSPLTB:{ *:[v16i8] } 15:{ *:[i32] }, ?:{ *:[v1i128] }:$vB))
/* 64789*/    0, /*End of Scope*/
/* 64790*/  /*SwitchOpcode*/ 87, TARGET_VAL(ISD::ROTL),// ->64880
/* 64793*/    OPC_RecordChild0, // #0 = $in
/* 64794*/    OPC_RecordChild1, // #1 = $imm
/* 64795*/    OPC_Scope, 45, /*->64842*/ // 2 children in Scope
/* 64797*/      OPC_MoveChild1,
/* 64798*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 64801*/      OPC_CheckType, MVT::i32,
/* 64803*/      OPC_MoveParent,
/* 64804*/      OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->64825
/* 64807*/        OPC_EmitConvertToTarget, 1,
/* 64809*/        OPC_EmitInteger, MVT::i32, 0, 
/* 64812*/        OPC_EmitInteger, MVT::i32, 31, 
/* 64815*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWINM), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (rotl:{ *:[i32] } i32:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                  // Dst: (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$in, (imm:{ *:[i32] }):$imm, 0:{ *:[i32] }, 31:{ *:[i32] })
/* 64825*/      /*SwitchType*/ 14, MVT::i64,// ->64841
/* 64827*/        OPC_EmitConvertToTarget, 1,
/* 64829*/        OPC_EmitInteger, MVT::i32, 0, 
/* 64832*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 0, 2, 3, 
                  // Src: (rotl:{ *:[i64] } i64:{ *:[i64] }:$in, (imm:{ *:[i32] }):$imm) - Complexity = 6
                  // Dst: (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$in, (imm:{ *:[i32] }):$imm, 0:{ *:[i32] })
/* 64841*/      0, // EndSwitchType
/* 64842*/    /*Scope*/ 36, /*->64879*/
/* 64843*/      OPC_CheckChild1Type, MVT::i32,
/* 64845*/      OPC_SwitchType /*2 cases */, 16, MVT::i32,// ->64864
/* 64848*/        OPC_EmitInteger, MVT::i32, 0, 
/* 64851*/        OPC_EmitInteger, MVT::i32, 31, 
/* 64854*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLWNM), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (rotl:{ *:[i32] } i32:{ *:[i32] }:$in, i32:{ *:[i32] }:$sh) - Complexity = 3
                  // Dst: (RLWNM:{ *:[i32] } ?:{ *:[i32] }:$in, ?:{ *:[i32] }:$sh, 0:{ *:[i32] }, 31:{ *:[i32] })
/* 64864*/      /*SwitchType*/ 12, MVT::i64,// ->64878
/* 64866*/        OPC_EmitInteger, MVT::i32, 0, 
/* 64869*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDCL), 0,
                      MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (rotl:{ *:[i64] } i64:{ *:[i64] }:$in, i32:{ *:[i32] }:$sh) - Complexity = 3
                  // Dst: (RLDCL:{ *:[i64] } ?:{ *:[i64] }:$in, ?:{ *:[i32] }:$sh, 0:{ *:[i32] })
/* 64878*/      0, // EndSwitchType
/* 64879*/    0, /*End of Scope*/
/* 64880*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::LD_GOT_TPREL_L),// ->64912
/* 64883*/    OPC_RecordChild0, // #0 = $disp
/* 64884*/    OPC_MoveChild0,
/* 64885*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 64888*/    OPC_MoveParent,
/* 64889*/    OPC_RecordChild1, // #1 = $reg
/* 64890*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->64901
/* 64893*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LDgotTprelL32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCldGotTprelL:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$disp, i32:{ *:[i32] }:$reg) - Complexity = 6
                // Dst: (LDgotTprelL32:{ *:[i32] } (tglobaltlsaddr:{ *:[i32] }):$disp, i32:{ *:[i32] }:$reg)
/* 64901*/    /*SwitchType*/ 8, MVT::i64,// ->64911
/* 64903*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LDgotTprelL), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCldGotTprelL:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg) - Complexity = 6
                // Dst: (LDgotTprelL:{ *:[i64] } (tglobaltlsaddr:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg)
/* 64911*/    0, // EndSwitchType
/* 64912*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADD_TLS),// ->64944
/* 64915*/    OPC_RecordChild0, // #0 = $in
/* 64916*/    OPC_RecordChild1, // #1 = $g
/* 64917*/    OPC_MoveChild1,
/* 64918*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 64921*/    OPC_MoveParent,
/* 64922*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->64933
/* 64925*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADD4TLS), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddTls:{ *:[i32] } i32:{ *:[i32] }:$in, (tglobaltlsaddr:{ *:[i32] }):$g) - Complexity = 6
                // Dst: (ADD4TLS:{ *:[i32] } ?:{ *:[i32] }:$in, (tglobaltlsaddr:{ *:[i32] }):$g)
/* 64933*/    /*SwitchType*/ 8, MVT::i64,// ->64943
/* 64935*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADD8TLS), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddTls:{ *:[i64] } i64:{ *:[i64] }:$in, (tglobaltlsaddr:{ *:[i64] }):$g) - Complexity = 6
                // Dst: (ADD8TLS:{ *:[i64] } ?:{ *:[i64] }:$in, (tglobaltlsaddr:{ *:[i64] }):$g)
/* 64943*/    0, // EndSwitchType
/* 64944*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADDI_TLSGD_L),// ->64976
/* 64947*/    OPC_RecordChild0, // #0 = $reg
/* 64948*/    OPC_RecordChild1, // #1 = $disp
/* 64949*/    OPC_MoveChild1,
/* 64950*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 64953*/    OPC_MoveParent,
/* 64954*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->64965
/* 64957*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDItlsgdL32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddiTlsgdL:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp) - Complexity = 6
                // Dst: (ADDItlsgdL32:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp)
/* 64965*/    /*SwitchType*/ 8, MVT::i64,// ->64975
/* 64967*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDItlsgdL), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddiTlsgdL:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp) - Complexity = 6
                // Dst: (ADDItlsgdL:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp)
/* 64975*/    0, // EndSwitchType
/* 64976*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::GET_TLS_ADDR),// ->65008
/* 64979*/    OPC_RecordChild0, // #0 = $reg
/* 64980*/    OPC_RecordChild1, // #1 = $sym
/* 64981*/    OPC_MoveChild1,
/* 64982*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 64985*/    OPC_MoveParent,
/* 64986*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->64997
/* 64989*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::GETtlsADDR32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCgetTlsAddr:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$sym) - Complexity = 6
                // Dst: (GETtlsADDR32:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$sym)
/* 64997*/    /*SwitchType*/ 8, MVT::i64,// ->65007
/* 64999*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::GETtlsADDR), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCgetTlsAddr:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$sym) - Complexity = 6
                // Dst: (GETtlsADDR:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$sym)
/* 65007*/    0, // EndSwitchType
/* 65008*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADDI_TLSLD_L),// ->65040
/* 65011*/    OPC_RecordChild0, // #0 = $reg
/* 65012*/    OPC_RecordChild1, // #1 = $disp
/* 65013*/    OPC_MoveChild1,
/* 65014*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 65017*/    OPC_MoveParent,
/* 65018*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->65029
/* 65021*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDItlsldL32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddiTlsldL:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp) - Complexity = 6
                // Dst: (ADDItlsldL32:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp)
/* 65029*/    /*SwitchType*/ 8, MVT::i64,// ->65039
/* 65031*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDItlsldL), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddiTlsldL:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp) - Complexity = 6
                // Dst: (ADDItlsldL:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp)
/* 65039*/    0, // EndSwitchType
/* 65040*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::GET_TLSLD_ADDR),// ->65072
/* 65043*/    OPC_RecordChild0, // #0 = $reg
/* 65044*/    OPC_RecordChild1, // #1 = $sym
/* 65045*/    OPC_MoveChild1,
/* 65046*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 65049*/    OPC_MoveParent,
/* 65050*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->65061
/* 65053*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::GETtlsldADDR32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCgetTlsldAddr:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$sym) - Complexity = 6
                // Dst: (GETtlsldADDR32:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$sym)
/* 65061*/    /*SwitchType*/ 8, MVT::i64,// ->65071
/* 65063*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::GETtlsldADDR), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCgetTlsldAddr:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$sym) - Complexity = 6
                // Dst: (GETtlsldADDR:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$sym)
/* 65071*/    0, // EndSwitchType
/* 65072*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADDI_DTPREL_L),// ->65104
/* 65075*/    OPC_RecordChild0, // #0 = $reg
/* 65076*/    OPC_RecordChild1, // #1 = $disp
/* 65077*/    OPC_MoveChild1,
/* 65078*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 65081*/    OPC_MoveParent,
/* 65082*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->65093
/* 65085*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIdtprelL32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddiDtprelL:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp) - Complexity = 6
                // Dst: (ADDIdtprelL32:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp)
/* 65093*/    /*SwitchType*/ 8, MVT::i64,// ->65103
/* 65095*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIdtprelL), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddiDtprelL:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp) - Complexity = 6
                // Dst: (ADDIdtprelL:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp)
/* 65103*/    0, // EndSwitchType
/* 65104*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADDIS_DTPREL_HA),// ->65136
/* 65107*/    OPC_RecordChild0, // #0 = $reg
/* 65108*/    OPC_RecordChild1, // #1 = $disp
/* 65109*/    OPC_MoveChild1,
/* 65110*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 65113*/    OPC_MoveParent,
/* 65114*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->65125
/* 65117*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDISdtprelHA32), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddisDtprelHA:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp) - Complexity = 6
                // Dst: (ADDISdtprelHA32:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaltlsaddr:{ *:[i32] }):$disp)
/* 65125*/    /*SwitchType*/ 8, MVT::i64,// ->65135
/* 65127*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDISdtprelHA), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCaddisDtprelHA:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp) - Complexity = 6
                // Dst: (ADDISdtprelHA:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp)
/* 65135*/    0, // EndSwitchType
/* 65136*/  /*SwitchOpcode*/ 77, TARGET_VAL(PPCISD::TOC_ENTRY),// ->65216
/* 65139*/    OPC_RecordMemRef,
/* 65140*/    OPC_RecordChild0, // #0 = $disp
/* 65141*/    OPC_MoveChild0,
/* 65142*/    OPC_SwitchOpcode /*4 cases */, 24, TARGET_VAL(ISD::TargetGlobalAddress),// ->65170
/* 65146*/      OPC_MoveParent,
/* 65147*/      OPC_RecordChild1, // #1 = $reg
/* 65148*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->65159
/* 65151*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZtoc), 0|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCtoc_entry:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$disp, i32:{ *:[i32] }:$reg) - Complexity = 6
                  // Dst: (LWZtoc:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$disp, i32:{ *:[i32] }:$reg)
/* 65159*/      /*SwitchType*/ 8, MVT::i64,// ->65169
/* 65161*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LDtoc), 0|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCtoc_entry:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg) - Complexity = 6
                  // Dst: (LDtoc:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg)
/* 65169*/      0, // EndSwitchType
/* 65170*/    /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetJumpTable),// ->65185
/* 65173*/      OPC_MoveParent,
/* 65174*/      OPC_RecordChild1, // #1 = $reg
/* 65175*/      OPC_CheckType, MVT::i64,
/* 65177*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LDtocJTI), 0|OPFL_MemRefs,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCtoc_entry:{ *:[i64] } (tjumptable:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg) - Complexity = 6
                // Dst: (LDtocJTI:{ *:[i64] } (tjumptable:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg)
/* 65185*/    /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetConstantPool),// ->65200
/* 65188*/      OPC_MoveParent,
/* 65189*/      OPC_RecordChild1, // #1 = $reg
/* 65190*/      OPC_CheckType, MVT::i64,
/* 65192*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LDtocCPT), 0|OPFL_MemRefs,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCtoc_entry:{ *:[i64] } (tconstpool:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg) - Complexity = 6
                // Dst: (LDtocCPT:{ *:[i64] } (tconstpool:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg)
/* 65200*/    /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetBlockAddress),// ->65215
/* 65203*/      OPC_MoveParent,
/* 65204*/      OPC_RecordChild1, // #1 = $reg
/* 65205*/      OPC_CheckType, MVT::i64,
/* 65207*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LDtocBA), 0|OPFL_MemRefs,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCtoc_entry:{ *:[i64] } (tblockaddress:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg) - Complexity = 6
                // Dst: (LDtocBA:{ *:[i64] } (tblockaddress:{ *:[i64] }):$disp, i64:{ *:[i64] }:$reg)
/* 65215*/    0, // EndSwitchOpcode
/* 65216*/  /*SwitchOpcode*/ 47, TARGET_VAL(PPCISD::CALL_NOP),// ->65266
/* 65219*/    OPC_RecordNode, // #0 = 'PPCcall_nop' chained node
/* 65220*/    OPC_CaptureGlueInput,
/* 65221*/    OPC_RecordChild1, // #1 = $func
/* 65222*/    OPC_MoveChild1,
/* 65223*/    OPC_SwitchOpcode /*3 cases */, 12, TARGET_VAL(ISD::Constant),// ->65239
/* 65227*/      OPC_CheckType, MVT::i64,
/* 65229*/      OPC_MoveParent,
/* 65230*/      OPC_EmitMergeInputChains1_0,
/* 65231*/      OPC_EmitConvertToTarget, 1,
/* 65233*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BLA8_NOP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    1/*#Ops*/, 2, 
                // Src: (PPCcall_nop (imm:{ *:[i64] }):$func) - Complexity = 6
                // Dst: (BLA8_NOP (imm:{ *:[i64] }):$func)
/* 65239*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->65252
/* 65242*/      OPC_CheckType, MVT::i64,
/* 65244*/      OPC_MoveParent,
/* 65245*/      OPC_EmitMergeInputChains1_0,
/* 65246*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BL8_NOP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    1/*#Ops*/, 1, 
                // Src: (PPCcall_nop (tglobaladdr:{ *:[i64] }):$dst) - Complexity = 6
                // Dst: (BL8_NOP (tglobaladdr:{ *:[i64] }):$dst)
/* 65252*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetExternalSymbol),// ->65265
/* 65255*/      OPC_CheckType, MVT::i64,
/* 65257*/      OPC_MoveParent,
/* 65258*/      OPC_EmitMergeInputChains1_0,
/* 65259*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BL8_NOP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    1/*#Ops*/, 1, 
                // Src: (PPCcall_nop (texternalsym:{ *:[i64] }):$dst) - Complexity = 6
                // Dst: (BL8_NOP (texternalsym:{ *:[i64] }):$dst)
/* 65265*/    0, // EndSwitchOpcode
/* 65266*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::ADDIS_GOT_TPREL_HA),// ->65286
/* 65269*/    OPC_RecordChild0, // #0 = $reg
/* 65270*/    OPC_RecordChild1, // #1 = $disp
/* 65271*/    OPC_MoveChild1,
/* 65272*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 65275*/    OPC_MoveParent,
/* 65276*/    OPC_CheckType, MVT::i64,
/* 65278*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDISgotTprelHA), 0,
                  MVT::i64, 2/*#Ops*/, 0, 1, 
              // Src: (PPCaddisGotTprelHA:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp) - Complexity = 6
              // Dst: (ADDISgotTprelHA:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp)
/* 65286*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::ADDIS_TLSGD_HA),// ->65306
/* 65289*/    OPC_RecordChild0, // #0 = $reg
/* 65290*/    OPC_RecordChild1, // #1 = $disp
/* 65291*/    OPC_MoveChild1,
/* 65292*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 65295*/    OPC_MoveParent,
/* 65296*/    OPC_CheckType, MVT::i64,
/* 65298*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIStlsgdHA), 0,
                  MVT::i64, 2/*#Ops*/, 0, 1, 
              // Src: (PPCaddisTlsgdHA:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp) - Complexity = 6
              // Dst: (ADDIStlsgdHA:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp)
/* 65306*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::ADDIS_TLSLD_HA),// ->65326
/* 65309*/    OPC_RecordChild0, // #0 = $reg
/* 65310*/    OPC_RecordChild1, // #1 = $disp
/* 65311*/    OPC_MoveChild1,
/* 65312*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 65315*/    OPC_MoveParent,
/* 65316*/    OPC_CheckType, MVT::i64,
/* 65318*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIStlsldHA), 0,
                  MVT::i64, 2/*#Ops*/, 0, 1, 
              // Src: (PPCaddisTlsldHA:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp) - Complexity = 6
              // Dst: (ADDIStlsldHA:{ *:[i64] } i64:{ *:[i64] }:$reg, (tglobaltlsaddr:{ *:[i64] }):$disp)
/* 65326*/  /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(ISD::Constant),// ->65466
/* 65330*/    OPC_Scope, 10, /*->65342*/ // 4 children in Scope
/* 65332*/      OPC_CheckInteger, 1, 
/* 65334*/      OPC_CheckType, MVT::i1,
/* 65336*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CRSET), 0,
                    MVT::i1, 0/*#Ops*/, 
                // Src: 1:{ *:[i1] } - Complexity = 5
                // Dst: (CRSET:{ *:[i1] })
/* 65342*/    /*Scope*/ 10, /*->65353*/
/* 65343*/      OPC_CheckInteger, 0, 
/* 65345*/      OPC_CheckType, MVT::i1,
/* 65347*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CRUNSET), 0,
                    MVT::i1, 0/*#Ops*/, 
                // Src: 0:{ *:[i1] } - Complexity = 5
                // Dst: (CRUNSET:{ *:[i1] })
/* 65353*/    /*Scope*/ 19, /*->65373*/
/* 65354*/      OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 65365*/      OPC_CheckType, MVT::i1,
/* 65367*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CRSET), 0,
                    MVT::i1, 0/*#Ops*/, 
                // Src: -1:{ *:[i1] } - Complexity = 5
                // Dst: (CRSET:{ *:[i1] })
/* 65373*/    /*Scope*/ 91, /*->65465*/
/* 65374*/      OPC_RecordNode, // #0 = $imm
/* 65375*/      OPC_SwitchType /*2 cases */, 55, MVT::i32,// ->65433
/* 65378*/        OPC_Scope, 11, /*->65391*/ // 3 children in Scope
/* 65380*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 65382*/          OPC_EmitConvertToTarget, 0,
/* 65384*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$imm - Complexity = 4
                    // Dst: (LI:{ *:[i32] } (imm:{ *:[i32] }):$imm)
/* 65391*/        /*Scope*/ 14, /*->65406*/
/* 65392*/          OPC_CheckPredicate, 18, // Predicate_imm16ShiftedSExt
/* 65394*/          OPC_EmitConvertToTarget, 0,
/* 65396*/          OPC_EmitNodeXForm, 0, 1, // HI16
/* 65399*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                        MVT::i32, 1/*#Ops*/, 2, 
                    // Src: (imm:{ *:[i32] })<<P:Predicate_imm16ShiftedSExt>><<X:HI16>>:$imm - Complexity = 4
                    // Dst: (LIS:{ *:[i32] } (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 65406*/        /*Scope*/ 25, /*->65432*/
/* 65407*/          OPC_EmitConvertToTarget, 0,
/* 65409*/          OPC_EmitNodeXForm, 0, 1, // HI16
/* 65412*/          OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                        MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/* 65419*/          OPC_EmitConvertToTarget, 0,
/* 65421*/          OPC_EmitNodeXForm, 1, 4, // LO16
/* 65424*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ORI), 0,
                        MVT::i32, 2/*#Ops*/, 3, 5, 
                    // Src: (imm:{ *:[i32] }):$imm - Complexity = 3
                    // Dst: (ORI:{ *:[i32] } (LIS:{ *:[i32] } (HI16:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO16:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 65432*/        0, /*End of Scope*/
/* 65433*/      /*SwitchType*/ 29, MVT::i64,// ->65464
/* 65435*/        OPC_Scope, 11, /*->65448*/ // 2 children in Scope
/* 65437*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 65439*/          OPC_EmitConvertToTarget, 0,
/* 65441*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1, 
                    // Src: (imm:{ *:[i64] })<<P:Predicate_imm64SExt16>>:$imm - Complexity = 4
                    // Dst: (LI8:{ *:[i64] } (imm:{ *:[i64] }):$imm)
/* 65448*/        /*Scope*/ 14, /*->65463*/
/* 65449*/          OPC_CheckPredicate, 18, // Predicate_imm16ShiftedSExt
/* 65451*/          OPC_EmitConvertToTarget, 0,
/* 65453*/          OPC_EmitNodeXForm, 0, 1, // HI16
/* 65456*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS8), 0,
                        MVT::i64, 1/*#Ops*/, 2, 
                    // Src: (imm:{ *:[i64] })<<P:Predicate_imm16ShiftedSExt>><<X:HI16>>:$imm - Complexity = 4
                    // Dst: (LIS8:{ *:[i64] } (HI16:{ *:[i64] } (imm:{ *:[i64] }):$imm))
/* 65463*/        0, /*End of Scope*/
/* 65464*/      0, // EndSwitchType
/* 65465*/    0, /*End of Scope*/
/* 65466*/  /*SwitchOpcode*/ 22, TARGET_VAL(PPCISD::RET_FLAG),// ->65491
/* 65469*/    OPC_RecordNode, // #0 = 'retflag' chained node
/* 65470*/    OPC_CaptureGlueInput,
/* 65471*/    OPC_Scope, 8, /*->65481*/ // 2 children in Scope
/* 65473*/      OPC_CheckPatternPredicate, 34, // (!PPCSubTarget->isPPC64())
/* 65475*/      OPC_EmitMergeInputChains1_0,
/* 65476*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BLR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                    0/*#Ops*/, 
                // Src: (retflag) - Complexity = 3
                // Dst: (BLR)
/* 65481*/    /*Scope*/ 8, /*->65490*/
/* 65482*/      OPC_CheckPatternPredicate, 33, // (PPCSubTarget->isPPC64())
/* 65484*/      OPC_EmitMergeInputChains1_0,
/* 65485*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BLR8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                    0/*#Ops*/, 
                // Src: (retflag) - Complexity = 3
                // Dst: (BLR8)
/* 65490*/    0, /*End of Scope*/
/* 65491*/  /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->65508
/* 65494*/    OPC_RecordNode, // #0 = 'br' chained node
/* 65495*/    OPC_RecordChild1, // #1 = $dst
/* 65496*/    OPC_MoveChild1,
/* 65497*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 65500*/    OPC_MoveParent,
/* 65501*/    OPC_EmitMergeInputChains1_0,
/* 65502*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::B), 0|OPFL_Chain,
                  1/*#Ops*/, 1, 
              // Src: (br (bb:{ *:[Other] }):$dst) - Complexity = 3
              // Dst: (B (bb:{ *:[Other] }):$dst)
/* 65508*/  /*SwitchOpcode*/ 22, TARGET_VAL(PPCISD::BCTRL),// ->65533
/* 65511*/    OPC_RecordNode, // #0 = 'PPCbctrl' chained node
/* 65512*/    OPC_CaptureGlueInput,
/* 65513*/    OPC_Scope, 8, /*->65523*/ // 2 children in Scope
/* 65515*/      OPC_CheckPatternPredicate, 34, // (!PPCSubTarget->isPPC64())
/* 65517*/      OPC_EmitMergeInputChains1_0,
/* 65518*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BCTRL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic0,
                    0/*#Ops*/, 
                // Src: (PPCbctrl) - Complexity = 3
                // Dst: (BCTRL)
/* 65523*/    /*Scope*/ 8, /*->65532*/
/* 65524*/      OPC_CheckPatternPredicate, 33, // (PPCSubTarget->isPPC64())
/* 65526*/      OPC_EmitMergeInputChains1_0,
/* 65527*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BCTRL8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic0,
                    0/*#Ops*/, 
                // Src: (PPCbctrl) - Complexity = 3
                // Dst: (BCTRL8)
/* 65532*/    0, /*End of Scope*/
/* 65533*/  /*SwitchOpcode*/ 7, TARGET_VAL(PPCISD::CLRBHRB),// ->65543
/* 65536*/    OPC_RecordNode, // #0 = 'PPCclrbhrb' chained node
/* 65537*/    OPC_EmitMergeInputChains1_0,
/* 65538*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::CLRBHRB), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (PPCclrbhrb) - Complexity = 3
              // Dst: (CLRBHRB)
/* 65543*/  /*SwitchOpcode*/ 7, TARGET_VAL(ISD::TRAP),// ->65553
/* 65546*/    OPC_RecordNode, // #0 = 'trap' chained node
/* 65547*/    OPC_EmitMergeInputChains1_0,
/* 65548*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::TRAP), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (trap) - Complexity = 3
              // Dst: (TRAP)
/* 65553*/  /*SwitchOpcode*/ 123, TARGET_VAL(PPCISD::SHL),// ->65679
/* 65556*/    OPC_RecordChild0, // #0 = $rS
/* 65557*/    OPC_RecordChild1, // #1 = $rB
/* 65558*/    OPC_Scope, 24, /*->65584*/ // 6 children in Scope
/* 65560*/      OPC_CheckChild1Type, MVT::i32,
/* 65562*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->65573
/* 65565*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SLW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCshl:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SLW:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 65573*/      /*SwitchType*/ 8, MVT::i64,// ->65583
/* 65575*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SLD), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCshl:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SLD:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB)
/* 65583*/      0, // EndSwitchType
/* 65584*/    /*Scope*/ 14, /*->65599*/
/* 65585*/      OPC_CheckChild1Type, MVT::v16i8,
/* 65587*/      OPC_CheckType, MVT::v16i8,
/* 65589*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65591*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (PPCshl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VSLB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vB)
/* 65599*/    /*Scope*/ 14, /*->65614*/
/* 65600*/      OPC_CheckChild1Type, MVT::v8i16,
/* 65602*/      OPC_CheckType, MVT::v8i16,
/* 65604*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65606*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (PPCshl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VSLH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v8i16] }:$vB)
/* 65614*/    /*Scope*/ 14, /*->65629*/
/* 65615*/      OPC_CheckChild1Type, MVT::v4i32,
/* 65617*/      OPC_CheckType, MVT::v4i32,
/* 65619*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65621*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCshl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VSLW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 65629*/    /*Scope*/ 14, /*->65644*/
/* 65630*/      OPC_CheckChild1Type, MVT::v2i64,
/* 65632*/      OPC_CheckType, MVT::v2i64,
/* 65634*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 65636*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCshl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VSLD:{ *:[v2i64] } ?:{ *:[v2i64] }:$vA, ?:{ *:[v2i64] }:$vB)
/* 65644*/    /*Scope*/ 33, /*->65678*/
/* 65645*/      OPC_CheckChild1Type, MVT::v1i128,
/* 65647*/      OPC_CheckType, MVT::v1i128,
/* 65649*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65651*/      OPC_EmitNode1, TARGET_VAL(PPC::VSLO), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65659*/      OPC_EmitInteger, MVT::i32, 15, 
/* 65662*/      OPC_EmitNode1, TARGET_VAL(PPC::VSPLTB), 0,
                    MVT::v16i8, 2/*#Ops*/, 3, 1,  // Results = #4
/* 65670*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSL), 0,
                    MVT::v1i128, 2/*#Ops*/, 2, 4, 
                // Src: (PPCshl:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 3
                // Dst: (VSL:{ *:[v1i128] } (VSLO:{ *:[v16i8] } ?:{ *:[v1i128] }:$vA, ?:{ *:[v1i128] }:$vB), (VSPLTB:{ *:[v16i8] } 15:{ *:[i32] }, ?:{ *:[v1i128] }:$vB))
/* 65678*/    0, /*End of Scope*/
/* 65679*/  /*SwitchOpcode*/ 123, TARGET_VAL(PPCISD::SRL),// ->65805
/* 65682*/    OPC_RecordChild0, // #0 = $rS
/* 65683*/    OPC_RecordChild1, // #1 = $rB
/* 65684*/    OPC_Scope, 24, /*->65710*/ // 6 children in Scope
/* 65686*/      OPC_CheckChild1Type, MVT::i32,
/* 65688*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->65699
/* 65691*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SRW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCsrl:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SRW:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 65699*/      /*SwitchType*/ 8, MVT::i64,// ->65709
/* 65701*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCsrl:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SRD:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB)
/* 65709*/      0, // EndSwitchType
/* 65710*/    /*Scope*/ 14, /*->65725*/
/* 65711*/      OPC_CheckChild1Type, MVT::v16i8,
/* 65713*/      OPC_CheckType, MVT::v16i8,
/* 65715*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65717*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (PPCsrl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VSRB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vB)
/* 65725*/    /*Scope*/ 14, /*->65740*/
/* 65726*/      OPC_CheckChild1Type, MVT::v8i16,
/* 65728*/      OPC_CheckType, MVT::v8i16,
/* 65730*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65732*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (PPCsrl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VSRH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v8i16] }:$vB)
/* 65740*/    /*Scope*/ 14, /*->65755*/
/* 65741*/      OPC_CheckChild1Type, MVT::v4i32,
/* 65743*/      OPC_CheckType, MVT::v4i32,
/* 65745*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65747*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCsrl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VSRW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 65755*/    /*Scope*/ 14, /*->65770*/
/* 65756*/      OPC_CheckChild1Type, MVT::v2i64,
/* 65758*/      OPC_CheckType, MVT::v2i64,
/* 65760*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 65762*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCsrl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VSRD:{ *:[v2i64] } ?:{ *:[v2i64] }:$vA, ?:{ *:[v2i64] }:$vB)
/* 65770*/    /*Scope*/ 33, /*->65804*/
/* 65771*/      OPC_CheckChild1Type, MVT::v1i128,
/* 65773*/      OPC_CheckType, MVT::v1i128,
/* 65775*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65777*/      OPC_EmitNode1, TARGET_VAL(PPC::VSRO), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65785*/      OPC_EmitInteger, MVT::i32, 15, 
/* 65788*/      OPC_EmitNode1, TARGET_VAL(PPC::VSPLTB), 0,
                    MVT::v16i8, 2/*#Ops*/, 3, 1,  // Results = #4
/* 65796*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSR), 0,
                    MVT::v1i128, 2/*#Ops*/, 2, 4, 
                // Src: (PPCsrl:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 3
                // Dst: (VSR:{ *:[v1i128] } (VSRO:{ *:[v16i8] } ?:{ *:[v1i128] }:$vA, ?:{ *:[v1i128] }:$vB), (VSPLTB:{ *:[v16i8] } 15:{ *:[i32] }, ?:{ *:[v1i128] }:$vB))
/* 65804*/    0, /*End of Scope*/
/* 65805*/  /*SwitchOpcode*/ 91, TARGET_VAL(PPCISD::SRA),// ->65899
/* 65808*/    OPC_RecordChild0, // #0 = $rS
/* 65809*/    OPC_RecordChild1, // #1 = $rB
/* 65810*/    OPC_Scope, 26, /*->65838*/ // 5 children in Scope
/* 65812*/      OPC_CheckChild1Type, MVT::i32,
/* 65814*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->65826
/* 65817*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SRAW), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCsra:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SRAW:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 65826*/      /*SwitchType*/ 9, MVT::i64,// ->65837
/* 65828*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::SRAD), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCsra:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                  // Dst: (SRAD:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$rS, i32:{ *:[i32] }:$rB)
/* 65837*/      0, // EndSwitchType
/* 65838*/    /*Scope*/ 14, /*->65853*/
/* 65839*/      OPC_CheckChild1Type, MVT::v16i8,
/* 65841*/      OPC_CheckType, MVT::v16i8,
/* 65843*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65845*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (PPCsra:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VSRAB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vB)
/* 65853*/    /*Scope*/ 14, /*->65868*/
/* 65854*/      OPC_CheckChild1Type, MVT::v8i16,
/* 65856*/      OPC_CheckType, MVT::v8i16,
/* 65858*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65860*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (PPCsra:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VSRAH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v8i16] }:$vB)
/* 65868*/    /*Scope*/ 14, /*->65883*/
/* 65869*/      OPC_CheckChild1Type, MVT::v4i32,
/* 65871*/      OPC_CheckType, MVT::v4i32,
/* 65873*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 65875*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCsra:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VSRAW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 65883*/    /*Scope*/ 14, /*->65898*/
/* 65884*/      OPC_CheckChild1Type, MVT::v2i64,
/* 65886*/      OPC_CheckType, MVT::v2i64,
/* 65888*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 65890*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCsra:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VSRAD:{ *:[v2i64] } ?:{ *:[v2i64] }:$vA, ?:{ *:[v2i64] }:$vB)
/* 65898*/    0, /*End of Scope*/
/* 65899*/  /*SwitchOpcode*/ 65, TARGET_VAL(ISD::CTLZ),// ->65967
/* 65902*/    OPC_RecordChild0, // #0 = $rS
/* 65903*/    OPC_SwitchType /*6 cases */, 7, MVT::i32,// ->65913
/* 65906*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CNTLZW), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ctlz:{ *:[i32] } i32:{ *:[i32] }:$rS) - Complexity = 3
                // Dst: (CNTLZW:{ *:[i32] } i32:{ *:[i32] }:$rS)
/* 65913*/    /*SwitchType*/ 7, MVT::i64,// ->65922
/* 65915*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CNTLZD), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (ctlz:{ *:[i64] } i64:{ *:[i64] }:$rS) - Complexity = 3
                // Dst: (CNTLZD:{ *:[i64] } i64:{ *:[i64] }:$rS)
/* 65922*/    /*SwitchType*/ 9, MVT::v16i8,// ->65933
/* 65924*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 65926*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCLZB), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (ctlz:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VCLZB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB)
/* 65933*/    /*SwitchType*/ 9, MVT::v8i16,// ->65944
/* 65935*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 65937*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCLZH), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (ctlz:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VCLZH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vB)
/* 65944*/    /*SwitchType*/ 9, MVT::v4i32,// ->65955
/* 65946*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 65948*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCLZW), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (ctlz:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VCLZW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB)
/* 65955*/    /*SwitchType*/ 9, MVT::v2i64,// ->65966
/* 65957*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 65959*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCLZD), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (ctlz:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VCLZD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB)
/* 65966*/    0, // EndSwitchType
/* 65967*/  /*SwitchOpcode*/ 69, TARGET_VAL(ISD::CTTZ),// ->66039
/* 65970*/    OPC_RecordChild0, // #0 = $rS
/* 65971*/    OPC_SwitchType /*6 cases */, 9, MVT::i32,// ->65983
/* 65974*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 65976*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CNTTZW), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (cttz:{ *:[i32] } i32:{ *:[i32] }:$rS) - Complexity = 3
                // Dst: (CNTTZW:{ *:[i32] } i32:{ *:[i32] }:$rS)
/* 65983*/    /*SwitchType*/ 9, MVT::i64,// ->65994
/* 65985*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 65987*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CNTTZD), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (cttz:{ *:[i64] } i64:{ *:[i64] }:$rS) - Complexity = 3
                // Dst: (CNTTZD:{ *:[i64] } i64:{ *:[i64] }:$rS)
/* 65994*/    /*SwitchType*/ 9, MVT::v16i8,// ->66005
/* 65996*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 65998*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTZB), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (cttz:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VCTZB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB)
/* 66005*/    /*SwitchType*/ 9, MVT::v8i16,// ->66016
/* 66007*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 66009*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTZH), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (cttz:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VCTZH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vB)
/* 66016*/    /*SwitchType*/ 9, MVT::v4i32,// ->66027
/* 66018*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 66020*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTZW), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (cttz:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VCTZW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB)
/* 66027*/    /*SwitchType*/ 9, MVT::v2i64,// ->66038
/* 66029*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/* 66031*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTZD), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (cttz:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VCTZD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB)
/* 66038*/    0, // EndSwitchType
/* 66039*/  /*SwitchOpcode*/ 97, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->66139
/* 66042*/    OPC_RecordChild0, // #0 = $rS
/* 66043*/    OPC_MoveChild1,
/* 66044*/    OPC_Scope, 23, /*->66069*/ // 4 children in Scope
/* 66046*/      OPC_CheckValueType, MVT::i8,
/* 66048*/      OPC_MoveParent,
/* 66049*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->66059
/* 66052*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSB), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$rS, i8:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTSB:{ *:[i32] } i32:{ *:[i32] }:$rS)
/* 66059*/      /*SwitchType*/ 7, MVT::i64,// ->66068
/* 66061*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSB8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (sext_inreg:{ *:[i64] } i64:{ *:[i64] }:$rS, i8:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTSB8:{ *:[i64] } i64:{ *:[i64] }:$rS)
/* 66068*/      0, // EndSwitchType
/* 66069*/    /*Scope*/ 23, /*->66093*/
/* 66070*/      OPC_CheckValueType, MVT::i16,
/* 66072*/      OPC_MoveParent,
/* 66073*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->66083
/* 66076*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSH), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sext_inreg:{ *:[i32] } i32:{ *:[i32] }:$rS, i16:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTSH:{ *:[i32] } i32:{ *:[i32] }:$rS)
/* 66083*/      /*SwitchType*/ 7, MVT::i64,// ->66092
/* 66085*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSH8), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (sext_inreg:{ *:[i64] } i64:{ *:[i64] }:$rS, i16:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTSH8:{ *:[i64] } i64:{ *:[i64] }:$rS)
/* 66092*/      0, // EndSwitchType
/* 66093*/    /*Scope*/ 10, /*->66104*/
/* 66094*/      OPC_CheckValueType, MVT::i32,
/* 66096*/      OPC_MoveParent,
/* 66097*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSW), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (sext_inreg:{ *:[i64] } i64:{ *:[i64] }:$rS, i32:{ *:[Other] }) - Complexity = 3
                // Dst: (EXTSW:{ *:[i64] } i64:{ *:[i64] }:$rS)
/* 66104*/    /*Scope*/ 33, /*->66138*/
/* 66105*/      OPC_CheckValueType, MVT::v2i32,
/* 66107*/      OPC_MoveParent,
/* 66108*/      OPC_CheckType, MVT::v2i64,
/* 66110*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 66112*/      OPC_EmitInteger, MVT::i32, 1, 
/* 66115*/      OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 66124*/      OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                    MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 66131*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPSXDS), 0,
                    MVT::v2i64, 1/*#Ops*/, 3, 
                // Src: (sext_inreg:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$C, v2i32:{ *:[Other] }) - Complexity = 403
                // Dst: (XVCVDPSXDS:{ *:[v2i64] } (XVCVSXWDP:{ *:[v4i32] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v2i64] }:$C, ?:{ *:[v2i64] }:$C, 1:{ *:[i32] })))
/* 66138*/    0, /*End of Scope*/
/* 66139*/  /*SwitchOpcode*/ 24, TARGET_VAL(PPCISD::CMPB),// ->66166
/* 66142*/    OPC_RecordChild0, // #0 = $rS
/* 66143*/    OPC_RecordChild1, // #1 = $rB
/* 66144*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->66155
/* 66147*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CMPB), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCcmpb:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (CMPB:{ *:[i32] } i32:{ *:[i32] }:$rS, i32:{ *:[i32] }:$rB)
/* 66155*/    /*SwitchType*/ 8, MVT::i64,// ->66165
/* 66157*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CMPB8), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCcmpb:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (CMPB8:{ *:[i64] } i64:{ *:[i64] }:$rS, i64:{ *:[i64] }:$rB)
/* 66165*/    0, // EndSwitchType
/* 66166*/  /*SwitchOpcode*/ 9, TARGET_VAL(PPCISD::CR6SET),// ->66178
/* 66169*/    OPC_RecordNode, // #0 = 'PPCcr6set' chained node
/* 66170*/    OPC_CaptureGlueInput,
/* 66171*/    OPC_EmitMergeInputChains1_0,
/* 66172*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::CR6SET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i1, 0/*#Ops*/, 
              // Src: (PPCcr6set) - Complexity = 3
              // Dst: (CR6SET:{ *:[i1] })
/* 66178*/  /*SwitchOpcode*/ 9, TARGET_VAL(PPCISD::CR6UNSET),// ->66190
/* 66181*/    OPC_RecordNode, // #0 = 'PPCcr6unset' chained node
/* 66182*/    OPC_CaptureGlueInput,
/* 66183*/    OPC_EmitMergeInputChains1_0,
/* 66184*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::CR6UNSET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i1, 0/*#Ops*/, 
              // Src: (PPCcr6unset) - Complexity = 3
              // Dst: (CR6UNSET:{ *:[i1] })
/* 66190*/  /*SwitchOpcode*/ 27, TARGET_VAL(PPCISD::MTCTR),// ->66220
/* 66193*/    OPC_RecordNode, // #0 = 'PPCmtctr' chained node
/* 66194*/    OPC_CaptureGlueInput,
/* 66195*/    OPC_RecordChild1, // #1 = $rS
/* 66196*/    OPC_Scope, 10, /*->66208*/ // 2 children in Scope
/* 66198*/      OPC_CheckChild1Type, MVT::i32,
/* 66200*/      OPC_EmitMergeInputChains1_0,
/* 66201*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MTCTR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (PPCmtctr i32:{ *:[i32] }:$rS) - Complexity = 3
                // Dst: (MTCTR:{ *:[i32] } i32:{ *:[i32] }:$rS)
/* 66208*/    /*Scope*/ 10, /*->66219*/
/* 66209*/      OPC_CheckChild1Type, MVT::i64,
/* 66211*/      OPC_EmitMergeInputChains1_0,
/* 66212*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MTCTR8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (PPCmtctr i64:{ *:[i64] }:$rS) - Complexity = 3
                // Dst: (MTCTR8:{ *:[i64] } i64:{ *:[i64] }:$rS)
/* 66219*/    0, /*End of Scope*/
/* 66220*/  /*SwitchOpcode*/ 28, TARGET_VAL(ISD::SREM),// ->66251
/* 66223*/    OPC_RecordChild0, // #0 = $rA
/* 66224*/    OPC_RecordChild1, // #1 = $rB
/* 66225*/    OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->66238
/* 66228*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 66230*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MODSW), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (srem:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (MODSW:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 66238*/    /*SwitchType*/ 10, MVT::i64,// ->66250
/* 66240*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 66242*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MODSD), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (srem:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (MODSD:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 66250*/    0, // EndSwitchType
/* 66251*/  /*SwitchOpcode*/ 28, TARGET_VAL(ISD::UREM),// ->66282
/* 66254*/    OPC_RecordChild0, // #0 = $rA
/* 66255*/    OPC_RecordChild1, // #1 = $rB
/* 66256*/    OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->66269
/* 66259*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 66261*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MODUW), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (urem:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (MODUW:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 66269*/    /*SwitchType*/ 10, MVT::i64,// ->66281
/* 66271*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 66273*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MODUD), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (urem:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (MODUD:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 66281*/    0, // EndSwitchType
/* 66282*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::SDIV),// ->66309
/* 66285*/    OPC_RecordChild0, // #0 = $rA
/* 66286*/    OPC_RecordChild1, // #1 = $rB
/* 66287*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->66298
/* 66290*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVW), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (sdiv:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (DIVW:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 66298*/    /*SwitchType*/ 8, MVT::i64,// ->66308
/* 66300*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVD), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (sdiv:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (DIVD:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 66308*/    0, // EndSwitchType
/* 66309*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::UDIV),// ->66336
/* 66312*/    OPC_RecordChild0, // #0 = $rA
/* 66313*/    OPC_RecordChild1, // #1 = $rB
/* 66314*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->66325
/* 66317*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVWU), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (udiv:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (DIVWU:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 66325*/    /*SwitchType*/ 8, MVT::i64,// ->66335
/* 66327*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVDU), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (udiv:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (DIVDU:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 66335*/    0, // EndSwitchType
/* 66336*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::MULHS),// ->66363
/* 66339*/    OPC_RecordChild0, // #0 = $rA
/* 66340*/    OPC_RecordChild1, // #1 = $rB
/* 66341*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->66352
/* 66344*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MULHW), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (mulhs:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (MULHW:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 66352*/    /*SwitchType*/ 8, MVT::i64,// ->66362
/* 66354*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MULHD), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (mulhs:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (MULHD:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 66362*/    0, // EndSwitchType
/* 66363*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::MULHU),// ->66390
/* 66366*/    OPC_RecordChild0, // #0 = $rA
/* 66367*/    OPC_RecordChild1, // #1 = $rB
/* 66368*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->66379
/* 66371*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MULHWU), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (mulhu:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB) - Complexity = 3
                // Dst: (MULHWU:{ *:[i32] } i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/* 66379*/    /*SwitchType*/ 8, MVT::i64,// ->66389
/* 66381*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MULHDU), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (mulhu:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 3
                // Dst: (MULHDU:{ *:[i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB)
/* 66389*/    0, // EndSwitchType
/* 66390*/  /*SwitchOpcode*/ 8, TARGET_VAL(PPCISD::PPC32_GOT),// ->66401
/* 66393*/    OPC_CheckType, MVT::i32,
/* 66395*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::PPC32GOT), 0,
                  MVT::i32, 0/*#Ops*/, 
              // Src: (PPCppc32GOT:{ *:[i32] }) - Complexity = 3
              // Dst: (PPC32GOT:{ *:[i32] })
/* 66401*/  /*SwitchOpcode*/ 10, TARGET_VAL(ISD::READCYCLECOUNTER),// ->66414
/* 66404*/    OPC_RecordNode, // #0 = 'readcyclecounter' chained node
/* 66405*/    OPC_CheckType, MVT::i64,
/* 66407*/    OPC_EmitMergeInputChains1_0,
/* 66408*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::MFTB8), 0|OPFL_Chain,
                  MVT::i64, 0/*#Ops*/, 
              // Src: (readcyclecounter:{ *:[i64] }) - Complexity = 3
              // Dst: (MFTB8:{ *:[i64] })
/* 66414*/  /*SwitchOpcode*/ 65, TARGET_VAL(ISD::CTPOP),// ->66482
/* 66417*/    OPC_RecordChild0, // #0 = $rS
/* 66418*/    OPC_SwitchType /*6 cases */, 7, MVT::i64,// ->66428
/* 66421*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::POPCNTD), 0,
                    MVT::i64, 1/*#Ops*/, 0, 
                // Src: (ctpop:{ *:[i64] } i64:{ *:[i64] }:$rS) - Complexity = 3
                // Dst: (POPCNTD:{ *:[i64] } i64:{ *:[i64] }:$rS)
/* 66428*/    /*SwitchType*/ 7, MVT::i32,// ->66437
/* 66430*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::POPCNTW), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ctpop:{ *:[i32] } i32:{ *:[i32] }:$rS) - Complexity = 3
                // Dst: (POPCNTW:{ *:[i32] } i32:{ *:[i32] }:$rS)
/* 66437*/    /*SwitchType*/ 9, MVT::v16i8,// ->66448
/* 66439*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 66441*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPOPCNTB), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (ctpop:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VPOPCNTB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB)
/* 66448*/    /*SwitchType*/ 9, MVT::v8i16,// ->66459
/* 66450*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 66452*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPOPCNTH), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (ctpop:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VPOPCNTH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vB)
/* 66459*/    /*SwitchType*/ 9, MVT::v4i32,// ->66470
/* 66461*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 66463*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPOPCNTW), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (ctpop:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VPOPCNTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB)
/* 66470*/    /*SwitchType*/ 9, MVT::v2i64,// ->66481
/* 66472*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/* 66474*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPOPCNTD), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (ctpop:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VPOPCNTD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB)
/* 66481*/    0, // EndSwitchType
/* 66482*/  /*SwitchOpcode*/ 91|128,1/*219*/, TARGET_VAL(ISD::SELECT),// ->66705
/* 66486*/    OPC_RecordChild0, // #0 = $cond
/* 66487*/    OPC_CheckChild0Type, MVT::i1,
/* 66489*/    OPC_RecordChild1, // #1 = $tval
/* 66490*/    OPC_RecordChild2, // #2 = $fval
/* 66491*/    OPC_SwitchType /*11 cases */, 32, MVT::i1,// ->66526
/* 66494*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66502*/      OPC_EmitNode1, TARGET_VAL(PPC::CRNOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 0,  // Results = #4
/* 66510*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 66518*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 3, 5, 
                // Src: (select:{ *:[i1] } i1:{ *:[i1] }:$cond, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } ?:{ *:[i1] }:$cond, ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRNOR:{ *:[i1] } ?:{ *:[i1] }:$cond, ?:{ *:[i1] }:$cond), ?:{ *:[i1] }:$fval))
/* 66526*/    /*SwitchType*/ 9, MVT::i32,// ->66537
/* 66528*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (select:{ *:[i32] } i1:{ *:[i1] }:$cond, i32:{ *:[i32] }:$T, i32:{ *:[i32] }:$F) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } i1:{ *:[i1] }:$cond, i32:{ *:[i32] }:$T, i32:{ *:[i32] }:$F)
/* 66537*/    /*SwitchType*/ 9, MVT::i64,// ->66548
/* 66539*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (select:{ *:[i64] } i1:{ *:[i1] }:$cond, i64:{ *:[i64] }:$T, i64:{ *:[i64] }:$F) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } i1:{ *:[i1] }:$cond, i64:{ *:[i64] }:$T, i64:{ *:[i64] }:$F)
/* 66548*/    /*SwitchType*/ 38, MVT::f64,// ->66588
/* 66550*/      OPC_Scope, 11, /*->66563*/ // 3 children in Scope
/* 66552*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 66554*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (select:{ *:[f64] } i1:{ *:[i1] }:$cond, f64:{ *:[f64] }:$T, f64:{ *:[f64] }:$F) - Complexity = 403
                  // Dst: (SELECT_VSFRC:{ *:[f64] } i1:{ *:[i1] }:$cond, f64:{ *:[f64] }:$T, f64:{ *:[f64] }:$F)
/* 66563*/      /*Scope*/ 11, /*->66575*/
/* 66564*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 66566*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (select:{ *:[f64] } i1:{ *:[i1] }:$cond, f64:{ *:[f64] }:$T, f64:{ *:[f64] }:$F) - Complexity = 3
                  // Dst: (SELECT_F8:{ *:[f64] } i1:{ *:[i1] }:$cond, f64:{ *:[f64] }:$T, f64:{ *:[f64] }:$F)
/* 66575*/      /*Scope*/ 11, /*->66587*/
/* 66576*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 66578*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                      MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (select:{ *:[f64] } i1:{ *:[i1] }:$cond, f64:{ *:[f64] }:$T, f64:{ *:[f64] }:$F) - Complexity = 3
                  // Dst: (SELECT_SPE:{ *:[f64] } i1:{ *:[i1] }:$cond, f64:{ *:[f64] }:$T, f64:{ *:[f64] }:$F)
/* 66587*/      0, /*End of Scope*/
/* 66588*/    /*SwitchType*/ 38, MVT::f32,// ->66628
/* 66590*/      OPC_Scope, 11, /*->66603*/ // 3 children in Scope
/* 66592*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 66594*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (select:{ *:[f32] } i1:{ *:[i1] }:$cond, f32:{ *:[f32] }:$T, f32:{ *:[f32] }:$F) - Complexity = 403
                  // Dst: (SELECT_VSSRC:{ *:[f32] } i1:{ *:[i1] }:$cond, f32:{ *:[f32] }:$T, f32:{ *:[f32] }:$F)
/* 66603*/      /*Scope*/ 11, /*->66615*/
/* 66604*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 66606*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (select:{ *:[f32] } i1:{ *:[i1] }:$cond, f32:{ *:[f32] }:$T, f32:{ *:[f32] }:$F) - Complexity = 3
                  // Dst: (SELECT_F4:{ *:[f32] } i1:{ *:[i1] }:$cond, f32:{ *:[f32] }:$T, f32:{ *:[f32] }:$F)
/* 66615*/      /*Scope*/ 11, /*->66627*/
/* 66616*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 66618*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (select:{ *:[f32] } i1:{ *:[i1] }:$cond, f32:{ *:[f32] }:$T, f32:{ *:[f32] }:$F) - Complexity = 3
                  // Dst: (SELECT_SPE4:{ *:[f32] } i1:{ *:[i1] }:$cond, f32:{ *:[f32] }:$T, f32:{ *:[f32] }:$F)
/* 66627*/      0, /*End of Scope*/
/* 66628*/    /*SwitchType*/ 11, MVT::f128,// ->66641
/* 66630*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 66632*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (select:{ *:[f128] } i1:{ *:[i1] }:$cond, f128:{ *:[f128] }:$T, f128:{ *:[f128] }:$F) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } i1:{ *:[i1] }:$cond, f128:{ *:[f128] }:$T, f128:{ *:[f128] }:$F)
/* 66641*/    /*SwitchType*/ 9, MVT::v4i32,// ->66652
/* 66643*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (select:{ *:[v4i32] } i1:{ *:[i1] }:$cond, v4i32:{ *:[v4i32] }:$T, v4i32:{ *:[v4i32] }:$F) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } i1:{ *:[i1] }:$cond, v4i32:{ *:[v4i32] }:$T, v4i32:{ *:[v4i32] }:$F)
/* 66652*/    /*SwitchType*/ 11, MVT::v4i1,// ->66665
/* 66654*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 66656*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (select:{ *:[v4i1] } i1:{ *:[i1] }:$cond, v4i1:{ *:[v4i1] }:$T, v4i1:{ *:[v4i1] }:$F) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } i1:{ *:[i1] }:$cond, v4i1:{ *:[v4i1] }:$T, v4i1:{ *:[v4i1] }:$F)
/* 66665*/    /*SwitchType*/ 11, MVT::v2f64,// ->66678
/* 66667*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 66669*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (select:{ *:[v2f64] } i1:{ *:[i1] }:$cond, v2f64:{ *:[v2f64] }:$T, v2f64:{ *:[v2f64] }:$F) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } i1:{ *:[i1] }:$cond, v2f64:{ *:[v2f64] }:$T, v2f64:{ *:[v2f64] }:$F)
/* 66678*/    /*SwitchType*/ 11, MVT::v4f64,// ->66691
/* 66680*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 66682*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (select:{ *:[v4f64] } i1:{ *:[i1] }:$cond, v4f64:{ *:[v4f64] }:$T, v4f64:{ *:[v4f64] }:$F) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } i1:{ *:[i1] }:$cond, v4f64:{ *:[v4f64] }:$T, v4f64:{ *:[v4f64] }:$F)
/* 66691*/    /*SwitchType*/ 11, MVT::v4f32,// ->66704
/* 66693*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 66695*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (select:{ *:[v4f32] } i1:{ *:[i1] }:$cond, v4f32:{ *:[v4f32] }:$T, v4f32:{ *:[v4f32] }:$F) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } i1:{ *:[i1] }:$cond, v4f32:{ *:[v4f32] }:$T, v4f32:{ *:[v4f32] }:$F)
/* 66704*/    0, // EndSwitchType
/* 66705*/  /*SwitchOpcode*/ 49|128,30/*3889*/, TARGET_VAL(ISD::SELECT_CC),// ->70598
/* 66709*/    OPC_RecordChild0, // #0 = $lhs
/* 66710*/    OPC_CheckChild0Type, MVT::i1,
/* 66712*/    OPC_RecordChild1, // #1 = $rhs
/* 66713*/    OPC_RecordChild2, // #2 = $tval
/* 66714*/    OPC_RecordChild3, // #3 = $fval
/* 66715*/    OPC_MoveChild4,
/* 66716*/    OPC_Scope, 45, /*->66763*/ // 150 children in Scope
/* 66718*/      OPC_CheckCondCode, ISD::SETLT,
/* 66720*/      OPC_MoveParent,
/* 66721*/      OPC_CheckType, MVT::i1,
/* 66723*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 66731*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 66739*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #6
/* 66747*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 66755*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i1] }:$fval))
/* 66763*/    /*Scope*/ 45, /*->66809*/
/* 66764*/      OPC_CheckCondCode, ISD::SETULT,
/* 66766*/      OPC_MoveParent,
/* 66767*/      OPC_CheckType, MVT::i1,
/* 66769*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 66777*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 66785*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 66793*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 66801*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$fval))
/* 66809*/    /*Scope*/ 45, /*->66855*/
/* 66810*/      OPC_CheckCondCode, ISD::SETLE,
/* 66812*/      OPC_MoveParent,
/* 66813*/      OPC_CheckType, MVT::i1,
/* 66815*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 66823*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 66831*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #6
/* 66839*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 66847*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i1] }:$fval))
/* 66855*/    /*Scope*/ 45, /*->66901*/
/* 66856*/      OPC_CheckCondCode, ISD::SETULE,
/* 66858*/      OPC_MoveParent,
/* 66859*/      OPC_CheckType, MVT::i1,
/* 66861*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 66869*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 66877*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 66885*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 66893*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$fval))
/* 66901*/    /*Scope*/ 45, /*->66947*/
/* 66902*/      OPC_CheckCondCode, ISD::SETEQ,
/* 66904*/      OPC_MoveParent,
/* 66905*/      OPC_CheckType, MVT::i1,
/* 66907*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 66915*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 66923*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 66931*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 66939*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$fval))
/* 66947*/    /*Scope*/ 45, /*->66993*/
/* 66948*/      OPC_CheckCondCode, ISD::SETGE,
/* 66950*/      OPC_MoveParent,
/* 66951*/      OPC_CheckType, MVT::i1,
/* 66953*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 66961*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 66969*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 66977*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 66985*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$fval))
/* 66993*/    /*Scope*/ 45, /*->67039*/
/* 66994*/      OPC_CheckCondCode, ISD::SETUGE,
/* 66996*/      OPC_MoveParent,
/* 66997*/      OPC_CheckType, MVT::i1,
/* 66999*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67007*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 67015*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #6
/* 67023*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 67031*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i1] }:$fval))
/* 67039*/    /*Scope*/ 45, /*->67085*/
/* 67040*/      OPC_CheckCondCode, ISD::SETGT,
/* 67042*/      OPC_MoveParent,
/* 67043*/      OPC_CheckType, MVT::i1,
/* 67045*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67053*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 67061*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 67069*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 67077*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$fval))
/* 67085*/    /*Scope*/ 45, /*->67131*/
/* 67086*/      OPC_CheckCondCode, ISD::SETUGT,
/* 67088*/      OPC_MoveParent,
/* 67089*/      OPC_CheckType, MVT::i1,
/* 67091*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67099*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 67107*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #6
/* 67115*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 67123*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$tval), (CRAND:{ *:[i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i1] }:$fval))
/* 67131*/    /*Scope*/ 45, /*->67177*/
/* 67132*/      OPC_CheckCondCode, ISD::SETNE,
/* 67134*/      OPC_MoveParent,
/* 67135*/      OPC_CheckType, MVT::i1,
/* 67137*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67145*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 3,  // Results = #5
/* 67153*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 67161*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 2,  // Results = #7
/* 67169*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CROR), 0,
                    MVT::i1, 2/*#Ops*/, 5, 7, 
                // Src: (selectcc:{ *:[i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i1:{ *:[i1] }:$tval, i1:{ *:[i1] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (CROR:{ *:[i1] } (CRAND:{ *:[i1] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$fval), (CRAND:{ *:[i1] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i1] }:$tval))
/* 67177*/    /*Scope*/ 22, /*->67200*/
/* 67178*/      OPC_CheckCondCode, ISD::SETLT,
/* 67180*/      OPC_MoveParent,
/* 67181*/      OPC_CheckType, MVT::i32,
/* 67183*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67191*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67200*/    /*Scope*/ 22, /*->67223*/
/* 67201*/      OPC_CheckCondCode, ISD::SETULT,
/* 67203*/      OPC_MoveParent,
/* 67204*/      OPC_CheckType, MVT::i32,
/* 67206*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67214*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67223*/    /*Scope*/ 22, /*->67246*/
/* 67224*/      OPC_CheckCondCode, ISD::SETLE,
/* 67226*/      OPC_MoveParent,
/* 67227*/      OPC_CheckType, MVT::i32,
/* 67229*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67237*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67246*/    /*Scope*/ 22, /*->67269*/
/* 67247*/      OPC_CheckCondCode, ISD::SETULE,
/* 67249*/      OPC_MoveParent,
/* 67250*/      OPC_CheckType, MVT::i32,
/* 67252*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67260*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67269*/    /*Scope*/ 22, /*->67292*/
/* 67270*/      OPC_CheckCondCode, ISD::SETEQ,
/* 67272*/      OPC_MoveParent,
/* 67273*/      OPC_CheckType, MVT::i32,
/* 67275*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67283*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67292*/    /*Scope*/ 22, /*->67315*/
/* 67293*/      OPC_CheckCondCode, ISD::SETGE,
/* 67295*/      OPC_MoveParent,
/* 67296*/      OPC_CheckType, MVT::i32,
/* 67298*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67306*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67315*/    /*Scope*/ 22, /*->67338*/
/* 67316*/      OPC_CheckCondCode, ISD::SETUGE,
/* 67318*/      OPC_MoveParent,
/* 67319*/      OPC_CheckType, MVT::i32,
/* 67321*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67329*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67338*/    /*Scope*/ 22, /*->67361*/
/* 67339*/      OPC_CheckCondCode, ISD::SETGT,
/* 67341*/      OPC_MoveParent,
/* 67342*/      OPC_CheckType, MVT::i32,
/* 67344*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67352*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67361*/    /*Scope*/ 22, /*->67384*/
/* 67362*/      OPC_CheckCondCode, ISD::SETUGT,
/* 67364*/      OPC_MoveParent,
/* 67365*/      OPC_CheckType, MVT::i32,
/* 67367*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67375*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67384*/    /*Scope*/ 22, /*->67407*/
/* 67385*/      OPC_CheckCondCode, ISD::SETNE,
/* 67387*/      OPC_MoveParent,
/* 67388*/      OPC_CheckType, MVT::i32,
/* 67390*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67398*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I4), 0,
                    MVT::i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i32:{ *:[i32] }:$tval, i32:{ *:[i32] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I4:{ *:[i32] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i32] }:$tval, ?:{ *:[i32] }:$fval)
/* 67407*/    /*Scope*/ 22, /*->67430*/
/* 67408*/      OPC_CheckCondCode, ISD::SETLT,
/* 67410*/      OPC_MoveParent,
/* 67411*/      OPC_CheckType, MVT::i64,
/* 67413*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67421*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67430*/    /*Scope*/ 22, /*->67453*/
/* 67431*/      OPC_CheckCondCode, ISD::SETULT,
/* 67433*/      OPC_MoveParent,
/* 67434*/      OPC_CheckType, MVT::i64,
/* 67436*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67444*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67453*/    /*Scope*/ 22, /*->67476*/
/* 67454*/      OPC_CheckCondCode, ISD::SETLE,
/* 67456*/      OPC_MoveParent,
/* 67457*/      OPC_CheckType, MVT::i64,
/* 67459*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67467*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67476*/    /*Scope*/ 22, /*->67499*/
/* 67477*/      OPC_CheckCondCode, ISD::SETULE,
/* 67479*/      OPC_MoveParent,
/* 67480*/      OPC_CheckType, MVT::i64,
/* 67482*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67490*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67499*/    /*Scope*/ 22, /*->67522*/
/* 67500*/      OPC_CheckCondCode, ISD::SETEQ,
/* 67502*/      OPC_MoveParent,
/* 67503*/      OPC_CheckType, MVT::i64,
/* 67505*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67513*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67522*/    /*Scope*/ 22, /*->67545*/
/* 67523*/      OPC_CheckCondCode, ISD::SETGE,
/* 67525*/      OPC_MoveParent,
/* 67526*/      OPC_CheckType, MVT::i64,
/* 67528*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67536*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67545*/    /*Scope*/ 22, /*->67568*/
/* 67546*/      OPC_CheckCondCode, ISD::SETUGE,
/* 67548*/      OPC_MoveParent,
/* 67549*/      OPC_CheckType, MVT::i64,
/* 67551*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67559*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67568*/    /*Scope*/ 22, /*->67591*/
/* 67569*/      OPC_CheckCondCode, ISD::SETGT,
/* 67571*/      OPC_MoveParent,
/* 67572*/      OPC_CheckType, MVT::i64,
/* 67574*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67582*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67591*/    /*Scope*/ 22, /*->67614*/
/* 67592*/      OPC_CheckCondCode, ISD::SETUGT,
/* 67594*/      OPC_MoveParent,
/* 67595*/      OPC_CheckType, MVT::i64,
/* 67597*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67605*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67614*/    /*Scope*/ 22, /*->67637*/
/* 67615*/      OPC_CheckCondCode, ISD::SETNE,
/* 67617*/      OPC_MoveParent,
/* 67618*/      OPC_CheckType, MVT::i64,
/* 67620*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67628*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_I8), 0,
                    MVT::i64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[i64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, i64:{ *:[i64] }:$tval, i64:{ *:[i64] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_I8:{ *:[i64] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[i64] }:$tval, ?:{ *:[i64] }:$fval)
/* 67637*/    /*Scope*/ 24, /*->67662*/
/* 67638*/      OPC_CheckCondCode, ISD::SETLT,
/* 67640*/      OPC_MoveParent,
/* 67641*/      OPC_CheckType, MVT::f64,
/* 67643*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67645*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67653*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETLT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67662*/    /*Scope*/ 24, /*->67687*/
/* 67663*/      OPC_CheckCondCode, ISD::SETULT,
/* 67665*/      OPC_MoveParent,
/* 67666*/      OPC_CheckType, MVT::f64,
/* 67668*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67670*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67678*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETULT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67687*/    /*Scope*/ 24, /*->67712*/
/* 67688*/      OPC_CheckCondCode, ISD::SETLE,
/* 67690*/      OPC_MoveParent,
/* 67691*/      OPC_CheckType, MVT::f64,
/* 67693*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67695*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67703*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETLE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67712*/    /*Scope*/ 24, /*->67737*/
/* 67713*/      OPC_CheckCondCode, ISD::SETULE,
/* 67715*/      OPC_MoveParent,
/* 67716*/      OPC_CheckType, MVT::f64,
/* 67718*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67720*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67728*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETULE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67737*/    /*Scope*/ 24, /*->67762*/
/* 67738*/      OPC_CheckCondCode, ISD::SETEQ,
/* 67740*/      OPC_MoveParent,
/* 67741*/      OPC_CheckType, MVT::f64,
/* 67743*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67745*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67753*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67762*/    /*Scope*/ 24, /*->67787*/
/* 67763*/      OPC_CheckCondCode, ISD::SETGE,
/* 67765*/      OPC_MoveParent,
/* 67766*/      OPC_CheckType, MVT::f64,
/* 67768*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67770*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67778*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETGE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67787*/    /*Scope*/ 24, /*->67812*/
/* 67788*/      OPC_CheckCondCode, ISD::SETUGE,
/* 67790*/      OPC_MoveParent,
/* 67791*/      OPC_CheckType, MVT::f64,
/* 67793*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67795*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67803*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67812*/    /*Scope*/ 24, /*->67837*/
/* 67813*/      OPC_CheckCondCode, ISD::SETGT,
/* 67815*/      OPC_MoveParent,
/* 67816*/      OPC_CheckType, MVT::f64,
/* 67818*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67820*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67828*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETGT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67837*/    /*Scope*/ 24, /*->67862*/
/* 67838*/      OPC_CheckCondCode, ISD::SETUGT,
/* 67840*/      OPC_MoveParent,
/* 67841*/      OPC_CheckType, MVT::f64,
/* 67843*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67845*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67853*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67862*/    /*Scope*/ 24, /*->67887*/
/* 67863*/      OPC_CheckCondCode, ISD::SETNE,
/* 67865*/      OPC_MoveParent,
/* 67866*/      OPC_CheckType, MVT::f64,
/* 67868*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 67870*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67878*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSFRC), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETNE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSFRC:{ *:[f64] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 67887*/    /*Scope*/ 24, /*->67912*/
/* 67888*/      OPC_CheckCondCode, ISD::SETLT,
/* 67890*/      OPC_MoveParent,
/* 67891*/      OPC_CheckType, MVT::f32,
/* 67893*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 67895*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67903*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETLT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 67912*/    /*Scope*/ 24, /*->67937*/
/* 67913*/      OPC_CheckCondCode, ISD::SETULT,
/* 67915*/      OPC_MoveParent,
/* 67916*/      OPC_CheckType, MVT::f32,
/* 67918*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 67920*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67928*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETULT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 67937*/    /*Scope*/ 24, /*->67962*/
/* 67938*/      OPC_CheckCondCode, ISD::SETLE,
/* 67940*/      OPC_MoveParent,
/* 67941*/      OPC_CheckType, MVT::f32,
/* 67943*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 67945*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 67953*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETLE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 67962*/    /*Scope*/ 24, /*->67987*/
/* 67963*/      OPC_CheckCondCode, ISD::SETULE,
/* 67965*/      OPC_MoveParent,
/* 67966*/      OPC_CheckType, MVT::f32,
/* 67968*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 67970*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 67978*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETULE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 67987*/    /*Scope*/ 24, /*->68012*/
/* 67988*/      OPC_CheckCondCode, ISD::SETEQ,
/* 67990*/      OPC_MoveParent,
/* 67991*/      OPC_CheckType, MVT::f32,
/* 67993*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 67995*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68003*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68012*/    /*Scope*/ 24, /*->68037*/
/* 68013*/      OPC_CheckCondCode, ISD::SETGE,
/* 68015*/      OPC_MoveParent,
/* 68016*/      OPC_CheckType, MVT::f32,
/* 68018*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 68020*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68028*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETGE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68037*/    /*Scope*/ 24, /*->68062*/
/* 68038*/      OPC_CheckCondCode, ISD::SETUGE,
/* 68040*/      OPC_MoveParent,
/* 68041*/      OPC_CheckType, MVT::f32,
/* 68043*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 68045*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68053*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68062*/    /*Scope*/ 24, /*->68087*/
/* 68063*/      OPC_CheckCondCode, ISD::SETGT,
/* 68065*/      OPC_MoveParent,
/* 68066*/      OPC_CheckType, MVT::f32,
/* 68068*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 68070*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68078*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETGT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68087*/    /*Scope*/ 24, /*->68112*/
/* 68088*/      OPC_CheckCondCode, ISD::SETUGT,
/* 68090*/      OPC_MoveParent,
/* 68091*/      OPC_CheckType, MVT::f32,
/* 68093*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 68095*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68103*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68112*/    /*Scope*/ 24, /*->68137*/
/* 68113*/      OPC_CheckCondCode, ISD::SETNE,
/* 68115*/      OPC_MoveParent,
/* 68116*/      OPC_CheckType, MVT::f32,
/* 68118*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 68120*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68128*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSSRC), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETNE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSSRC:{ *:[f32] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68137*/    /*Scope*/ 24, /*->68162*/
/* 68138*/      OPC_CheckCondCode, ISD::SETLT,
/* 68140*/      OPC_MoveParent,
/* 68141*/      OPC_CheckType, MVT::f32,
/* 68143*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68145*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68153*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68162*/    /*Scope*/ 24, /*->68187*/
/* 68163*/      OPC_CheckCondCode, ISD::SETULT,
/* 68165*/      OPC_MoveParent,
/* 68166*/      OPC_CheckType, MVT::f32,
/* 68168*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68170*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68178*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68187*/    /*Scope*/ 24, /*->68212*/
/* 68188*/      OPC_CheckCondCode, ISD::SETLE,
/* 68190*/      OPC_MoveParent,
/* 68191*/      OPC_CheckType, MVT::f32,
/* 68193*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68195*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68203*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68212*/    /*Scope*/ 24, /*->68237*/
/* 68213*/      OPC_CheckCondCode, ISD::SETULE,
/* 68215*/      OPC_MoveParent,
/* 68216*/      OPC_CheckType, MVT::f32,
/* 68218*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68220*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68228*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68237*/    /*Scope*/ 24, /*->68262*/
/* 68238*/      OPC_CheckCondCode, ISD::SETEQ,
/* 68240*/      OPC_MoveParent,
/* 68241*/      OPC_CheckType, MVT::f32,
/* 68243*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68245*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68253*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68262*/    /*Scope*/ 24, /*->68287*/
/* 68263*/      OPC_CheckCondCode, ISD::SETGE,
/* 68265*/      OPC_MoveParent,
/* 68266*/      OPC_CheckType, MVT::f32,
/* 68268*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68270*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68278*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68287*/    /*Scope*/ 24, /*->68312*/
/* 68288*/      OPC_CheckCondCode, ISD::SETUGE,
/* 68290*/      OPC_MoveParent,
/* 68291*/      OPC_CheckType, MVT::f32,
/* 68293*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68295*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68303*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68312*/    /*Scope*/ 24, /*->68337*/
/* 68313*/      OPC_CheckCondCode, ISD::SETGT,
/* 68315*/      OPC_MoveParent,
/* 68316*/      OPC_CheckType, MVT::f32,
/* 68318*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68320*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68328*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68337*/    /*Scope*/ 24, /*->68362*/
/* 68338*/      OPC_CheckCondCode, ISD::SETUGT,
/* 68340*/      OPC_MoveParent,
/* 68341*/      OPC_CheckType, MVT::f32,
/* 68343*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68345*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68353*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68362*/    /*Scope*/ 24, /*->68387*/
/* 68363*/      OPC_CheckCondCode, ISD::SETNE,
/* 68365*/      OPC_MoveParent,
/* 68366*/      OPC_CheckType, MVT::f32,
/* 68368*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68370*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68378*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE4:{ *:[f32] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68387*/    /*Scope*/ 24, /*->68412*/
/* 68388*/      OPC_CheckCondCode, ISD::SETLT,
/* 68390*/      OPC_MoveParent,
/* 68391*/      OPC_CheckType, MVT::f64,
/* 68393*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68395*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68403*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68412*/    /*Scope*/ 24, /*->68437*/
/* 68413*/      OPC_CheckCondCode, ISD::SETULT,
/* 68415*/      OPC_MoveParent,
/* 68416*/      OPC_CheckType, MVT::f64,
/* 68418*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68420*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68428*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68437*/    /*Scope*/ 24, /*->68462*/
/* 68438*/      OPC_CheckCondCode, ISD::SETLE,
/* 68440*/      OPC_MoveParent,
/* 68441*/      OPC_CheckType, MVT::f64,
/* 68443*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68445*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68453*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68462*/    /*Scope*/ 24, /*->68487*/
/* 68463*/      OPC_CheckCondCode, ISD::SETULE,
/* 68465*/      OPC_MoveParent,
/* 68466*/      OPC_CheckType, MVT::f64,
/* 68468*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68470*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68478*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68487*/    /*Scope*/ 24, /*->68512*/
/* 68488*/      OPC_CheckCondCode, ISD::SETEQ,
/* 68490*/      OPC_MoveParent,
/* 68491*/      OPC_CheckType, MVT::f64,
/* 68493*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68495*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68503*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68512*/    /*Scope*/ 24, /*->68537*/
/* 68513*/      OPC_CheckCondCode, ISD::SETGE,
/* 68515*/      OPC_MoveParent,
/* 68516*/      OPC_CheckType, MVT::f64,
/* 68518*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68520*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68528*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68537*/    /*Scope*/ 24, /*->68562*/
/* 68538*/      OPC_CheckCondCode, ISD::SETUGE,
/* 68540*/      OPC_MoveParent,
/* 68541*/      OPC_CheckType, MVT::f64,
/* 68543*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68545*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68553*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68562*/    /*Scope*/ 24, /*->68587*/
/* 68563*/      OPC_CheckCondCode, ISD::SETGT,
/* 68565*/      OPC_MoveParent,
/* 68566*/      OPC_CheckType, MVT::f64,
/* 68568*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68570*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68578*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68587*/    /*Scope*/ 24, /*->68612*/
/* 68588*/      OPC_CheckCondCode, ISD::SETUGT,
/* 68590*/      OPC_MoveParent,
/* 68591*/      OPC_CheckType, MVT::f64,
/* 68593*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68595*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68603*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68612*/    /*Scope*/ 24, /*->68637*/
/* 68613*/      OPC_CheckCondCode, ISD::SETNE,
/* 68615*/      OPC_MoveParent,
/* 68616*/      OPC_CheckType, MVT::f64,
/* 68618*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 68620*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68628*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_SPE), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_SPE:{ *:[f64] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68637*/    /*Scope*/ 24, /*->68662*/
/* 68638*/      OPC_CheckCondCode, ISD::SETLT,
/* 68640*/      OPC_MoveParent,
/* 68641*/      OPC_CheckType, MVT::f32,
/* 68643*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68645*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68653*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68662*/    /*Scope*/ 24, /*->68687*/
/* 68663*/      OPC_CheckCondCode, ISD::SETULT,
/* 68665*/      OPC_MoveParent,
/* 68666*/      OPC_CheckType, MVT::f32,
/* 68668*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68670*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68678*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68687*/    /*Scope*/ 24, /*->68712*/
/* 68688*/      OPC_CheckCondCode, ISD::SETLE,
/* 68690*/      OPC_MoveParent,
/* 68691*/      OPC_CheckType, MVT::f32,
/* 68693*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68695*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68703*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68712*/    /*Scope*/ 24, /*->68737*/
/* 68713*/      OPC_CheckCondCode, ISD::SETULE,
/* 68715*/      OPC_MoveParent,
/* 68716*/      OPC_CheckType, MVT::f32,
/* 68718*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68720*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68728*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68737*/    /*Scope*/ 24, /*->68762*/
/* 68738*/      OPC_CheckCondCode, ISD::SETEQ,
/* 68740*/      OPC_MoveParent,
/* 68741*/      OPC_CheckType, MVT::f32,
/* 68743*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68745*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68753*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68762*/    /*Scope*/ 24, /*->68787*/
/* 68763*/      OPC_CheckCondCode, ISD::SETGE,
/* 68765*/      OPC_MoveParent,
/* 68766*/      OPC_CheckType, MVT::f32,
/* 68768*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68770*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68778*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68787*/    /*Scope*/ 24, /*->68812*/
/* 68788*/      OPC_CheckCondCode, ISD::SETUGE,
/* 68790*/      OPC_MoveParent,
/* 68791*/      OPC_CheckType, MVT::f32,
/* 68793*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68795*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68803*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68812*/    /*Scope*/ 24, /*->68837*/
/* 68813*/      OPC_CheckCondCode, ISD::SETGT,
/* 68815*/      OPC_MoveParent,
/* 68816*/      OPC_CheckType, MVT::f32,
/* 68818*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68820*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68828*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68837*/    /*Scope*/ 24, /*->68862*/
/* 68838*/      OPC_CheckCondCode, ISD::SETUGT,
/* 68840*/      OPC_MoveParent,
/* 68841*/      OPC_CheckType, MVT::f32,
/* 68843*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68845*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68853*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68862*/    /*Scope*/ 24, /*->68887*/
/* 68863*/      OPC_CheckCondCode, ISD::SETNE,
/* 68865*/      OPC_MoveParent,
/* 68866*/      OPC_CheckType, MVT::f32,
/* 68868*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68870*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68878*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F4), 0,
                    MVT::f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f32:{ *:[f32] }:$tval, f32:{ *:[f32] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F4:{ *:[f32] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f32] }:$tval, ?:{ *:[f32] }:$fval)
/* 68887*/    /*Scope*/ 24, /*->68912*/
/* 68888*/      OPC_CheckCondCode, ISD::SETLT,
/* 68890*/      OPC_MoveParent,
/* 68891*/      OPC_CheckType, MVT::f64,
/* 68893*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68895*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68903*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68912*/    /*Scope*/ 24, /*->68937*/
/* 68913*/      OPC_CheckCondCode, ISD::SETULT,
/* 68915*/      OPC_MoveParent,
/* 68916*/      OPC_CheckType, MVT::f64,
/* 68918*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68920*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68928*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68937*/    /*Scope*/ 24, /*->68962*/
/* 68938*/      OPC_CheckCondCode, ISD::SETLE,
/* 68940*/      OPC_MoveParent,
/* 68941*/      OPC_CheckType, MVT::f64,
/* 68943*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68945*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 68953*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68962*/    /*Scope*/ 24, /*->68987*/
/* 68963*/      OPC_CheckCondCode, ISD::SETULE,
/* 68965*/      OPC_MoveParent,
/* 68966*/      OPC_CheckType, MVT::f64,
/* 68968*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68970*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 68978*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 68987*/    /*Scope*/ 24, /*->69012*/
/* 68988*/      OPC_CheckCondCode, ISD::SETEQ,
/* 68990*/      OPC_MoveParent,
/* 68991*/      OPC_CheckType, MVT::f64,
/* 68993*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 68995*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69003*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 69012*/    /*Scope*/ 24, /*->69037*/
/* 69013*/      OPC_CheckCondCode, ISD::SETGE,
/* 69015*/      OPC_MoveParent,
/* 69016*/      OPC_CheckType, MVT::f64,
/* 69018*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 69020*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69028*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 69037*/    /*Scope*/ 24, /*->69062*/
/* 69038*/      OPC_CheckCondCode, ISD::SETUGE,
/* 69040*/      OPC_MoveParent,
/* 69041*/      OPC_CheckType, MVT::f64,
/* 69043*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 69045*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69053*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 69062*/    /*Scope*/ 24, /*->69087*/
/* 69063*/      OPC_CheckCondCode, ISD::SETGT,
/* 69065*/      OPC_MoveParent,
/* 69066*/      OPC_CheckType, MVT::f64,
/* 69068*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 69070*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69078*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 69087*/    /*Scope*/ 24, /*->69112*/
/* 69088*/      OPC_CheckCondCode, ISD::SETUGT,
/* 69090*/      OPC_MoveParent,
/* 69091*/      OPC_CheckType, MVT::f64,
/* 69093*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 69095*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69103*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 69112*/    /*Scope*/ 24, /*->69137*/
/* 69113*/      OPC_CheckCondCode, ISD::SETNE,
/* 69115*/      OPC_MoveParent,
/* 69116*/      OPC_CheckType, MVT::f64,
/* 69118*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 69120*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69128*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F8), 0,
                    MVT::f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f64:{ *:[f64] }:$tval, f64:{ *:[f64] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F8:{ *:[f64] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f64] }:$tval, ?:{ *:[f64] }:$fval)
/* 69137*/    /*Scope*/ 22, /*->69160*/
/* 69138*/      OPC_CheckCondCode, ISD::SETLT,
/* 69140*/      OPC_MoveParent,
/* 69141*/      OPC_CheckType, MVT::f128,
/* 69143*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69151*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69160*/    /*Scope*/ 22, /*->69183*/
/* 69161*/      OPC_CheckCondCode, ISD::SETULT,
/* 69163*/      OPC_MoveParent,
/* 69164*/      OPC_CheckType, MVT::f128,
/* 69166*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69174*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69183*/    /*Scope*/ 22, /*->69206*/
/* 69184*/      OPC_CheckCondCode, ISD::SETLE,
/* 69186*/      OPC_MoveParent,
/* 69187*/      OPC_CheckType, MVT::f128,
/* 69189*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69197*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69206*/    /*Scope*/ 22, /*->69229*/
/* 69207*/      OPC_CheckCondCode, ISD::SETULE,
/* 69209*/      OPC_MoveParent,
/* 69210*/      OPC_CheckType, MVT::f128,
/* 69212*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69220*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69229*/    /*Scope*/ 22, /*->69252*/
/* 69230*/      OPC_CheckCondCode, ISD::SETEQ,
/* 69232*/      OPC_MoveParent,
/* 69233*/      OPC_CheckType, MVT::f128,
/* 69235*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69243*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69252*/    /*Scope*/ 22, /*->69275*/
/* 69253*/      OPC_CheckCondCode, ISD::SETGE,
/* 69255*/      OPC_MoveParent,
/* 69256*/      OPC_CheckType, MVT::f128,
/* 69258*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69266*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69275*/    /*Scope*/ 22, /*->69298*/
/* 69276*/      OPC_CheckCondCode, ISD::SETUGE,
/* 69278*/      OPC_MoveParent,
/* 69279*/      OPC_CheckType, MVT::f128,
/* 69281*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69289*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69298*/    /*Scope*/ 22, /*->69321*/
/* 69299*/      OPC_CheckCondCode, ISD::SETGT,
/* 69301*/      OPC_MoveParent,
/* 69302*/      OPC_CheckType, MVT::f128,
/* 69304*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69312*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69321*/    /*Scope*/ 22, /*->69344*/
/* 69322*/      OPC_CheckCondCode, ISD::SETUGT,
/* 69324*/      OPC_MoveParent,
/* 69325*/      OPC_CheckType, MVT::f128,
/* 69327*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69335*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69344*/    /*Scope*/ 22, /*->69367*/
/* 69345*/      OPC_CheckCondCode, ISD::SETNE,
/* 69347*/      OPC_MoveParent,
/* 69348*/      OPC_CheckType, MVT::f128,
/* 69350*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69358*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_F16), 0,
                    MVT::f128, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[f128] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, f128:{ *:[f128] }:$tval, f128:{ *:[f128] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_F16:{ *:[f128] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[f128] }:$tval, ?:{ *:[f128] }:$fval)
/* 69367*/    /*Scope*/ 24, /*->69392*/
/* 69368*/      OPC_CheckCondCode, ISD::SETLT,
/* 69370*/      OPC_MoveParent,
/* 69371*/      OPC_CheckType, MVT::v4i1,
/* 69373*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69375*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69383*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69392*/    /*Scope*/ 24, /*->69417*/
/* 69393*/      OPC_CheckCondCode, ISD::SETULT,
/* 69395*/      OPC_MoveParent,
/* 69396*/      OPC_CheckType, MVT::v4i1,
/* 69398*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69400*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69408*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69417*/    /*Scope*/ 24, /*->69442*/
/* 69418*/      OPC_CheckCondCode, ISD::SETLE,
/* 69420*/      OPC_MoveParent,
/* 69421*/      OPC_CheckType, MVT::v4i1,
/* 69423*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69425*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69433*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69442*/    /*Scope*/ 24, /*->69467*/
/* 69443*/      OPC_CheckCondCode, ISD::SETULE,
/* 69445*/      OPC_MoveParent,
/* 69446*/      OPC_CheckType, MVT::v4i1,
/* 69448*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69450*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69458*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69467*/    /*Scope*/ 24, /*->69492*/
/* 69468*/      OPC_CheckCondCode, ISD::SETEQ,
/* 69470*/      OPC_MoveParent,
/* 69471*/      OPC_CheckType, MVT::v4i1,
/* 69473*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69475*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69483*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69492*/    /*Scope*/ 24, /*->69517*/
/* 69493*/      OPC_CheckCondCode, ISD::SETGE,
/* 69495*/      OPC_MoveParent,
/* 69496*/      OPC_CheckType, MVT::v4i1,
/* 69498*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69500*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69508*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69517*/    /*Scope*/ 24, /*->69542*/
/* 69518*/      OPC_CheckCondCode, ISD::SETUGE,
/* 69520*/      OPC_MoveParent,
/* 69521*/      OPC_CheckType, MVT::v4i1,
/* 69523*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69525*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69533*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69542*/    /*Scope*/ 24, /*->69567*/
/* 69543*/      OPC_CheckCondCode, ISD::SETGT,
/* 69545*/      OPC_MoveParent,
/* 69546*/      OPC_CheckType, MVT::v4i1,
/* 69548*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69550*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69558*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69567*/    /*Scope*/ 24, /*->69592*/
/* 69568*/      OPC_CheckCondCode, ISD::SETUGT,
/* 69570*/      OPC_MoveParent,
/* 69571*/      OPC_CheckType, MVT::v4i1,
/* 69573*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69575*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69583*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69592*/    /*Scope*/ 24, /*->69617*/
/* 69593*/      OPC_CheckCondCode, ISD::SETNE,
/* 69595*/      OPC_MoveParent,
/* 69596*/      OPC_CheckType, MVT::v4i1,
/* 69598*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 69600*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69608*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QBRC), 0,
                    MVT::v4i1, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i1] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i1:{ *:[v4i1] }:$tval, v4i1:{ *:[v4i1] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QBRC:{ *:[v4i1] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i1] }:$tval, ?:{ *:[v4i1] }:$fval)
/* 69617*/    /*Scope*/ 22, /*->69640*/
/* 69618*/      OPC_CheckCondCode, ISD::SETLT,
/* 69620*/      OPC_MoveParent,
/* 69621*/      OPC_CheckType, MVT::v4i32,
/* 69623*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69631*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69640*/    /*Scope*/ 22, /*->69663*/
/* 69641*/      OPC_CheckCondCode, ISD::SETULT,
/* 69643*/      OPC_MoveParent,
/* 69644*/      OPC_CheckType, MVT::v4i32,
/* 69646*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69654*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69663*/    /*Scope*/ 22, /*->69686*/
/* 69664*/      OPC_CheckCondCode, ISD::SETLE,
/* 69666*/      OPC_MoveParent,
/* 69667*/      OPC_CheckType, MVT::v4i32,
/* 69669*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69677*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69686*/    /*Scope*/ 22, /*->69709*/
/* 69687*/      OPC_CheckCondCode, ISD::SETULE,
/* 69689*/      OPC_MoveParent,
/* 69690*/      OPC_CheckType, MVT::v4i32,
/* 69692*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69700*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69709*/    /*Scope*/ 22, /*->69732*/
/* 69710*/      OPC_CheckCondCode, ISD::SETEQ,
/* 69712*/      OPC_MoveParent,
/* 69713*/      OPC_CheckType, MVT::v4i32,
/* 69715*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69723*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69732*/    /*Scope*/ 22, /*->69755*/
/* 69733*/      OPC_CheckCondCode, ISD::SETGE,
/* 69735*/      OPC_MoveParent,
/* 69736*/      OPC_CheckType, MVT::v4i32,
/* 69738*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69746*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69755*/    /*Scope*/ 22, /*->69778*/
/* 69756*/      OPC_CheckCondCode, ISD::SETUGE,
/* 69758*/      OPC_MoveParent,
/* 69759*/      OPC_CheckType, MVT::v4i32,
/* 69761*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69769*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69778*/    /*Scope*/ 22, /*->69801*/
/* 69779*/      OPC_CheckCondCode, ISD::SETGT,
/* 69781*/      OPC_MoveParent,
/* 69782*/      OPC_CheckType, MVT::v4i32,
/* 69784*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69792*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69801*/    /*Scope*/ 22, /*->69824*/
/* 69802*/      OPC_CheckCondCode, ISD::SETUGT,
/* 69804*/      OPC_MoveParent,
/* 69805*/      OPC_CheckType, MVT::v4i32,
/* 69807*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69815*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69824*/    /*Scope*/ 22, /*->69847*/
/* 69825*/      OPC_CheckCondCode, ISD::SETNE,
/* 69827*/      OPC_MoveParent,
/* 69828*/      OPC_CheckType, MVT::v4i32,
/* 69830*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69838*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VRRC), 0,
                    MVT::v4i32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4i32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4i32:{ *:[v4i32] }:$tval, v4i32:{ *:[v4i32] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_VRRC:{ *:[v4i32] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4i32] }:$tval, ?:{ *:[v4i32] }:$fval)
/* 69847*/    /*Scope*/ 24, /*->69872*/
/* 69848*/      OPC_CheckCondCode, ISD::SETLT,
/* 69850*/      OPC_MoveParent,
/* 69851*/      OPC_CheckType, MVT::v2f64,
/* 69853*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 69855*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69863*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETLT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 69872*/    /*Scope*/ 24, /*->69897*/
/* 69873*/      OPC_CheckCondCode, ISD::SETULT,
/* 69875*/      OPC_MoveParent,
/* 69876*/      OPC_CheckType, MVT::v2f64,
/* 69878*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 69880*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69888*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETULT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 69897*/    /*Scope*/ 24, /*->69922*/
/* 69898*/      OPC_CheckCondCode, ISD::SETLE,
/* 69900*/      OPC_MoveParent,
/* 69901*/      OPC_CheckType, MVT::v2f64,
/* 69903*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 69905*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69913*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETLE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 69922*/    /*Scope*/ 24, /*->69947*/
/* 69923*/      OPC_CheckCondCode, ISD::SETULE,
/* 69925*/      OPC_MoveParent,
/* 69926*/      OPC_CheckType, MVT::v2f64,
/* 69928*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 69930*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69938*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETULE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 69947*/    /*Scope*/ 24, /*->69972*/
/* 69948*/      OPC_CheckCondCode, ISD::SETEQ,
/* 69950*/      OPC_MoveParent,
/* 69951*/      OPC_CheckType, MVT::v2f64,
/* 69953*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 69955*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69963*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 69972*/    /*Scope*/ 24, /*->69997*/
/* 69973*/      OPC_CheckCondCode, ISD::SETGE,
/* 69975*/      OPC_MoveParent,
/* 69976*/      OPC_CheckType, MVT::v2f64,
/* 69978*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 69980*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69988*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETGE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 69997*/    /*Scope*/ 24, /*->70022*/
/* 69998*/      OPC_CheckCondCode, ISD::SETUGE,
/* 70000*/      OPC_MoveParent,
/* 70001*/      OPC_CheckType, MVT::v2f64,
/* 70003*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 70005*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70013*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 70022*/    /*Scope*/ 24, /*->70047*/
/* 70023*/      OPC_CheckCondCode, ISD::SETGT,
/* 70025*/      OPC_MoveParent,
/* 70026*/      OPC_CheckType, MVT::v2f64,
/* 70028*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 70030*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70038*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETGT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 70047*/    /*Scope*/ 24, /*->70072*/
/* 70048*/      OPC_CheckCondCode, ISD::SETUGT,
/* 70050*/      OPC_MoveParent,
/* 70051*/      OPC_CheckType, MVT::v2f64,
/* 70053*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 70055*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70063*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 70072*/    /*Scope*/ 24, /*->70097*/
/* 70073*/      OPC_CheckCondCode, ISD::SETNE,
/* 70075*/      OPC_MoveParent,
/* 70076*/      OPC_CheckType, MVT::v2f64,
/* 70078*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 70080*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70088*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_VSRC), 0,
                    MVT::v2f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v2f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v2f64:{ *:[v2f64] }:$tval, v2f64:{ *:[v2f64] }:$fval, SETNE:{ *:[Other] }) - Complexity = 403
                // Dst: (SELECT_VSRC:{ *:[v2f64] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v2f64] }:$tval, ?:{ *:[v2f64] }:$fval)
/* 70097*/    /*Scope*/ 24, /*->70122*/
/* 70098*/      OPC_CheckCondCode, ISD::SETLT,
/* 70100*/      OPC_MoveParent,
/* 70101*/      OPC_CheckType, MVT::v4f64,
/* 70103*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70105*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70113*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70122*/    /*Scope*/ 24, /*->70147*/
/* 70123*/      OPC_CheckCondCode, ISD::SETULT,
/* 70125*/      OPC_MoveParent,
/* 70126*/      OPC_CheckType, MVT::v4f64,
/* 70128*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70130*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70138*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70147*/    /*Scope*/ 24, /*->70172*/
/* 70148*/      OPC_CheckCondCode, ISD::SETLE,
/* 70150*/      OPC_MoveParent,
/* 70151*/      OPC_CheckType, MVT::v4f64,
/* 70153*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70155*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70163*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70172*/    /*Scope*/ 24, /*->70197*/
/* 70173*/      OPC_CheckCondCode, ISD::SETULE,
/* 70175*/      OPC_MoveParent,
/* 70176*/      OPC_CheckType, MVT::v4f64,
/* 70178*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70180*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70188*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70197*/    /*Scope*/ 24, /*->70222*/
/* 70198*/      OPC_CheckCondCode, ISD::SETEQ,
/* 70200*/      OPC_MoveParent,
/* 70201*/      OPC_CheckType, MVT::v4f64,
/* 70203*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70205*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70213*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70222*/    /*Scope*/ 24, /*->70247*/
/* 70223*/      OPC_CheckCondCode, ISD::SETGE,
/* 70225*/      OPC_MoveParent,
/* 70226*/      OPC_CheckType, MVT::v4f64,
/* 70228*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70230*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70238*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70247*/    /*Scope*/ 24, /*->70272*/
/* 70248*/      OPC_CheckCondCode, ISD::SETUGE,
/* 70250*/      OPC_MoveParent,
/* 70251*/      OPC_CheckType, MVT::v4f64,
/* 70253*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70255*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70263*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70272*/    /*Scope*/ 24, /*->70297*/
/* 70273*/      OPC_CheckCondCode, ISD::SETGT,
/* 70275*/      OPC_MoveParent,
/* 70276*/      OPC_CheckType, MVT::v4f64,
/* 70278*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70280*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70288*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70297*/    /*Scope*/ 24, /*->70322*/
/* 70298*/      OPC_CheckCondCode, ISD::SETUGT,
/* 70300*/      OPC_MoveParent,
/* 70301*/      OPC_CheckType, MVT::v4f64,
/* 70303*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70305*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70313*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70322*/    /*Scope*/ 24, /*->70347*/
/* 70323*/      OPC_CheckCondCode, ISD::SETNE,
/* 70325*/      OPC_MoveParent,
/* 70326*/      OPC_CheckType, MVT::v4f64,
/* 70328*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70330*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70338*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QFRC), 0,
                    MVT::v4f64, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f64] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f64:{ *:[v4f64] }:$tval, v4f64:{ *:[v4f64] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QFRC:{ *:[v4f64] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f64] }:$tval, ?:{ *:[v4f64] }:$fval)
/* 70347*/    /*Scope*/ 24, /*->70372*/
/* 70348*/      OPC_CheckCondCode, ISD::SETLT,
/* 70350*/      OPC_MoveParent,
/* 70351*/      OPC_CheckType, MVT::v4f32,
/* 70353*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70355*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70363*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETLT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70372*/    /*Scope*/ 24, /*->70397*/
/* 70373*/      OPC_CheckCondCode, ISD::SETULT,
/* 70375*/      OPC_MoveParent,
/* 70376*/      OPC_CheckType, MVT::v4f32,
/* 70378*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70380*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70388*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETULT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70397*/    /*Scope*/ 24, /*->70422*/
/* 70398*/      OPC_CheckCondCode, ISD::SETLE,
/* 70400*/      OPC_MoveParent,
/* 70401*/      OPC_CheckType, MVT::v4f32,
/* 70403*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70405*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70413*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETLE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70422*/    /*Scope*/ 24, /*->70447*/
/* 70423*/      OPC_CheckCondCode, ISD::SETULE,
/* 70425*/      OPC_MoveParent,
/* 70426*/      OPC_CheckType, MVT::v4f32,
/* 70428*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70430*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70438*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETULE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70447*/    /*Scope*/ 24, /*->70472*/
/* 70448*/      OPC_CheckCondCode, ISD::SETEQ,
/* 70450*/      OPC_MoveParent,
/* 70451*/      OPC_CheckType, MVT::v4f32,
/* 70453*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70455*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70463*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETEQ:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CREQV:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70472*/    /*Scope*/ 24, /*->70497*/
/* 70473*/      OPC_CheckCondCode, ISD::SETGE,
/* 70475*/      OPC_MoveParent,
/* 70476*/      OPC_CheckType, MVT::v4f32,
/* 70478*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70480*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70488*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70497*/    /*Scope*/ 24, /*->70522*/
/* 70498*/      OPC_CheckCondCode, ISD::SETUGE,
/* 70500*/      OPC_MoveParent,
/* 70501*/      OPC_CheckType, MVT::v4f32,
/* 70503*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70505*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70513*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETUGE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRORC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70522*/    /*Scope*/ 24, /*->70547*/
/* 70523*/      OPC_CheckCondCode, ISD::SETGT,
/* 70525*/      OPC_MoveParent,
/* 70526*/      OPC_CheckType, MVT::v4f32,
/* 70528*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70530*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70538*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$rhs, ?:{ *:[i1] }:$lhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70547*/    /*Scope*/ 24, /*->70572*/
/* 70548*/      OPC_CheckCondCode, ISD::SETUGT,
/* 70550*/      OPC_MoveParent,
/* 70551*/      OPC_CheckType, MVT::v4f32,
/* 70553*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70555*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70563*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETUGT:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRANDC:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70572*/    /*Scope*/ 24, /*->70597*/
/* 70573*/      OPC_CheckCondCode, ISD::SETNE,
/* 70575*/      OPC_MoveParent,
/* 70576*/      OPC_CheckType, MVT::v4f32,
/* 70578*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 70580*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70588*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::SELECT_QSRC), 0,
                    MVT::v4f32, 3/*#Ops*/, 4, 2, 3, 
                // Src: (selectcc:{ *:[v4f32] } i1:{ *:[i1] }:$lhs, i1:{ *:[i1] }:$rhs, v4f32:{ *:[v4f32] }:$tval, v4f32:{ *:[v4f32] }:$fval, SETNE:{ *:[Other] }) - Complexity = 3
                // Dst: (SELECT_QSRC:{ *:[v4f32] } (CRXOR:{ *:[i1] } ?:{ *:[i1] }:$lhs, ?:{ *:[i1] }:$rhs), ?:{ *:[v4f32] }:$tval, ?:{ *:[v4f32] }:$fval)
/* 70597*/    0, /*End of Scope*/
/* 70598*/  /*SwitchOpcode*/ 28|128,107/*13724*/, TARGET_VAL(ISD::BITREVERSE),// ->84326
/* 70602*/    OPC_RecordChild0, // #0 = $A
/* 70603*/    OPC_SwitchType /*2 cases */, 6|128,21/*2694*/, MVT::i32,// ->73301
/* 70607*/      OPC_EmitInteger, MVT::i32, 31, 
/* 70610*/      OPC_EmitInteger, MVT::i32, 1, 
/* 70613*/      OPC_EmitInteger, MVT::i32, 31, 
/* 70616*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3,  // Results = #4
/* 70626*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 70631*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 70638*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 70643*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 6, 7,  // Results = #8
/* 70651*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 4, 8,  // Results = #9
/* 70659*/      OPC_EmitInteger, MVT::i32, 1, 
/* 70662*/      OPC_EmitInteger, MVT::i32, 0, 
/* 70665*/      OPC_EmitInteger, MVT::i32, 30, 
/* 70668*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 10, 11, 12,  // Results = #13
/* 70678*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 70683*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 14,  // Results = #15
/* 70690*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 70695*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 15, 16,  // Results = #17
/* 70703*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 13, 17,  // Results = #18
/* 70711*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 9, 18,  // Results = #19
/* 70719*/      OPC_EmitInteger, MVT::i32, 30, 
/* 70722*/      OPC_EmitInteger, MVT::i32, 2, 
/* 70725*/      OPC_EmitInteger, MVT::i32, 31, 
/* 70728*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 19, 20, 21, 22,  // Results = #23
/* 70738*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 70742*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 24,  // Results = #25
/* 70749*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 70753*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 25, 26,  // Results = #27
/* 70761*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 23, 27,  // Results = #28
/* 70769*/      OPC_EmitInteger, MVT::i32, 31, 
/* 70772*/      OPC_EmitInteger, MVT::i32, 1, 
/* 70775*/      OPC_EmitInteger, MVT::i32, 31, 
/* 70778*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 29, 30, 31,  // Results = #32
/* 70788*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 70793*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 33,  // Results = #34
/* 70800*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 70805*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 34, 35,  // Results = #36
/* 70813*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 32, 36,  // Results = #37
/* 70821*/      OPC_EmitInteger, MVT::i32, 1, 
/* 70824*/      OPC_EmitInteger, MVT::i32, 0, 
/* 70827*/      OPC_EmitInteger, MVT::i32, 30, 
/* 70830*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 38, 39, 40,  // Results = #41
/* 70840*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 70845*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 42,  // Results = #43
/* 70852*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 70857*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 43, 44,  // Results = #45
/* 70865*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 41, 45,  // Results = #46
/* 70873*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 37, 46,  // Results = #47
/* 70881*/      OPC_EmitInteger, MVT::i32, 2, 
/* 70884*/      OPC_EmitInteger, MVT::i32, 0, 
/* 70887*/      OPC_EmitInteger, MVT::i32, 29, 
/* 70890*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 47, 48, 49, 50,  // Results = #51
/* 70900*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 70905*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 52,  // Results = #53
/* 70912*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 70917*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 53, 54,  // Results = #55
/* 70925*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 51, 55,  // Results = #56
/* 70933*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 28, 56,  // Results = #57
/* 70941*/      OPC_EmitInteger, MVT::i32, 28, 
/* 70944*/      OPC_EmitInteger, MVT::i32, 4, 
/* 70947*/      OPC_EmitInteger, MVT::i32, 31, 
/* 70950*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 57, 58, 59, 60,  // Results = #61
/* 70960*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 70964*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 62,  // Results = #63
/* 70971*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 70975*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 63, 64,  // Results = #65
/* 70983*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 61, 65,  // Results = #66
/* 70991*/      OPC_EmitInteger, MVT::i32, 31, 
/* 70994*/      OPC_EmitInteger, MVT::i32, 1, 
/* 70997*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71000*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 67, 68, 69,  // Results = #70
/* 71010*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71015*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 71,  // Results = #72
/* 71022*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71027*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 72, 73,  // Results = #74
/* 71035*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 70, 74,  // Results = #75
/* 71043*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71046*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71049*/      OPC_EmitInteger, MVT::i32, 30, 
/* 71052*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 76, 77, 78,  // Results = #79
/* 71062*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71067*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80,  // Results = #81
/* 71074*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71079*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81, 82,  // Results = #83
/* 71087*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 79, 83,  // Results = #84
/* 71095*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 75, 84,  // Results = #85
/* 71103*/      OPC_EmitInteger, MVT::i32, 30, 
/* 71106*/      OPC_EmitInteger, MVT::i32, 2, 
/* 71109*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71112*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 85, 86, 87, 88,  // Results = #89
/* 71122*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 71126*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 90,  // Results = #91
/* 71133*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 71137*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 91, 92,  // Results = #93
/* 71145*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 89, 93,  // Results = #94
/* 71153*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71156*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71159*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71162*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 95, 96, 97,  // Results = #98
/* 71172*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71177*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 99,  // Results = #100
/* 71184*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71189*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 100, 101,  // Results = #102
/* 71197*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 98, 102,  // Results = #103
/* 71205*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71208*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71211*/      OPC_EmitInteger, MVT::i32, 30, 
/* 71214*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 104, 105, 106,  // Results = #107
/* 71224*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71229*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 108,  // Results = #109
/* 71236*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71241*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 109, 110,  // Results = #111
/* 71249*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 107, 111,  // Results = #112
/* 71257*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 103, 112,  // Results = #113
/* 71265*/      OPC_EmitInteger, MVT::i32, 2, 
/* 71268*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71271*/      OPC_EmitInteger, MVT::i32, 29, 
/* 71274*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 113, 114, 115, 116,  // Results = #117
/* 71284*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 71289*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 118,  // Results = #119
/* 71296*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 71301*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 119, 120,  // Results = #121
/* 71309*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 117, 121,  // Results = #122
/* 71317*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 94, 122,  // Results = #123
/* 71325*/      OPC_EmitInteger, MVT::i32, 4, 
/* 71328*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71331*/      OPC_EmitInteger, MVT::i32, 27, 
/* 71334*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 123, 124, 125, 126,  // Results = #127
/* 71344*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 71349*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 0|128,1/*128*/,  // Results = #129
/* 71357*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 71362*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 1|128,1/*129*/, 2|128,1/*130*/,  // Results = #131
/* 71372*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 127, 3|128,1/*131*/,  // Results = #132
/* 71381*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 66, 4|128,1/*132*/,  // Results = #133
/* 71390*/      OPC_EmitInteger, MVT::i32, 24, 
/* 71393*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71396*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71399*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 5|128,1/*133*/, 6|128,1/*134*/, 7|128,1/*135*/, 8|128,1/*136*/,  // Results = #137
/* 71413*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71416*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71419*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71422*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 10|128,1/*138*/, 11|128,1/*139*/, 12|128,1/*140*/,  // Results = #141
/* 71435*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71440*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 14|128,1/*142*/,  // Results = #143
/* 71448*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71453*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 15|128,1/*143*/, 16|128,1/*144*/,  // Results = #145
/* 71463*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 13|128,1/*141*/, 17|128,1/*145*/,  // Results = #146
/* 71473*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71476*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71479*/      OPC_EmitInteger, MVT::i32, 30, 
/* 71482*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 19|128,1/*147*/, 20|128,1/*148*/, 21|128,1/*149*/,  // Results = #150
/* 71495*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71500*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 23|128,1/*151*/,  // Results = #152
/* 71508*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71513*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 24|128,1/*152*/, 25|128,1/*153*/,  // Results = #154
/* 71523*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 22|128,1/*150*/, 26|128,1/*154*/,  // Results = #155
/* 71533*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 18|128,1/*146*/, 27|128,1/*155*/,  // Results = #156
/* 71543*/      OPC_EmitInteger, MVT::i32, 30, 
/* 71546*/      OPC_EmitInteger, MVT::i32, 2, 
/* 71549*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71552*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 28|128,1/*156*/, 29|128,1/*157*/, 30|128,1/*158*/, 31|128,1/*159*/,  // Results = #160
/* 71566*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 71570*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 33|128,1/*161*/,  // Results = #162
/* 71578*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 71582*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 34|128,1/*162*/, 35|128,1/*163*/,  // Results = #164
/* 71592*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 32|128,1/*160*/, 36|128,1/*164*/,  // Results = #165
/* 71602*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71605*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71608*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71611*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 38|128,1/*166*/, 39|128,1/*167*/, 40|128,1/*168*/,  // Results = #169
/* 71624*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71629*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 42|128,1/*170*/,  // Results = #171
/* 71637*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71642*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 43|128,1/*171*/, 44|128,1/*172*/,  // Results = #173
/* 71652*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 41|128,1/*169*/, 45|128,1/*173*/,  // Results = #174
/* 71662*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71665*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71668*/      OPC_EmitInteger, MVT::i32, 30, 
/* 71671*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 47|128,1/*175*/, 48|128,1/*176*/, 49|128,1/*177*/,  // Results = #178
/* 71684*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71689*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 51|128,1/*179*/,  // Results = #180
/* 71697*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71702*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 52|128,1/*180*/, 53|128,1/*181*/,  // Results = #182
/* 71712*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 50|128,1/*178*/, 54|128,1/*182*/,  // Results = #183
/* 71722*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 46|128,1/*174*/, 55|128,1/*183*/,  // Results = #184
/* 71732*/      OPC_EmitInteger, MVT::i32, 2, 
/* 71735*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71738*/      OPC_EmitInteger, MVT::i32, 29, 
/* 71741*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 56|128,1/*184*/, 57|128,1/*185*/, 58|128,1/*186*/, 59|128,1/*187*/,  // Results = #188
/* 71755*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 71760*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 61|128,1/*189*/,  // Results = #190
/* 71768*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 71773*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 62|128,1/*190*/, 63|128,1/*191*/,  // Results = #192
/* 71783*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 60|128,1/*188*/, 64|128,1/*192*/,  // Results = #193
/* 71793*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 37|128,1/*165*/, 65|128,1/*193*/,  // Results = #194
/* 71803*/      OPC_EmitInteger, MVT::i32, 28, 
/* 71806*/      OPC_EmitInteger, MVT::i32, 4, 
/* 71809*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71812*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 66|128,1/*194*/, 67|128,1/*195*/, 68|128,1/*196*/, 69|128,1/*197*/,  // Results = #198
/* 71826*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 71830*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 71|128,1/*199*/,  // Results = #200
/* 71838*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 71842*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 72|128,1/*200*/, 73|128,1/*201*/,  // Results = #202
/* 71852*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 70|128,1/*198*/, 74|128,1/*202*/,  // Results = #203
/* 71862*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71865*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71868*/      OPC_EmitInteger, MVT::i32, 31, 
/* 71871*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 76|128,1/*204*/, 77|128,1/*205*/, 78|128,1/*206*/,  // Results = #207
/* 71884*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71889*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80|128,1/*208*/,  // Results = #209
/* 71897*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 71902*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81|128,1/*209*/, 82|128,1/*210*/,  // Results = #211
/* 71912*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 79|128,1/*207*/, 83|128,1/*211*/,  // Results = #212
/* 71922*/      OPC_EmitInteger, MVT::i32, 1, 
/* 71925*/      OPC_EmitInteger, MVT::i32, 0, 
/* 71928*/      OPC_EmitInteger, MVT::i32, 30, 
/* 71931*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 85|128,1/*213*/, 86|128,1/*214*/, 87|128,1/*215*/,  // Results = #216
/* 71944*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71949*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 89|128,1/*217*/,  // Results = #218
/* 71957*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 71962*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 90|128,1/*218*/, 91|128,1/*219*/,  // Results = #220
/* 71972*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 88|128,1/*216*/, 92|128,1/*220*/,  // Results = #221
/* 71982*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 84|128,1/*212*/, 93|128,1/*221*/,  // Results = #222
/* 71992*/      OPC_EmitInteger, MVT::i32, 30, 
/* 71995*/      OPC_EmitInteger, MVT::i32, 2, 
/* 71998*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72001*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 94|128,1/*222*/, 95|128,1/*223*/, 96|128,1/*224*/, 97|128,1/*225*/,  // Results = #226
/* 72015*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 72019*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 99|128,1/*227*/,  // Results = #228
/* 72027*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 72031*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 100|128,1/*228*/, 101|128,1/*229*/,  // Results = #230
/* 72041*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 98|128,1/*226*/, 102|128,1/*230*/,  // Results = #231
/* 72051*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72054*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72057*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72060*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 104|128,1/*232*/, 105|128,1/*233*/, 106|128,1/*234*/,  // Results = #235
/* 72073*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 72078*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 108|128,1/*236*/,  // Results = #237
/* 72086*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 72091*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 109|128,1/*237*/, 110|128,1/*238*/,  // Results = #239
/* 72101*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 107|128,1/*235*/, 111|128,1/*239*/,  // Results = #240
/* 72111*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72114*/      OPC_EmitInteger, MVT::i32, 0, 
/* 72117*/      OPC_EmitInteger, MVT::i32, 30, 
/* 72120*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 113|128,1/*241*/, 114|128,1/*242*/, 115|128,1/*243*/,  // Results = #244
/* 72133*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 72138*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 117|128,1/*245*/,  // Results = #246
/* 72146*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 72151*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 118|128,1/*246*/, 119|128,1/*247*/,  // Results = #248
/* 72161*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 116|128,1/*244*/, 120|128,1/*248*/,  // Results = #249
/* 72171*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 112|128,1/*240*/, 121|128,1/*249*/,  // Results = #250
/* 72181*/      OPC_EmitInteger, MVT::i32, 2, 
/* 72184*/      OPC_EmitInteger, MVT::i32, 0, 
/* 72187*/      OPC_EmitInteger, MVT::i32, 29, 
/* 72190*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 122|128,1/*250*/, 123|128,1/*251*/, 124|128,1/*252*/, 125|128,1/*253*/,  // Results = #254
/* 72204*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 72209*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 127|128,1/*255*/,  // Results = #256
/* 72217*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 72222*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 0|128,2/*256*/, 1|128,2/*257*/,  // Results = #258
/* 72232*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 126|128,1/*254*/, 2|128,2/*258*/,  // Results = #259
/* 72242*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 103|128,1/*231*/, 3|128,2/*259*/,  // Results = #260
/* 72252*/      OPC_EmitInteger, MVT::i32, 4, 
/* 72255*/      OPC_EmitInteger, MVT::i32, 0, 
/* 72258*/      OPC_EmitInteger, MVT::i32, 27, 
/* 72261*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 4|128,2/*260*/, 5|128,2/*261*/, 6|128,2/*262*/, 7|128,2/*263*/,  // Results = #264
/* 72275*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 72280*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 9|128,2/*265*/,  // Results = #266
/* 72288*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 72293*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 10|128,2/*266*/, 11|128,2/*267*/,  // Results = #268
/* 72303*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 8|128,2/*264*/, 12|128,2/*268*/,  // Results = #269
/* 72313*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 75|128,1/*203*/, 13|128,2/*269*/,  // Results = #270
/* 72323*/      OPC_EmitInteger, MVT::i32, 8, 
/* 72326*/      OPC_EmitInteger, MVT::i32, 8, 
/* 72329*/      OPC_EmitInteger, MVT::i32, 15, 
/* 72332*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWIMI), 0,
                    MVT::i32, 5/*#Ops*/, 9|128,1/*137*/, 14|128,2/*270*/, 15|128,2/*271*/, 16|128,2/*272*/, 17|128,2/*273*/,  // Results = #274
/* 72348*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72351*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72354*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72357*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 19|128,2/*275*/, 20|128,2/*276*/, 21|128,2/*277*/,  // Results = #278
/* 72370*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 72375*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 23|128,2/*279*/,  // Results = #280
/* 72383*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 72388*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 24|128,2/*280*/, 25|128,2/*281*/,  // Results = #282
/* 72398*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 22|128,2/*278*/, 26|128,2/*282*/,  // Results = #283
/* 72408*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72411*/      OPC_EmitInteger, MVT::i32, 0, 
/* 72414*/      OPC_EmitInteger, MVT::i32, 30, 
/* 72417*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 28|128,2/*284*/, 29|128,2/*285*/, 30|128,2/*286*/,  // Results = #287
/* 72430*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 72435*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 32|128,2/*288*/,  // Results = #289
/* 72443*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 72448*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 33|128,2/*289*/, 34|128,2/*290*/,  // Results = #291
/* 72458*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 31|128,2/*287*/, 35|128,2/*291*/,  // Results = #292
/* 72468*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 27|128,2/*283*/, 36|128,2/*292*/,  // Results = #293
/* 72478*/      OPC_EmitInteger, MVT::i32, 30, 
/* 72481*/      OPC_EmitInteger, MVT::i32, 2, 
/* 72484*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72487*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 37|128,2/*293*/, 38|128,2/*294*/, 39|128,2/*295*/, 40|128,2/*296*/,  // Results = #297
/* 72501*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 72505*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 42|128,2/*298*/,  // Results = #299
/* 72513*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 72517*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 43|128,2/*299*/, 44|128,2/*300*/,  // Results = #301
/* 72527*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 41|128,2/*297*/, 45|128,2/*301*/,  // Results = #302
/* 72537*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72540*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72543*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72546*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 47|128,2/*303*/, 48|128,2/*304*/, 49|128,2/*305*/,  // Results = #306
/* 72559*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 72564*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 51|128,2/*307*/,  // Results = #308
/* 72572*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 72577*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 52|128,2/*308*/, 53|128,2/*309*/,  // Results = #310
/* 72587*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 50|128,2/*306*/, 54|128,2/*310*/,  // Results = #311
/* 72597*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72600*/      OPC_EmitInteger, MVT::i32, 0, 
/* 72603*/      OPC_EmitInteger, MVT::i32, 30, 
/* 72606*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 56|128,2/*312*/, 57|128,2/*313*/, 58|128,2/*314*/,  // Results = #315
/* 72619*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 72624*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 60|128,2/*316*/,  // Results = #317
/* 72632*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 72637*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 61|128,2/*317*/, 62|128,2/*318*/,  // Results = #319
/* 72647*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 59|128,2/*315*/, 63|128,2/*319*/,  // Results = #320
/* 72657*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 55|128,2/*311*/, 64|128,2/*320*/,  // Results = #321
/* 72667*/      OPC_EmitInteger, MVT::i32, 2, 
/* 72670*/      OPC_EmitInteger, MVT::i32, 0, 
/* 72673*/      OPC_EmitInteger, MVT::i32, 29, 
/* 72676*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 65|128,2/*321*/, 66|128,2/*322*/, 67|128,2/*323*/, 68|128,2/*324*/,  // Results = #325
/* 72690*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 72695*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 70|128,2/*326*/,  // Results = #327
/* 72703*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 72708*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 71|128,2/*327*/, 72|128,2/*328*/,  // Results = #329
/* 72718*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 69|128,2/*325*/, 73|128,2/*329*/,  // Results = #330
/* 72728*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 46|128,2/*302*/, 74|128,2/*330*/,  // Results = #331
/* 72738*/      OPC_EmitInteger, MVT::i32, 28, 
/* 72741*/      OPC_EmitInteger, MVT::i32, 4, 
/* 72744*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72747*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 75|128,2/*331*/, 76|128,2/*332*/, 77|128,2/*333*/, 78|128,2/*334*/,  // Results = #335
/* 72761*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 72765*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80|128,2/*336*/,  // Results = #337
/* 72773*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 72777*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81|128,2/*337*/, 82|128,2/*338*/,  // Results = #339
/* 72787*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 79|128,2/*335*/, 83|128,2/*339*/,  // Results = #340
/* 72797*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72800*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72803*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72806*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 85|128,2/*341*/, 86|128,2/*342*/, 87|128,2/*343*/,  // Results = #344
/* 72819*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 72824*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 89|128,2/*345*/,  // Results = #346
/* 72832*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 72837*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 90|128,2/*346*/, 91|128,2/*347*/,  // Results = #348
/* 72847*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 88|128,2/*344*/, 92|128,2/*348*/,  // Results = #349
/* 72857*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72860*/      OPC_EmitInteger, MVT::i32, 0, 
/* 72863*/      OPC_EmitInteger, MVT::i32, 30, 
/* 72866*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 94|128,2/*350*/, 95|128,2/*351*/, 96|128,2/*352*/,  // Results = #353
/* 72879*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 72884*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 98|128,2/*354*/,  // Results = #355
/* 72892*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 72897*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 99|128,2/*355*/, 100|128,2/*356*/,  // Results = #357
/* 72907*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 97|128,2/*353*/, 101|128,2/*357*/,  // Results = #358
/* 72917*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 93|128,2/*349*/, 102|128,2/*358*/,  // Results = #359
/* 72927*/      OPC_EmitInteger, MVT::i32, 30, 
/* 72930*/      OPC_EmitInteger, MVT::i32, 2, 
/* 72933*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72936*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 103|128,2/*359*/, 104|128,2/*360*/, 105|128,2/*361*/, 106|128,2/*362*/,  // Results = #363
/* 72950*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 72954*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 108|128,2/*364*/,  // Results = #365
/* 72962*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 72966*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 109|128,2/*365*/, 110|128,2/*366*/,  // Results = #367
/* 72976*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 107|128,2/*363*/, 111|128,2/*367*/,  // Results = #368
/* 72986*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72989*/      OPC_EmitInteger, MVT::i32, 1, 
/* 72992*/      OPC_EmitInteger, MVT::i32, 31, 
/* 72995*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 113|128,2/*369*/, 114|128,2/*370*/, 115|128,2/*371*/,  // Results = #372
/* 73008*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73013*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 117|128,2/*373*/,  // Results = #374
/* 73021*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73026*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 118|128,2/*374*/, 119|128,2/*375*/,  // Results = #376
/* 73036*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 116|128,2/*372*/, 120|128,2/*376*/,  // Results = #377
/* 73046*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73049*/      OPC_EmitInteger, MVT::i32, 0, 
/* 73052*/      OPC_EmitInteger, MVT::i32, 30, 
/* 73055*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 122|128,2/*378*/, 123|128,2/*379*/, 124|128,2/*380*/,  // Results = #381
/* 73068*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73073*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 126|128,2/*382*/,  // Results = #383
/* 73081*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73086*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 127|128,2/*383*/, 0|128,3/*384*/,  // Results = #385
/* 73096*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 125|128,2/*381*/, 1|128,3/*385*/,  // Results = #386
/* 73106*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 121|128,2/*377*/, 2|128,3/*386*/,  // Results = #387
/* 73116*/      OPC_EmitInteger, MVT::i32, 2, 
/* 73119*/      OPC_EmitInteger, MVT::i32, 0, 
/* 73122*/      OPC_EmitInteger, MVT::i32, 29, 
/* 73125*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 3|128,3/*387*/, 4|128,3/*388*/, 5|128,3/*389*/, 6|128,3/*390*/,  // Results = #391
/* 73139*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 73144*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 8|128,3/*392*/,  // Results = #393
/* 73152*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 73157*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 9|128,3/*393*/, 10|128,3/*394*/,  // Results = #395
/* 73167*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 7|128,3/*391*/, 11|128,3/*395*/,  // Results = #396
/* 73177*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 112|128,2/*368*/, 12|128,3/*396*/,  // Results = #397
/* 73187*/      OPC_EmitInteger, MVT::i32, 4, 
/* 73190*/      OPC_EmitInteger, MVT::i32, 0, 
/* 73193*/      OPC_EmitInteger, MVT::i32, 27, 
/* 73196*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 13|128,3/*397*/, 14|128,3/*398*/, 15|128,3/*399*/, 16|128,3/*400*/,  // Results = #401
/* 73210*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 73215*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 18|128,3/*402*/,  // Results = #403
/* 73223*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 73228*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 19|128,3/*403*/, 20|128,3/*404*/,  // Results = #405
/* 73238*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 17|128,3/*401*/, 21|128,3/*405*/,  // Results = #406
/* 73248*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 84|128,2/*340*/, 22|128,3/*406*/,  // Results = #407
/* 73258*/      OPC_EmitInteger, MVT::i32, 8, 
/* 73261*/      OPC_EmitInteger, MVT::i32, 24, 
/* 73264*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73267*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWIMI), 0,
                    MVT::i32, 5/*#Ops*/, 18|128,2/*274*/, 23|128,3/*407*/, 24|128,3/*408*/, 25|128,3/*409*/, 26|128,3/*410*/,  // Results = #411
/* 73283*/      OPC_EmitInteger, MVT::i32, 0, 
/* 73286*/      OPC_EmitInteger, MVT::i32, 32, 
/* 73289*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL_32), 0,
                    MVT::i32, 3/*#Ops*/, 27|128,3/*411*/, 28|128,3/*412*/, 29|128,3/*413*/, 
                // Src: (bitreverse:{ *:[i32] } i32:{ *:[i32] }:$A) - Complexity = 3
                // Dst: (RLDICL_32:{ *:[i32] } (RLWIMI:{ *:[i32] } (RLWIMI:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 30:{ *:[i32] }, 2:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 2:{ *:[i32] }, 0:{ *:[i32] }, 29:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }))), 28:{ *:[i32] }, 4:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 30:{ *:[i32] }, 2:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 2:{ *:[i32] }, 0:{ *:[i32] }, 29:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }))), 4:{ *:[i32] }, 0:{ *:[i32] }, 27:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }))), 24:{ *:[i32] }, 0:{ *:[i32] }, 31:{ *:[i32] }), (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 30:{ *:[i32] }, 2:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 2:{ *:[i32] }, 0:{ *:[i32] }, 29:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }))), 28:{ *:[i32] }, 4:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 30:{ *:[i32] }, 2:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 2:{ *:[i32] }, 0:{ *:[i32] }, 29:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }))), 4:{ *:[i32] }, 0:{ *:[i32] }, 27:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }))), 8:{ *:[i32] }, 8:{ *:[i32] }, 15:{ *:[i32] }), (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 30:{ *:[i32] }, 2:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 2:{ *:[i32] }, 0:{ *:[i32] }, 29:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }))), 28:{ *:[i32] }, 4:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 30:{ *:[i32] }, 2:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } (OR:{ *:[i32] } (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 31:{ *:[i32] }, 1:{ *:[i32] }, 31:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] })), (AND:{ *:[i32] } (RLWINM:{ *:[i32] } ?:{ *:[i32] }:$A, 1:{ *:[i32] }, 0:{ *:[i32] }, 30:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }))), 2:{ *:[i32] }, 0:{ *:[i32] }, 29:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }))), 4:{ *:[i32] }, 0:{ *:[i32] }, 27:{ *:[i32] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }))), 8:{ *:[i32] }, 24:{ *:[i32] }, 31:{ *:[i32] }), 0:{ *:[i32] }, 32:{ *:[i32] })
/* 73301*/    /*SwitchType*/ 13|128,86/*11021*/, MVT::i64,// ->84325
/* 73304*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1
/* 73310*/      OPC_EmitInteger, MVT::i32, 63, 
/* 73313*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73316*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 2, 3,  // Results = #4
/* 73325*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #5
/* 73331*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73336*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 73343*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73348*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 73356*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 73359*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 5, 9, 10,  // Results = #11
/* 73368*/      OPC_EmitInteger, MVT::i32, 32, 
/* 73371*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73374*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 73383*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 73388*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 73396*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 73401*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 16, 17,  // Results = #18
/* 73409*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 4, 18,  // Results = #19
/* 73417*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73420*/      OPC_EmitInteger, MVT::i32, 62, 
/* 73423*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 20, 21,  // Results = #22
/* 73432*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #23
/* 73438*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73443*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 24,  // Results = #25
/* 73450*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73455*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 25, 26,  // Results = #27
/* 73463*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 73466*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 23, 27, 28,  // Results = #29
/* 73475*/      OPC_EmitInteger, MVT::i32, 32, 
/* 73478*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73481*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 29, 30, 31,  // Results = #32
/* 73490*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 73495*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 32, 33,  // Results = #34
/* 73503*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 73508*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 34, 35,  // Results = #36
/* 73516*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 22, 36,  // Results = #37
/* 73524*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 19, 37,  // Results = #38
/* 73532*/      OPC_EmitInteger, MVT::i32, 62, 
/* 73535*/      OPC_EmitInteger, MVT::i32, 2, 
/* 73538*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 38, 39, 40,  // Results = #41
/* 73547*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #42
/* 73553*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 73557*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 43,  // Results = #44
/* 73564*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 73568*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 44, 45,  // Results = #46
/* 73576*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 73579*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 42, 46, 47,  // Results = #48
/* 73588*/      OPC_EmitInteger, MVT::i32, 32, 
/* 73591*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73594*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 48, 49, 50,  // Results = #51
/* 73603*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 73607*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 51, 52,  // Results = #53
/* 73615*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 73619*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 53, 54,  // Results = #55
/* 73627*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 41, 55,  // Results = #56
/* 73635*/      OPC_EmitInteger, MVT::i32, 63, 
/* 73638*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73641*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 57, 58,  // Results = #59
/* 73650*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #60
/* 73656*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73661*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 61,  // Results = #62
/* 73668*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73673*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 62, 63,  // Results = #64
/* 73681*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 73684*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 60, 64, 65,  // Results = #66
/* 73693*/      OPC_EmitInteger, MVT::i32, 32, 
/* 73696*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73699*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 66, 67, 68,  // Results = #69
/* 73708*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 73713*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 69, 70,  // Results = #71
/* 73721*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 73726*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 71, 72,  // Results = #73
/* 73734*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 59, 73,  // Results = #74
/* 73742*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73745*/      OPC_EmitInteger, MVT::i32, 62, 
/* 73748*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 75, 76,  // Results = #77
/* 73757*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #78
/* 73763*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73768*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 79,  // Results = #80
/* 73775*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73780*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 80, 81,  // Results = #82
/* 73788*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 73791*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 78, 82, 83,  // Results = #84
/* 73800*/      OPC_EmitInteger, MVT::i32, 32, 
/* 73803*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73806*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 84, 85, 86,  // Results = #87
/* 73815*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 73820*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 87, 88,  // Results = #89
/* 73828*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 73833*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 89, 90,  // Results = #91
/* 73841*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 77, 91,  // Results = #92
/* 73849*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 74, 92,  // Results = #93
/* 73857*/      OPC_EmitInteger, MVT::i32, 2, 
/* 73860*/      OPC_EmitInteger, MVT::i32, 61, 
/* 73863*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 93, 94, 95,  // Results = #96
/* 73872*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #97
/* 73878*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 73883*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 98,  // Results = #99
/* 73890*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 73895*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 99, 100,  // Results = #101
/* 73903*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 73906*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 97, 101, 102,  // Results = #103
/* 73915*/      OPC_EmitInteger, MVT::i32, 32, 
/* 73918*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73921*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 103, 104, 105,  // Results = #106
/* 73930*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 73935*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 106, 107,  // Results = #108
/* 73943*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 73948*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 108, 109,  // Results = #110
/* 73956*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 96, 110,  // Results = #111
/* 73964*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 56, 111,  // Results = #112
/* 73972*/      OPC_EmitInteger, MVT::i32, 60, 
/* 73975*/      OPC_EmitInteger, MVT::i32, 4, 
/* 73978*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 112, 113, 114,  // Results = #115
/* 73987*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #116
/* 73993*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 73997*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 117,  // Results = #118
/* 74004*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 74008*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 118, 119,  // Results = #120
/* 74016*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74019*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 116, 120, 121,  // Results = #122
/* 74028*/      OPC_EmitInteger, MVT::i32, 32, 
/* 74031*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74034*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 122, 123, 124,  // Results = #125
/* 74043*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 74047*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 125, 126,  // Results = #127
/* 74055*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 74059*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 127, 0|128,1/*128*/,  // Results = #129
/* 74068*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 115, 1|128,1/*129*/,  // Results = #130
/* 74077*/      OPC_EmitInteger, MVT::i32, 63, 
/* 74080*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74083*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 3|128,1/*131*/, 4|128,1/*132*/,  // Results = #133
/* 74094*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #134
/* 74100*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74105*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 7|128,1/*135*/,  // Results = #136
/* 74113*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74118*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 8|128,1/*136*/, 9|128,1/*137*/,  // Results = #138
/* 74128*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74131*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 6|128,1/*134*/, 10|128,1/*138*/, 11|128,1/*139*/,  // Results = #140
/* 74143*/      OPC_EmitInteger, MVT::i32, 32, 
/* 74146*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74149*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 12|128,1/*140*/, 13|128,1/*141*/, 14|128,1/*142*/,  // Results = #143
/* 74161*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 74166*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 15|128,1/*143*/, 16|128,1/*144*/,  // Results = #145
/* 74176*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 74181*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 17|128,1/*145*/, 18|128,1/*146*/,  // Results = #147
/* 74191*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 5|128,1/*133*/, 19|128,1/*147*/,  // Results = #148
/* 74201*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74204*/      OPC_EmitInteger, MVT::i32, 62, 
/* 74207*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 21|128,1/*149*/, 22|128,1/*150*/,  // Results = #151
/* 74218*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #152
/* 74224*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74229*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 25|128,1/*153*/,  // Results = #154
/* 74237*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74242*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 26|128,1/*154*/, 27|128,1/*155*/,  // Results = #156
/* 74252*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74255*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 24|128,1/*152*/, 28|128,1/*156*/, 29|128,1/*157*/,  // Results = #158
/* 74267*/      OPC_EmitInteger, MVT::i32, 32, 
/* 74270*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74273*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 30|128,1/*158*/, 31|128,1/*159*/, 32|128,1/*160*/,  // Results = #161
/* 74285*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 74290*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,1/*161*/, 34|128,1/*162*/,  // Results = #163
/* 74300*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 74305*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 35|128,1/*163*/, 36|128,1/*164*/,  // Results = #165
/* 74315*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 23|128,1/*151*/, 37|128,1/*165*/,  // Results = #166
/* 74325*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 20|128,1/*148*/, 38|128,1/*166*/,  // Results = #167
/* 74335*/      OPC_EmitInteger, MVT::i32, 62, 
/* 74338*/      OPC_EmitInteger, MVT::i32, 2, 
/* 74341*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 39|128,1/*167*/, 40|128,1/*168*/, 41|128,1/*169*/,  // Results = #170
/* 74353*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #171
/* 74359*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 74363*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 44|128,1/*172*/,  // Results = #173
/* 74371*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 74375*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 45|128,1/*173*/, 46|128,1/*174*/,  // Results = #175
/* 74385*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74388*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 43|128,1/*171*/, 47|128,1/*175*/, 48|128,1/*176*/,  // Results = #177
/* 74400*/      OPC_EmitInteger, MVT::i32, 32, 
/* 74403*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74406*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 49|128,1/*177*/, 50|128,1/*178*/, 51|128,1/*179*/,  // Results = #180
/* 74418*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 74422*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 52|128,1/*180*/, 53|128,1/*181*/,  // Results = #182
/* 74432*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 74436*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 54|128,1/*182*/, 55|128,1/*183*/,  // Results = #184
/* 74446*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 42|128,1/*170*/, 56|128,1/*184*/,  // Results = #185
/* 74456*/      OPC_EmitInteger, MVT::i32, 63, 
/* 74459*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74462*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 58|128,1/*186*/, 59|128,1/*187*/,  // Results = #188
/* 74473*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #189
/* 74479*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74484*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 62|128,1/*190*/,  // Results = #191
/* 74492*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74497*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 63|128,1/*191*/, 64|128,1/*192*/,  // Results = #193
/* 74507*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74510*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 61|128,1/*189*/, 65|128,1/*193*/, 66|128,1/*194*/,  // Results = #195
/* 74522*/      OPC_EmitInteger, MVT::i32, 32, 
/* 74525*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74528*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 67|128,1/*195*/, 68|128,1/*196*/, 69|128,1/*197*/,  // Results = #198
/* 74540*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 74545*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 70|128,1/*198*/, 71|128,1/*199*/,  // Results = #200
/* 74555*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 74560*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 72|128,1/*200*/, 73|128,1/*201*/,  // Results = #202
/* 74570*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 60|128,1/*188*/, 74|128,1/*202*/,  // Results = #203
/* 74580*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74583*/      OPC_EmitInteger, MVT::i32, 62, 
/* 74586*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 76|128,1/*204*/, 77|128,1/*205*/,  // Results = #206
/* 74597*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #207
/* 74603*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74608*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80|128,1/*208*/,  // Results = #209
/* 74616*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74621*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81|128,1/*209*/, 82|128,1/*210*/,  // Results = #211
/* 74631*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74634*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 79|128,1/*207*/, 83|128,1/*211*/, 84|128,1/*212*/,  // Results = #213
/* 74646*/      OPC_EmitInteger, MVT::i32, 32, 
/* 74649*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74652*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 85|128,1/*213*/, 86|128,1/*214*/, 87|128,1/*215*/,  // Results = #216
/* 74664*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 74669*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 88|128,1/*216*/, 89|128,1/*217*/,  // Results = #218
/* 74679*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 74684*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 90|128,1/*218*/, 91|128,1/*219*/,  // Results = #220
/* 74694*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 78|128,1/*206*/, 92|128,1/*220*/,  // Results = #221
/* 74704*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 75|128,1/*203*/, 93|128,1/*221*/,  // Results = #222
/* 74714*/      OPC_EmitInteger, MVT::i32, 2, 
/* 74717*/      OPC_EmitInteger, MVT::i32, 61, 
/* 74720*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 94|128,1/*222*/, 95|128,1/*223*/, 96|128,1/*224*/,  // Results = #225
/* 74732*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #226
/* 74738*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 74743*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 99|128,1/*227*/,  // Results = #228
/* 74751*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 74756*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 100|128,1/*228*/, 101|128,1/*229*/,  // Results = #230
/* 74766*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74769*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 98|128,1/*226*/, 102|128,1/*230*/, 103|128,1/*231*/,  // Results = #232
/* 74781*/      OPC_EmitInteger, MVT::i32, 32, 
/* 74784*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74787*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 104|128,1/*232*/, 105|128,1/*233*/, 106|128,1/*234*/,  // Results = #235
/* 74799*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 74804*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 107|128,1/*235*/, 108|128,1/*236*/,  // Results = #237
/* 74814*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 74819*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 109|128,1/*237*/, 110|128,1/*238*/,  // Results = #239
/* 74829*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 97|128,1/*225*/, 111|128,1/*239*/,  // Results = #240
/* 74839*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 57|128,1/*185*/, 112|128,1/*240*/,  // Results = #241
/* 74849*/      OPC_EmitInteger, MVT::i32, 4, 
/* 74852*/      OPC_EmitInteger, MVT::i32, 59, 
/* 74855*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 113|128,1/*241*/, 114|128,1/*242*/, 115|128,1/*243*/,  // Results = #244
/* 74867*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #245
/* 74873*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 74878*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 118|128,1/*246*/,  // Results = #247
/* 74886*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 74891*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 119|128,1/*247*/, 120|128,1/*248*/,  // Results = #249
/* 74901*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74904*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 117|128,1/*245*/, 121|128,1/*249*/, 122|128,1/*250*/,  // Results = #251
/* 74916*/      OPC_EmitInteger, MVT::i32, 32, 
/* 74919*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74922*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 123|128,1/*251*/, 124|128,1/*252*/, 125|128,1/*253*/,  // Results = #254
/* 74934*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 74939*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 126|128,1/*254*/, 127|128,1/*255*/,  // Results = #256
/* 74949*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 74954*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 0|128,2/*256*/, 1|128,2/*257*/,  // Results = #258
/* 74964*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 116|128,1/*244*/, 2|128,2/*258*/,  // Results = #259
/* 74974*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 2|128,1/*130*/, 3|128,2/*259*/,  // Results = #260
/* 74984*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 74987*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 4|128,2/*260*/, 5|128,2/*261*/,  // Results = #262
/* 74997*/      OPC_EmitInteger, MVT::i32, 24, 
/* 75000*/      OPC_EmitInteger, MVT::i32, 0, 
/* 75003*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75006*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 6|128,2/*262*/, 7|128,2/*263*/, 8|128,2/*264*/, 9|128,2/*265*/,  // Results = #266
/* 75020*/      OPC_EmitInteger, MVT::i32, 63, 
/* 75023*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75026*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 11|128,2/*267*/, 12|128,2/*268*/,  // Results = #269
/* 75037*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #270
/* 75043*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75048*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 15|128,2/*271*/,  // Results = #272
/* 75056*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75061*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 16|128,2/*272*/, 17|128,2/*273*/,  // Results = #274
/* 75071*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 75074*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 14|128,2/*270*/, 18|128,2/*274*/, 19|128,2/*275*/,  // Results = #276
/* 75086*/      OPC_EmitInteger, MVT::i32, 32, 
/* 75089*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75092*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 20|128,2/*276*/, 21|128,2/*277*/, 22|128,2/*278*/,  // Results = #279
/* 75104*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 75109*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 23|128,2/*279*/, 24|128,2/*280*/,  // Results = #281
/* 75119*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 75124*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 25|128,2/*281*/, 26|128,2/*282*/,  // Results = #283
/* 75134*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 13|128,2/*269*/, 27|128,2/*283*/,  // Results = #284
/* 75144*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75147*/      OPC_EmitInteger, MVT::i32, 62, 
/* 75150*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 29|128,2/*285*/, 30|128,2/*286*/,  // Results = #287
/* 75161*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #288
/* 75167*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75172*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 33|128,2/*289*/,  // Results = #290
/* 75180*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75185*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 34|128,2/*290*/, 35|128,2/*291*/,  // Results = #292
/* 75195*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 75198*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 32|128,2/*288*/, 36|128,2/*292*/, 37|128,2/*293*/,  // Results = #294
/* 75210*/      OPC_EmitInteger, MVT::i32, 32, 
/* 75213*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75216*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 38|128,2/*294*/, 39|128,2/*295*/, 40|128,2/*296*/,  // Results = #297
/* 75228*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 75233*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 41|128,2/*297*/, 42|128,2/*298*/,  // Results = #299
/* 75243*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 75248*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 43|128,2/*299*/, 44|128,2/*300*/,  // Results = #301
/* 75258*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 31|128,2/*287*/, 45|128,2/*301*/,  // Results = #302
/* 75268*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 28|128,2/*284*/, 46|128,2/*302*/,  // Results = #303
/* 75278*/      OPC_EmitInteger, MVT::i32, 62, 
/* 75281*/      OPC_EmitInteger, MVT::i32, 2, 
/* 75284*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 47|128,2/*303*/, 48|128,2/*304*/, 49|128,2/*305*/,  // Results = #306
/* 75296*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #307
/* 75302*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 75306*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 52|128,2/*308*/,  // Results = #309
/* 75314*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 75318*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 53|128,2/*309*/, 54|128,2/*310*/,  // Results = #311
/* 75328*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 75331*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 51|128,2/*307*/, 55|128,2/*311*/, 56|128,2/*312*/,  // Results = #313
/* 75343*/      OPC_EmitInteger, MVT::i32, 32, 
/* 75346*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75349*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 57|128,2/*313*/, 58|128,2/*314*/, 59|128,2/*315*/,  // Results = #316
/* 75361*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 75365*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 60|128,2/*316*/, 61|128,2/*317*/,  // Results = #318
/* 75375*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 75379*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 62|128,2/*318*/, 63|128,2/*319*/,  // Results = #320
/* 75389*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 50|128,2/*306*/, 64|128,2/*320*/,  // Results = #321
/* 75399*/      OPC_EmitInteger, MVT::i32, 63, 
/* 75402*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75405*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 66|128,2/*322*/, 67|128,2/*323*/,  // Results = #324
/* 75416*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #325
/* 75422*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75427*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 70|128,2/*326*/,  // Results = #327
/* 75435*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75440*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 71|128,2/*327*/, 72|128,2/*328*/,  // Results = #329
/* 75450*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 75453*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 69|128,2/*325*/, 73|128,2/*329*/, 74|128,2/*330*/,  // Results = #331
/* 75465*/      OPC_EmitInteger, MVT::i32, 32, 
/* 75468*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75471*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 75|128,2/*331*/, 76|128,2/*332*/, 77|128,2/*333*/,  // Results = #334
/* 75483*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 75488*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 78|128,2/*334*/, 79|128,2/*335*/,  // Results = #336
/* 75498*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 75503*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 80|128,2/*336*/, 81|128,2/*337*/,  // Results = #338
/* 75513*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 68|128,2/*324*/, 82|128,2/*338*/,  // Results = #339
/* 75523*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75526*/      OPC_EmitInteger, MVT::i32, 62, 
/* 75529*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 84|128,2/*340*/, 85|128,2/*341*/,  // Results = #342
/* 75540*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #343
/* 75546*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75551*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 88|128,2/*344*/,  // Results = #345
/* 75559*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75564*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 89|128,2/*345*/, 90|128,2/*346*/,  // Results = #347
/* 75574*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 75577*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 87|128,2/*343*/, 91|128,2/*347*/, 92|128,2/*348*/,  // Results = #349
/* 75589*/      OPC_EmitInteger, MVT::i32, 32, 
/* 75592*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75595*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 93|128,2/*349*/, 94|128,2/*350*/, 95|128,2/*351*/,  // Results = #352
/* 75607*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 75612*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 96|128,2/*352*/, 97|128,2/*353*/,  // Results = #354
/* 75622*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 75627*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 98|128,2/*354*/, 99|128,2/*355*/,  // Results = #356
/* 75637*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 86|128,2/*342*/, 100|128,2/*356*/,  // Results = #357
/* 75647*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 83|128,2/*339*/, 101|128,2/*357*/,  // Results = #358
/* 75657*/      OPC_EmitInteger, MVT::i32, 2, 
/* 75660*/      OPC_EmitInteger, MVT::i32, 61, 
/* 75663*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 102|128,2/*358*/, 103|128,2/*359*/, 104|128,2/*360*/,  // Results = #361
/* 75675*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #362
/* 75681*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 75686*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 107|128,2/*363*/,  // Results = #364
/* 75694*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 75699*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 108|128,2/*364*/, 109|128,2/*365*/,  // Results = #366
/* 75709*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 75712*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 106|128,2/*362*/, 110|128,2/*366*/, 111|128,2/*367*/,  // Results = #368
/* 75724*/      OPC_EmitInteger, MVT::i32, 32, 
/* 75727*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75730*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 112|128,2/*368*/, 113|128,2/*369*/, 114|128,2/*370*/,  // Results = #371
/* 75742*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 75747*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 115|128,2/*371*/, 116|128,2/*372*/,  // Results = #373
/* 75757*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 75762*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 117|128,2/*373*/, 118|128,2/*374*/,  // Results = #375
/* 75772*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 105|128,2/*361*/, 119|128,2/*375*/,  // Results = #376
/* 75782*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 65|128,2/*321*/, 120|128,2/*376*/,  // Results = #377
/* 75792*/      OPC_EmitInteger, MVT::i32, 60, 
/* 75795*/      OPC_EmitInteger, MVT::i32, 4, 
/* 75798*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 121|128,2/*377*/, 122|128,2/*378*/, 123|128,2/*379*/,  // Results = #380
/* 75810*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #381
/* 75816*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 75820*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 126|128,2/*382*/,  // Results = #383
/* 75828*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 75832*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 127|128,2/*383*/, 0|128,3/*384*/,  // Results = #385
/* 75842*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 75845*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 125|128,2/*381*/, 1|128,3/*385*/, 2|128,3/*386*/,  // Results = #387
/* 75857*/      OPC_EmitInteger, MVT::i32, 32, 
/* 75860*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75863*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 3|128,3/*387*/, 4|128,3/*388*/, 5|128,3/*389*/,  // Results = #390
/* 75875*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 75879*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 6|128,3/*390*/, 7|128,3/*391*/,  // Results = #392
/* 75889*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 75893*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 8|128,3/*392*/, 9|128,3/*393*/,  // Results = #394
/* 75903*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 124|128,2/*380*/, 10|128,3/*394*/,  // Results = #395
/* 75913*/      OPC_EmitInteger, MVT::i32, 63, 
/* 75916*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75919*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 12|128,3/*396*/, 13|128,3/*397*/,  // Results = #398
/* 75930*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #399
/* 75936*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75941*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 16|128,3/*400*/,  // Results = #401
/* 75949*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75954*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 17|128,3/*401*/, 18|128,3/*402*/,  // Results = #403
/* 75964*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 75967*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 15|128,3/*399*/, 19|128,3/*403*/, 20|128,3/*404*/,  // Results = #405
/* 75979*/      OPC_EmitInteger, MVT::i32, 32, 
/* 75982*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75985*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 21|128,3/*405*/, 22|128,3/*406*/, 23|128,3/*407*/,  // Results = #408
/* 75997*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76002*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 24|128,3/*408*/, 25|128,3/*409*/,  // Results = #410
/* 76012*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76017*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 26|128,3/*410*/, 27|128,3/*411*/,  // Results = #412
/* 76027*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 14|128,3/*398*/, 28|128,3/*412*/,  // Results = #413
/* 76037*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76040*/      OPC_EmitInteger, MVT::i32, 62, 
/* 76043*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 30|128,3/*414*/, 31|128,3/*415*/,  // Results = #416
/* 76054*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #417
/* 76060*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76065*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 34|128,3/*418*/,  // Results = #419
/* 76073*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76078*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 35|128,3/*419*/, 36|128,3/*420*/,  // Results = #421
/* 76088*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76091*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 33|128,3/*417*/, 37|128,3/*421*/, 38|128,3/*422*/,  // Results = #423
/* 76103*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76106*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76109*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 39|128,3/*423*/, 40|128,3/*424*/, 41|128,3/*425*/,  // Results = #426
/* 76121*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 76126*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 42|128,3/*426*/, 43|128,3/*427*/,  // Results = #428
/* 76136*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 76141*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 44|128,3/*428*/, 45|128,3/*429*/,  // Results = #430
/* 76151*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 32|128,3/*416*/, 46|128,3/*430*/,  // Results = #431
/* 76161*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 29|128,3/*413*/, 47|128,3/*431*/,  // Results = #432
/* 76171*/      OPC_EmitInteger, MVT::i32, 62, 
/* 76174*/      OPC_EmitInteger, MVT::i32, 2, 
/* 76177*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 48|128,3/*432*/, 49|128,3/*433*/, 50|128,3/*434*/,  // Results = #435
/* 76189*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #436
/* 76195*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 76199*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 53|128,3/*437*/,  // Results = #438
/* 76207*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 76211*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 54|128,3/*438*/, 55|128,3/*439*/,  // Results = #440
/* 76221*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76224*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 52|128,3/*436*/, 56|128,3/*440*/, 57|128,3/*441*/,  // Results = #442
/* 76236*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76239*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76242*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 58|128,3/*442*/, 59|128,3/*443*/, 60|128,3/*444*/,  // Results = #445
/* 76254*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 76258*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 61|128,3/*445*/, 62|128,3/*446*/,  // Results = #447
/* 76268*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 76272*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 63|128,3/*447*/, 64|128,3/*448*/,  // Results = #449
/* 76282*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 51|128,3/*435*/, 65|128,3/*449*/,  // Results = #450
/* 76292*/      OPC_EmitInteger, MVT::i32, 63, 
/* 76295*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76298*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 67|128,3/*451*/, 68|128,3/*452*/,  // Results = #453
/* 76309*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #454
/* 76315*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76320*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 71|128,3/*455*/,  // Results = #456
/* 76328*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76333*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 72|128,3/*456*/, 73|128,3/*457*/,  // Results = #458
/* 76343*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76346*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 70|128,3/*454*/, 74|128,3/*458*/, 75|128,3/*459*/,  // Results = #460
/* 76358*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76361*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76364*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 76|128,3/*460*/, 77|128,3/*461*/, 78|128,3/*462*/,  // Results = #463
/* 76376*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76381*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 79|128,3/*463*/, 80|128,3/*464*/,  // Results = #465
/* 76391*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76396*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 81|128,3/*465*/, 82|128,3/*466*/,  // Results = #467
/* 76406*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 69|128,3/*453*/, 83|128,3/*467*/,  // Results = #468
/* 76416*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76419*/      OPC_EmitInteger, MVT::i32, 62, 
/* 76422*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 85|128,3/*469*/, 86|128,3/*470*/,  // Results = #471
/* 76433*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #472
/* 76439*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76444*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 89|128,3/*473*/,  // Results = #474
/* 76452*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76457*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 90|128,3/*474*/, 91|128,3/*475*/,  // Results = #476
/* 76467*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76470*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 88|128,3/*472*/, 92|128,3/*476*/, 93|128,3/*477*/,  // Results = #478
/* 76482*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76485*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76488*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 94|128,3/*478*/, 95|128,3/*479*/, 96|128,3/*480*/,  // Results = #481
/* 76500*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 76505*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 97|128,3/*481*/, 98|128,3/*482*/,  // Results = #483
/* 76515*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 76520*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 99|128,3/*483*/, 100|128,3/*484*/,  // Results = #485
/* 76530*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 87|128,3/*471*/, 101|128,3/*485*/,  // Results = #486
/* 76540*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 84|128,3/*468*/, 102|128,3/*486*/,  // Results = #487
/* 76550*/      OPC_EmitInteger, MVT::i32, 2, 
/* 76553*/      OPC_EmitInteger, MVT::i32, 61, 
/* 76556*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 103|128,3/*487*/, 104|128,3/*488*/, 105|128,3/*489*/,  // Results = #490
/* 76568*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #491
/* 76574*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 76579*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 108|128,3/*492*/,  // Results = #493
/* 76587*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 76592*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 109|128,3/*493*/, 110|128,3/*494*/,  // Results = #495
/* 76602*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76605*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 107|128,3/*491*/, 111|128,3/*495*/, 112|128,3/*496*/,  // Results = #497
/* 76617*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76620*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76623*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 113|128,3/*497*/, 114|128,3/*498*/, 115|128,3/*499*/,  // Results = #500
/* 76635*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 76640*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 116|128,3/*500*/, 117|128,3/*501*/,  // Results = #502
/* 76650*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 76655*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 118|128,3/*502*/, 119|128,3/*503*/,  // Results = #504
/* 76665*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 106|128,3/*490*/, 120|128,3/*504*/,  // Results = #505
/* 76675*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 66|128,3/*450*/, 121|128,3/*505*/,  // Results = #506
/* 76685*/      OPC_EmitInteger, MVT::i32, 4, 
/* 76688*/      OPC_EmitInteger, MVT::i32, 59, 
/* 76691*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 122|128,3/*506*/, 123|128,3/*507*/, 124|128,3/*508*/,  // Results = #509
/* 76703*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #510
/* 76709*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 76714*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 127|128,3/*511*/,  // Results = #512
/* 76722*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 76727*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 0|128,4/*512*/, 1|128,4/*513*/,  // Results = #514
/* 76737*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76740*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 126|128,3/*510*/, 2|128,4/*514*/, 3|128,4/*515*/,  // Results = #516
/* 76752*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76755*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76758*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 4|128,4/*516*/, 5|128,4/*517*/, 6|128,4/*518*/,  // Results = #519
/* 76770*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 76775*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 7|128,4/*519*/, 8|128,4/*520*/,  // Results = #521
/* 76785*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 76790*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 9|128,4/*521*/, 10|128,4/*522*/,  // Results = #523
/* 76800*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 125|128,3/*509*/, 11|128,4/*523*/,  // Results = #524
/* 76810*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 11|128,3/*395*/, 12|128,4/*524*/,  // Results = #525
/* 76820*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76823*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 13|128,4/*525*/, 14|128,4/*526*/,  // Results = #527
/* 76833*/      OPC_EmitInteger, MVT::i32, 8, 
/* 76836*/      OPC_EmitInteger, MVT::i32, 8, 
/* 76839*/      OPC_EmitInteger, MVT::i32, 15, 
/* 76842*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWIMI), 0,
                    MVT::i32, 5/*#Ops*/, 10|128,2/*266*/, 15|128,4/*527*/, 16|128,4/*528*/, 17|128,4/*529*/, 18|128,4/*530*/,  // Results = #531
/* 76858*/      OPC_EmitInteger, MVT::i32, 63, 
/* 76861*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76864*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 20|128,4/*532*/, 21|128,4/*533*/,  // Results = #534
/* 76875*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #535
/* 76881*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76886*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 24|128,4/*536*/,  // Results = #537
/* 76894*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76899*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 25|128,4/*537*/, 26|128,4/*538*/,  // Results = #539
/* 76909*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76912*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 23|128,4/*535*/, 27|128,4/*539*/, 28|128,4/*540*/,  // Results = #541
/* 76924*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76927*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76930*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 29|128,4/*541*/, 30|128,4/*542*/, 31|128,4/*543*/,  // Results = #544
/* 76942*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76947*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 32|128,4/*544*/, 33|128,4/*545*/,  // Results = #546
/* 76957*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76962*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 34|128,4/*546*/, 35|128,4/*547*/,  // Results = #548
/* 76972*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 22|128,4/*534*/, 36|128,4/*548*/,  // Results = #549
/* 76982*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76985*/      OPC_EmitInteger, MVT::i32, 62, 
/* 76988*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 38|128,4/*550*/, 39|128,4/*551*/,  // Results = #552
/* 76999*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #553
/* 77005*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77010*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 42|128,4/*554*/,  // Results = #555
/* 77018*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77023*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 43|128,4/*555*/, 44|128,4/*556*/,  // Results = #557
/* 77033*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77036*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 41|128,4/*553*/, 45|128,4/*557*/, 46|128,4/*558*/,  // Results = #559
/* 77048*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77051*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77054*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 47|128,4/*559*/, 48|128,4/*560*/, 49|128,4/*561*/,  // Results = #562
/* 77066*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77071*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 50|128,4/*562*/, 51|128,4/*563*/,  // Results = #564
/* 77081*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77086*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 52|128,4/*564*/, 53|128,4/*565*/,  // Results = #566
/* 77096*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 40|128,4/*552*/, 54|128,4/*566*/,  // Results = #567
/* 77106*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 37|128,4/*549*/, 55|128,4/*567*/,  // Results = #568
/* 77116*/      OPC_EmitInteger, MVT::i32, 62, 
/* 77119*/      OPC_EmitInteger, MVT::i32, 2, 
/* 77122*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 56|128,4/*568*/, 57|128,4/*569*/, 58|128,4/*570*/,  // Results = #571
/* 77134*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #572
/* 77140*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 77144*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 61|128,4/*573*/,  // Results = #574
/* 77152*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 77156*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 62|128,4/*574*/, 63|128,4/*575*/,  // Results = #576
/* 77166*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77169*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 60|128,4/*572*/, 64|128,4/*576*/, 65|128,4/*577*/,  // Results = #578
/* 77181*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77184*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77187*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 66|128,4/*578*/, 67|128,4/*579*/, 68|128,4/*580*/,  // Results = #581
/* 77199*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 77203*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 69|128,4/*581*/, 70|128,4/*582*/,  // Results = #583
/* 77213*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 77217*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 71|128,4/*583*/, 72|128,4/*584*/,  // Results = #585
/* 77227*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 59|128,4/*571*/, 73|128,4/*585*/,  // Results = #586
/* 77237*/      OPC_EmitInteger, MVT::i32, 63, 
/* 77240*/      OPC_EmitInteger, MVT::i32, 1, 
/* 77243*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 75|128,4/*587*/, 76|128,4/*588*/,  // Results = #589
/* 77254*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #590
/* 77260*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 77265*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 79|128,4/*591*/,  // Results = #592
/* 77273*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 77278*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 80|128,4/*592*/, 81|128,4/*593*/,  // Results = #594
/* 77288*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77291*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 78|128,4/*590*/, 82|128,4/*594*/, 83|128,4/*595*/,  // Results = #596
/* 77303*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77306*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77309*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 84|128,4/*596*/, 85|128,4/*597*/, 86|128,4/*598*/,  // Results = #599
/* 77321*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 77326*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 87|128,4/*599*/, 88|128,4/*600*/,  // Results = #601
/* 77336*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 77341*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 89|128,4/*601*/, 90|128,4/*602*/,  // Results = #603
/* 77351*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 77|128,4/*589*/, 91|128,4/*603*/,  // Results = #604
/* 77361*/      OPC_EmitInteger, MVT::i32, 1, 
/* 77364*/      OPC_EmitInteger, MVT::i32, 62, 
/* 77367*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 93|128,4/*605*/, 94|128,4/*606*/,  // Results = #607
/* 77378*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #608
/* 77384*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77389*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 97|128,4/*609*/,  // Results = #610
/* 77397*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77402*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 98|128,4/*610*/, 99|128,4/*611*/,  // Results = #612
/* 77412*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77415*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 96|128,4/*608*/, 100|128,4/*612*/, 101|128,4/*613*/,  // Results = #614
/* 77427*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77430*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77433*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 102|128,4/*614*/, 103|128,4/*615*/, 104|128,4/*616*/,  // Results = #617
/* 77445*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77450*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 105|128,4/*617*/, 106|128,4/*618*/,  // Results = #619
/* 77460*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77465*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 107|128,4/*619*/, 108|128,4/*620*/,  // Results = #621
/* 77475*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 95|128,4/*607*/, 109|128,4/*621*/,  // Results = #622
/* 77485*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 92|128,4/*604*/, 110|128,4/*622*/,  // Results = #623
/* 77495*/      OPC_EmitInteger, MVT::i32, 2, 
/* 77498*/      OPC_EmitInteger, MVT::i32, 61, 
/* 77501*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 111|128,4/*623*/, 112|128,4/*624*/, 113|128,4/*625*/,  // Results = #626
/* 77513*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #627
/* 77519*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 77524*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 116|128,4/*628*/,  // Results = #629
/* 77532*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 77537*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 117|128,4/*629*/, 118|128,4/*630*/,  // Results = #631
/* 77547*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77550*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 115|128,4/*627*/, 119|128,4/*631*/, 120|128,4/*632*/,  // Results = #633
/* 77562*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77565*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77568*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 121|128,4/*633*/, 122|128,4/*634*/, 123|128,4/*635*/,  // Results = #636
/* 77580*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 77585*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 124|128,4/*636*/, 125|128,4/*637*/,  // Results = #638
/* 77595*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 77600*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 126|128,4/*638*/, 127|128,4/*639*/,  // Results = #640
/* 77610*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 114|128,4/*626*/, 0|128,5/*640*/,  // Results = #641
/* 77620*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 74|128,4/*586*/, 1|128,5/*641*/,  // Results = #642
/* 77630*/      OPC_EmitInteger, MVT::i32, 60, 
/* 77633*/      OPC_EmitInteger, MVT::i32, 4, 
/* 77636*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 2|128,5/*642*/, 3|128,5/*643*/, 4|128,5/*644*/,  // Results = #645
/* 77648*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #646
/* 77654*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 77658*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 7|128,5/*647*/,  // Results = #648
/* 77666*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 77670*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 8|128,5/*648*/, 9|128,5/*649*/,  // Results = #650
/* 77680*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77683*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 6|128,5/*646*/, 10|128,5/*650*/, 11|128,5/*651*/,  // Results = #652
/* 77695*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77698*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77701*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 12|128,5/*652*/, 13|128,5/*653*/, 14|128,5/*654*/,  // Results = #655
/* 77713*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 77717*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 15|128,5/*655*/, 16|128,5/*656*/,  // Results = #657
/* 77727*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 77731*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 17|128,5/*657*/, 18|128,5/*658*/,  // Results = #659
/* 77741*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 5|128,5/*645*/, 19|128,5/*659*/,  // Results = #660
/* 77751*/      OPC_EmitInteger, MVT::i32, 63, 
/* 77754*/      OPC_EmitInteger, MVT::i32, 1, 
/* 77757*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 21|128,5/*661*/, 22|128,5/*662*/,  // Results = #663
/* 77768*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #664
/* 77774*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 77779*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 25|128,5/*665*/,  // Results = #666
/* 77787*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 77792*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 26|128,5/*666*/, 27|128,5/*667*/,  // Results = #668
/* 77802*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77805*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 24|128,5/*664*/, 28|128,5/*668*/, 29|128,5/*669*/,  // Results = #670
/* 77817*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77820*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77823*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 30|128,5/*670*/, 31|128,5/*671*/, 32|128,5/*672*/,  // Results = #673
/* 77835*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 77840*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,5/*673*/, 34|128,5/*674*/,  // Results = #675
/* 77850*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 77855*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 35|128,5/*675*/, 36|128,5/*676*/,  // Results = #677
/* 77865*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 23|128,5/*663*/, 37|128,5/*677*/,  // Results = #678
/* 77875*/      OPC_EmitInteger, MVT::i32, 1, 
/* 77878*/      OPC_EmitInteger, MVT::i32, 62, 
/* 77881*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 39|128,5/*679*/, 40|128,5/*680*/,  // Results = #681
/* 77892*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #682
/* 77898*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77903*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 43|128,5/*683*/,  // Results = #684
/* 77911*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77916*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 44|128,5/*684*/, 45|128,5/*685*/,  // Results = #686
/* 77926*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77929*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 42|128,5/*682*/, 46|128,5/*686*/, 47|128,5/*687*/,  // Results = #688
/* 77941*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77944*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77947*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 48|128,5/*688*/, 49|128,5/*689*/, 50|128,5/*690*/,  // Results = #691
/* 77959*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77964*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 51|128,5/*691*/, 52|128,5/*692*/,  // Results = #693
/* 77974*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77979*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 53|128,5/*693*/, 54|128,5/*694*/,  // Results = #695
/* 77989*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 41|128,5/*681*/, 55|128,5/*695*/,  // Results = #696
/* 77999*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 38|128,5/*678*/, 56|128,5/*696*/,  // Results = #697
/* 78009*/      OPC_EmitInteger, MVT::i32, 62, 
/* 78012*/      OPC_EmitInteger, MVT::i32, 2, 
/* 78015*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 57|128,5/*697*/, 58|128,5/*698*/, 59|128,5/*699*/,  // Results = #700
/* 78027*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #701
/* 78033*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 78037*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 62|128,5/*702*/,  // Results = #703
/* 78045*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 78049*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 63|128,5/*703*/, 64|128,5/*704*/,  // Results = #705
/* 78059*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78062*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 61|128,5/*701*/, 65|128,5/*705*/, 66|128,5/*706*/,  // Results = #707
/* 78074*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78077*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78080*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 67|128,5/*707*/, 68|128,5/*708*/, 69|128,5/*709*/,  // Results = #710
/* 78092*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 78096*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 70|128,5/*710*/, 71|128,5/*711*/,  // Results = #712
/* 78106*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 78110*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 72|128,5/*712*/, 73|128,5/*713*/,  // Results = #714
/* 78120*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 60|128,5/*700*/, 74|128,5/*714*/,  // Results = #715
/* 78130*/      OPC_EmitInteger, MVT::i32, 63, 
/* 78133*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78136*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 76|128,5/*716*/, 77|128,5/*717*/,  // Results = #718
/* 78147*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #719
/* 78153*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78158*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80|128,5/*720*/,  // Results = #721
/* 78166*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78171*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81|128,5/*721*/, 82|128,5/*722*/,  // Results = #723
/* 78181*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78184*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 79|128,5/*719*/, 83|128,5/*723*/, 84|128,5/*724*/,  // Results = #725
/* 78196*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78199*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78202*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 85|128,5/*725*/, 86|128,5/*726*/, 87|128,5/*727*/,  // Results = #728
/* 78214*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 78219*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 88|128,5/*728*/, 89|128,5/*729*/,  // Results = #730
/* 78229*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 78234*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 90|128,5/*730*/, 91|128,5/*731*/,  // Results = #732
/* 78244*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 78|128,5/*718*/, 92|128,5/*732*/,  // Results = #733
/* 78254*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78257*/      OPC_EmitInteger, MVT::i32, 62, 
/* 78260*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 94|128,5/*734*/, 95|128,5/*735*/,  // Results = #736
/* 78271*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #737
/* 78277*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 78282*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 98|128,5/*738*/,  // Results = #739
/* 78290*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 78295*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 99|128,5/*739*/, 100|128,5/*740*/,  // Results = #741
/* 78305*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78308*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 97|128,5/*737*/, 101|128,5/*741*/, 102|128,5/*742*/,  // Results = #743
/* 78320*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78323*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78326*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 103|128,5/*743*/, 104|128,5/*744*/, 105|128,5/*745*/,  // Results = #746
/* 78338*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 78343*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 106|128,5/*746*/, 107|128,5/*747*/,  // Results = #748
/* 78353*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 78358*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 108|128,5/*748*/, 109|128,5/*749*/,  // Results = #750
/* 78368*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 96|128,5/*736*/, 110|128,5/*750*/,  // Results = #751
/* 78378*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 93|128,5/*733*/, 111|128,5/*751*/,  // Results = #752
/* 78388*/      OPC_EmitInteger, MVT::i32, 2, 
/* 78391*/      OPC_EmitInteger, MVT::i32, 61, 
/* 78394*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 112|128,5/*752*/, 113|128,5/*753*/, 114|128,5/*754*/,  // Results = #755
/* 78406*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #756
/* 78412*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 78417*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 117|128,5/*757*/,  // Results = #758
/* 78425*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 78430*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 118|128,5/*758*/, 119|128,5/*759*/,  // Results = #760
/* 78440*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78443*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 116|128,5/*756*/, 120|128,5/*760*/, 121|128,5/*761*/,  // Results = #762
/* 78455*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78458*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78461*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 122|128,5/*762*/, 123|128,5/*763*/, 124|128,5/*764*/,  // Results = #765
/* 78473*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 78478*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 125|128,5/*765*/, 126|128,5/*766*/,  // Results = #767
/* 78488*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 78493*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 127|128,5/*767*/, 0|128,6/*768*/,  // Results = #769
/* 78503*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 115|128,5/*755*/, 1|128,6/*769*/,  // Results = #770
/* 78513*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 75|128,5/*715*/, 2|128,6/*770*/,  // Results = #771
/* 78523*/      OPC_EmitInteger, MVT::i32, 4, 
/* 78526*/      OPC_EmitInteger, MVT::i32, 59, 
/* 78529*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 3|128,6/*771*/, 4|128,6/*772*/, 5|128,6/*773*/,  // Results = #774
/* 78541*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #775
/* 78547*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 78552*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 8|128,6/*776*/,  // Results = #777
/* 78560*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 78565*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 9|128,6/*777*/, 10|128,6/*778*/,  // Results = #779
/* 78575*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78578*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 7|128,6/*775*/, 11|128,6/*779*/, 12|128,6/*780*/,  // Results = #781
/* 78590*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78593*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78596*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 13|128,6/*781*/, 14|128,6/*782*/, 15|128,6/*783*/,  // Results = #784
/* 78608*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 78613*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 16|128,6/*784*/, 17|128,6/*785*/,  // Results = #786
/* 78623*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 78628*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 18|128,6/*786*/, 19|128,6/*787*/,  // Results = #788
/* 78638*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 6|128,6/*774*/, 20|128,6/*788*/,  // Results = #789
/* 78648*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 20|128,5/*660*/, 21|128,6/*789*/,  // Results = #790
/* 78658*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78661*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 22|128,6/*790*/, 23|128,6/*791*/,  // Results = #792
/* 78671*/      OPC_EmitInteger, MVT::i32, 8, 
/* 78674*/      OPC_EmitInteger, MVT::i32, 24, 
/* 78677*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78680*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWIMI), 0,
                    MVT::i32, 5/*#Ops*/, 19|128,4/*531*/, 24|128,6/*792*/, 25|128,6/*793*/, 26|128,6/*794*/, 27|128,6/*795*/,  // Results = #796
/* 78696*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78699*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 28|128,6/*796*/, 29|128,6/*797*/,  // Results = #798
/* 78710*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78713*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78716*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 30|128,6/*798*/, 31|128,6/*799*/, 32|128,6/*800*/,  // Results = #801
/* 78728*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #802
/* 78734*/      OPC_EmitInteger, MVT::i32, 63, 
/* 78737*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78740*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 35|128,6/*803*/, 36|128,6/*804*/,  // Results = #805
/* 78751*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #806
/* 78757*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78762*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 39|128,6/*807*/,  // Results = #808
/* 78770*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78775*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 40|128,6/*808*/, 41|128,6/*809*/,  // Results = #810
/* 78785*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78788*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 38|128,6/*806*/, 42|128,6/*810*/, 43|128,6/*811*/,  // Results = #812
/* 78800*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78803*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78806*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 44|128,6/*812*/, 45|128,6/*813*/, 46|128,6/*814*/,  // Results = #815
/* 78818*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 78823*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 47|128,6/*815*/, 48|128,6/*816*/,  // Results = #817
/* 78833*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 78838*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 49|128,6/*817*/, 50|128,6/*818*/,  // Results = #819
/* 78848*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 37|128,6/*805*/, 51|128,6/*819*/,  // Results = #820
/* 78858*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78861*/      OPC_EmitInteger, MVT::i32, 62, 
/* 78864*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 53|128,6/*821*/, 54|128,6/*822*/,  // Results = #823
/* 78875*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #824
/* 78881*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 78886*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 57|128,6/*825*/,  // Results = #826
/* 78894*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 78899*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 58|128,6/*826*/, 59|128,6/*827*/,  // Results = #828
/* 78909*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78912*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 56|128,6/*824*/, 60|128,6/*828*/, 61|128,6/*829*/,  // Results = #830
/* 78924*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78927*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78930*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 62|128,6/*830*/, 63|128,6/*831*/, 64|128,6/*832*/,  // Results = #833
/* 78942*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 78947*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 65|128,6/*833*/, 66|128,6/*834*/,  // Results = #835
/* 78957*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 78962*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 67|128,6/*835*/, 68|128,6/*836*/,  // Results = #837
/* 78972*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 55|128,6/*823*/, 69|128,6/*837*/,  // Results = #838
/* 78982*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 52|128,6/*820*/, 70|128,6/*838*/,  // Results = #839
/* 78992*/      OPC_EmitInteger, MVT::i32, 62, 
/* 78995*/      OPC_EmitInteger, MVT::i32, 2, 
/* 78998*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 71|128,6/*839*/, 72|128,6/*840*/, 73|128,6/*841*/,  // Results = #842
/* 79010*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #843
/* 79016*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 79020*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 76|128,6/*844*/,  // Results = #845
/* 79028*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 79032*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 77|128,6/*845*/, 78|128,6/*846*/,  // Results = #847
/* 79042*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79045*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 75|128,6/*843*/, 79|128,6/*847*/, 80|128,6/*848*/,  // Results = #849
/* 79057*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79060*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79063*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 81|128,6/*849*/, 82|128,6/*850*/, 83|128,6/*851*/,  // Results = #852
/* 79075*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 79079*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 84|128,6/*852*/, 85|128,6/*853*/,  // Results = #854
/* 79089*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 79093*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 86|128,6/*854*/, 87|128,6/*855*/,  // Results = #856
/* 79103*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 74|128,6/*842*/, 88|128,6/*856*/,  // Results = #857
/* 79113*/      OPC_EmitInteger, MVT::i32, 63, 
/* 79116*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79119*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 90|128,6/*858*/, 91|128,6/*859*/,  // Results = #860
/* 79130*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #861
/* 79136*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 79141*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 94|128,6/*862*/,  // Results = #863
/* 79149*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 79154*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 95|128,6/*863*/, 96|128,6/*864*/,  // Results = #865
/* 79164*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79167*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 93|128,6/*861*/, 97|128,6/*865*/, 98|128,6/*866*/,  // Results = #867
/* 79179*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79182*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79185*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 99|128,6/*867*/, 100|128,6/*868*/, 101|128,6/*869*/,  // Results = #870
/* 79197*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79202*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 102|128,6/*870*/, 103|128,6/*871*/,  // Results = #872
/* 79212*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79217*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 104|128,6/*872*/, 105|128,6/*873*/,  // Results = #874
/* 79227*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 92|128,6/*860*/, 106|128,6/*874*/,  // Results = #875
/* 79237*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79240*/      OPC_EmitInteger, MVT::i32, 62, 
/* 79243*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 108|128,6/*876*/, 109|128,6/*877*/,  // Results = #878
/* 79254*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #879
/* 79260*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 79265*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 112|128,6/*880*/,  // Results = #881
/* 79273*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 79278*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 113|128,6/*881*/, 114|128,6/*882*/,  // Results = #883
/* 79288*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79291*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 111|128,6/*879*/, 115|128,6/*883*/, 116|128,6/*884*/,  // Results = #885
/* 79303*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79306*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79309*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 117|128,6/*885*/, 118|128,6/*886*/, 119|128,6/*887*/,  // Results = #888
/* 79321*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 79326*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 120|128,6/*888*/, 121|128,6/*889*/,  // Results = #890
/* 79336*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 79341*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 122|128,6/*890*/, 123|128,6/*891*/,  // Results = #892
/* 79351*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 110|128,6/*878*/, 124|128,6/*892*/,  // Results = #893
/* 79361*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 107|128,6/*875*/, 125|128,6/*893*/,  // Results = #894
/* 79371*/      OPC_EmitInteger, MVT::i32, 2, 
/* 79374*/      OPC_EmitInteger, MVT::i32, 61, 
/* 79377*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 126|128,6/*894*/, 127|128,6/*895*/, 0|128,7/*896*/,  // Results = #897
/* 79389*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #898
/* 79395*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 79400*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 3|128,7/*899*/,  // Results = #900
/* 79408*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 79413*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 4|128,7/*900*/, 5|128,7/*901*/,  // Results = #902
/* 79423*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79426*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 2|128,7/*898*/, 6|128,7/*902*/, 7|128,7/*903*/,  // Results = #904
/* 79438*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79441*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79444*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 8|128,7/*904*/, 9|128,7/*905*/, 10|128,7/*906*/,  // Results = #907
/* 79456*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 79461*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 11|128,7/*907*/, 12|128,7/*908*/,  // Results = #909
/* 79471*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 79476*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 13|128,7/*909*/, 14|128,7/*910*/,  // Results = #911
/* 79486*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 1|128,7/*897*/, 15|128,7/*911*/,  // Results = #912
/* 79496*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 89|128,6/*857*/, 16|128,7/*912*/,  // Results = #913
/* 79506*/      OPC_EmitInteger, MVT::i32, 60, 
/* 79509*/      OPC_EmitInteger, MVT::i32, 4, 
/* 79512*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 17|128,7/*913*/, 18|128,7/*914*/, 19|128,7/*915*/,  // Results = #916
/* 79524*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #917
/* 79530*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 79534*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 22|128,7/*918*/,  // Results = #919
/* 79542*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 79546*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 23|128,7/*919*/, 24|128,7/*920*/,  // Results = #921
/* 79556*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79559*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 21|128,7/*917*/, 25|128,7/*921*/, 26|128,7/*922*/,  // Results = #923
/* 79571*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79574*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79577*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 27|128,7/*923*/, 28|128,7/*924*/, 29|128,7/*925*/,  // Results = #926
/* 79589*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 79593*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 30|128,7/*926*/, 31|128,7/*927*/,  // Results = #928
/* 79603*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 79607*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 32|128,7/*928*/, 33|128,7/*929*/,  // Results = #930
/* 79617*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 20|128,7/*916*/, 34|128,7/*930*/,  // Results = #931
/* 79627*/      OPC_EmitInteger, MVT::i32, 63, 
/* 79630*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79633*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 36|128,7/*932*/, 37|128,7/*933*/,  // Results = #934
/* 79644*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #935
/* 79650*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 79655*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 40|128,7/*936*/,  // Results = #937
/* 79663*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 79668*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 41|128,7/*937*/, 42|128,7/*938*/,  // Results = #939
/* 79678*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79681*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 39|128,7/*935*/, 43|128,7/*939*/, 44|128,7/*940*/,  // Results = #941
/* 79693*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79696*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79699*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 45|128,7/*941*/, 46|128,7/*942*/, 47|128,7/*943*/,  // Results = #944
/* 79711*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79716*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 48|128,7/*944*/, 49|128,7/*945*/,  // Results = #946
/* 79726*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79731*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 50|128,7/*946*/, 51|128,7/*947*/,  // Results = #948
/* 79741*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 38|128,7/*934*/, 52|128,7/*948*/,  // Results = #949
/* 79751*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79754*/      OPC_EmitInteger, MVT::i32, 62, 
/* 79757*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 54|128,7/*950*/, 55|128,7/*951*/,  // Results = #952
/* 79768*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #953
/* 79774*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 79779*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 58|128,7/*954*/,  // Results = #955
/* 79787*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 79792*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 59|128,7/*955*/, 60|128,7/*956*/,  // Results = #957
/* 79802*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79805*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 57|128,7/*953*/, 61|128,7/*957*/, 62|128,7/*958*/,  // Results = #959
/* 79817*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79820*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79823*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 63|128,7/*959*/, 64|128,7/*960*/, 65|128,7/*961*/,  // Results = #962
/* 79835*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 79840*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 66|128,7/*962*/, 67|128,7/*963*/,  // Results = #964
/* 79850*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 79855*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 68|128,7/*964*/, 69|128,7/*965*/,  // Results = #966
/* 79865*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 56|128,7/*952*/, 70|128,7/*966*/,  // Results = #967
/* 79875*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 53|128,7/*949*/, 71|128,7/*967*/,  // Results = #968
/* 79885*/      OPC_EmitInteger, MVT::i32, 62, 
/* 79888*/      OPC_EmitInteger, MVT::i32, 2, 
/* 79891*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 72|128,7/*968*/, 73|128,7/*969*/, 74|128,7/*970*/,  // Results = #971
/* 79903*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #972
/* 79909*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 79913*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 77|128,7/*973*/,  // Results = #974
/* 79921*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 79925*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 78|128,7/*974*/, 79|128,7/*975*/,  // Results = #976
/* 79935*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79938*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 76|128,7/*972*/, 80|128,7/*976*/, 81|128,7/*977*/,  // Results = #978
/* 79950*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79953*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79956*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 82|128,7/*978*/, 83|128,7/*979*/, 84|128,7/*980*/,  // Results = #981
/* 79968*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 79972*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 85|128,7/*981*/, 86|128,7/*982*/,  // Results = #983
/* 79982*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 79986*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 87|128,7/*983*/, 88|128,7/*984*/,  // Results = #985
/* 79996*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 75|128,7/*971*/, 89|128,7/*985*/,  // Results = #986
/* 80006*/      OPC_EmitInteger, MVT::i32, 63, 
/* 80009*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80012*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 91|128,7/*987*/, 92|128,7/*988*/,  // Results = #989
/* 80023*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #990
/* 80029*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80034*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 95|128,7/*991*/,  // Results = #992
/* 80042*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80047*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 96|128,7/*992*/, 97|128,7/*993*/,  // Results = #994
/* 80057*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80060*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 94|128,7/*990*/, 98|128,7/*994*/, 99|128,7/*995*/,  // Results = #996
/* 80072*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80075*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80078*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 100|128,7/*996*/, 101|128,7/*997*/, 102|128,7/*998*/,  // Results = #999
/* 80090*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 80095*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 103|128,7/*999*/, 104|128,7/*1000*/,  // Results = #1001
/* 80105*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 80110*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 105|128,7/*1001*/, 106|128,7/*1002*/,  // Results = #1003
/* 80120*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 93|128,7/*989*/, 107|128,7/*1003*/,  // Results = #1004
/* 80130*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80133*/      OPC_EmitInteger, MVT::i32, 62, 
/* 80136*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 109|128,7/*1005*/, 110|128,7/*1006*/,  // Results = #1007
/* 80147*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1008
/* 80153*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80158*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 113|128,7/*1009*/,  // Results = #1010
/* 80166*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80171*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 114|128,7/*1010*/, 115|128,7/*1011*/,  // Results = #1012
/* 80181*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80184*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 112|128,7/*1008*/, 116|128,7/*1012*/, 117|128,7/*1013*/,  // Results = #1014
/* 80196*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80199*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80202*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 118|128,7/*1014*/, 119|128,7/*1015*/, 120|128,7/*1016*/,  // Results = #1017
/* 80214*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80219*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 121|128,7/*1017*/, 122|128,7/*1018*/,  // Results = #1019
/* 80229*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80234*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 123|128,7/*1019*/, 124|128,7/*1020*/,  // Results = #1021
/* 80244*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 111|128,7/*1007*/, 125|128,7/*1021*/,  // Results = #1022
/* 80254*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 108|128,7/*1004*/, 126|128,7/*1022*/,  // Results = #1023
/* 80264*/      OPC_EmitInteger, MVT::i32, 2, 
/* 80267*/      OPC_EmitInteger, MVT::i32, 61, 
/* 80270*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 127|128,7/*1023*/, 0|128,8/*1024*/, 1|128,8/*1025*/,  // Results = #1026
/* 80282*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1027
/* 80288*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 80293*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 4|128,8/*1028*/,  // Results = #1029
/* 80301*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 80306*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 5|128,8/*1029*/, 6|128,8/*1030*/,  // Results = #1031
/* 80316*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80319*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 3|128,8/*1027*/, 7|128,8/*1031*/, 8|128,8/*1032*/,  // Results = #1033
/* 80331*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80334*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80337*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 9|128,8/*1033*/, 10|128,8/*1034*/, 11|128,8/*1035*/,  // Results = #1036
/* 80349*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 80354*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 12|128,8/*1036*/, 13|128,8/*1037*/,  // Results = #1038
/* 80364*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 80369*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 14|128,8/*1038*/, 15|128,8/*1039*/,  // Results = #1040
/* 80379*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 2|128,8/*1026*/, 16|128,8/*1040*/,  // Results = #1041
/* 80389*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 90|128,7/*986*/, 17|128,8/*1041*/,  // Results = #1042
/* 80399*/      OPC_EmitInteger, MVT::i32, 4, 
/* 80402*/      OPC_EmitInteger, MVT::i32, 59, 
/* 80405*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 18|128,8/*1042*/, 19|128,8/*1043*/, 20|128,8/*1044*/,  // Results = #1045
/* 80417*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1046
/* 80423*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 80428*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 23|128,8/*1047*/,  // Results = #1048
/* 80436*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 80441*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 24|128,8/*1048*/, 25|128,8/*1049*/,  // Results = #1050
/* 80451*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80454*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 22|128,8/*1046*/, 26|128,8/*1050*/, 27|128,8/*1051*/,  // Results = #1052
/* 80466*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80469*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80472*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 28|128,8/*1052*/, 29|128,8/*1053*/, 30|128,8/*1054*/,  // Results = #1055
/* 80484*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 80489*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 31|128,8/*1055*/, 32|128,8/*1056*/,  // Results = #1057
/* 80499*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 80504*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,8/*1057*/, 34|128,8/*1058*/,  // Results = #1059
/* 80514*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 21|128,8/*1045*/, 35|128,8/*1059*/,  // Results = #1060
/* 80524*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 35|128,7/*931*/, 36|128,8/*1060*/,  // Results = #1061
/* 80534*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80537*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80540*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 37|128,8/*1061*/, 38|128,8/*1062*/, 39|128,8/*1063*/,  // Results = #1064
/* 80552*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80555*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 40|128,8/*1064*/, 41|128,8/*1065*/,  // Results = #1066
/* 80565*/      OPC_EmitInteger, MVT::i32, 24, 
/* 80568*/      OPC_EmitInteger, MVT::i32, 0, 
/* 80571*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80574*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 42|128,8/*1066*/, 43|128,8/*1067*/, 44|128,8/*1068*/, 45|128,8/*1069*/,  // Results = #1070
/* 80588*/      OPC_EmitInteger, MVT::i32, 63, 
/* 80591*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80594*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 47|128,8/*1071*/, 48|128,8/*1072*/,  // Results = #1073
/* 80605*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1074
/* 80611*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80616*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 51|128,8/*1075*/,  // Results = #1076
/* 80624*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80629*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 52|128,8/*1076*/, 53|128,8/*1077*/,  // Results = #1078
/* 80639*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80642*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 50|128,8/*1074*/, 54|128,8/*1078*/, 55|128,8/*1079*/,  // Results = #1080
/* 80654*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80657*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80660*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 56|128,8/*1080*/, 57|128,8/*1081*/, 58|128,8/*1082*/,  // Results = #1083
/* 80672*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 80677*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 59|128,8/*1083*/, 60|128,8/*1084*/,  // Results = #1085
/* 80687*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 80692*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 61|128,8/*1085*/, 62|128,8/*1086*/,  // Results = #1087
/* 80702*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 49|128,8/*1073*/, 63|128,8/*1087*/,  // Results = #1088
/* 80712*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80715*/      OPC_EmitInteger, MVT::i32, 62, 
/* 80718*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 65|128,8/*1089*/, 66|128,8/*1090*/,  // Results = #1091
/* 80729*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1092
/* 80735*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80740*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 69|128,8/*1093*/,  // Results = #1094
/* 80748*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80753*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 70|128,8/*1094*/, 71|128,8/*1095*/,  // Results = #1096
/* 80763*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80766*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 68|128,8/*1092*/, 72|128,8/*1096*/, 73|128,8/*1097*/,  // Results = #1098
/* 80778*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80781*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80784*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 74|128,8/*1098*/, 75|128,8/*1099*/, 76|128,8/*1100*/,  // Results = #1101
/* 80796*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80801*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 77|128,8/*1101*/, 78|128,8/*1102*/,  // Results = #1103
/* 80811*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80816*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 79|128,8/*1103*/, 80|128,8/*1104*/,  // Results = #1105
/* 80826*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 67|128,8/*1091*/, 81|128,8/*1105*/,  // Results = #1106
/* 80836*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 64|128,8/*1088*/, 82|128,8/*1106*/,  // Results = #1107
/* 80846*/      OPC_EmitInteger, MVT::i32, 62, 
/* 80849*/      OPC_EmitInteger, MVT::i32, 2, 
/* 80852*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 83|128,8/*1107*/, 84|128,8/*1108*/, 85|128,8/*1109*/,  // Results = #1110
/* 80864*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1111
/* 80870*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 80874*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 88|128,8/*1112*/,  // Results = #1113
/* 80882*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 80886*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 89|128,8/*1113*/, 90|128,8/*1114*/,  // Results = #1115
/* 80896*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80899*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 87|128,8/*1111*/, 91|128,8/*1115*/, 92|128,8/*1116*/,  // Results = #1117
/* 80911*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80914*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80917*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 93|128,8/*1117*/, 94|128,8/*1118*/, 95|128,8/*1119*/,  // Results = #1120
/* 80929*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 80933*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 96|128,8/*1120*/, 97|128,8/*1121*/,  // Results = #1122
/* 80943*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 80947*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 98|128,8/*1122*/, 99|128,8/*1123*/,  // Results = #1124
/* 80957*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 86|128,8/*1110*/, 100|128,8/*1124*/,  // Results = #1125
/* 80967*/      OPC_EmitInteger, MVT::i32, 63, 
/* 80970*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80973*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 102|128,8/*1126*/, 103|128,8/*1127*/,  // Results = #1128
/* 80984*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1129
/* 80990*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80995*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 106|128,8/*1130*/,  // Results = #1131
/* 81003*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81008*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 107|128,8/*1131*/, 108|128,8/*1132*/,  // Results = #1133
/* 81018*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81021*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 105|128,8/*1129*/, 109|128,8/*1133*/, 110|128,8/*1134*/,  // Results = #1135
/* 81033*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81036*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81039*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 111|128,8/*1135*/, 112|128,8/*1136*/, 113|128,8/*1137*/,  // Results = #1138
/* 81051*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81056*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 114|128,8/*1138*/, 115|128,8/*1139*/,  // Results = #1140
/* 81066*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81071*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 116|128,8/*1140*/, 117|128,8/*1141*/,  // Results = #1142
/* 81081*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 104|128,8/*1128*/, 118|128,8/*1142*/,  // Results = #1143
/* 81091*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81094*/      OPC_EmitInteger, MVT::i32, 62, 
/* 81097*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 120|128,8/*1144*/, 121|128,8/*1145*/,  // Results = #1146
/* 81108*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1147
/* 81114*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 81119*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 124|128,8/*1148*/,  // Results = #1149
/* 81127*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 81132*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 125|128,8/*1149*/, 126|128,8/*1150*/,  // Results = #1151
/* 81142*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81145*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 123|128,8/*1147*/, 127|128,8/*1151*/, 0|128,9/*1152*/,  // Results = #1153
/* 81157*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81160*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81163*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 1|128,9/*1153*/, 2|128,9/*1154*/, 3|128,9/*1155*/,  // Results = #1156
/* 81175*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 81180*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 4|128,9/*1156*/, 5|128,9/*1157*/,  // Results = #1158
/* 81190*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 81195*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 6|128,9/*1158*/, 7|128,9/*1159*/,  // Results = #1160
/* 81205*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 122|128,8/*1146*/, 8|128,9/*1160*/,  // Results = #1161
/* 81215*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 119|128,8/*1143*/, 9|128,9/*1161*/,  // Results = #1162
/* 81225*/      OPC_EmitInteger, MVT::i32, 2, 
/* 81228*/      OPC_EmitInteger, MVT::i32, 61, 
/* 81231*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 10|128,9/*1162*/, 11|128,9/*1163*/, 12|128,9/*1164*/,  // Results = #1165
/* 81243*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1166
/* 81249*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 81254*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 15|128,9/*1167*/,  // Results = #1168
/* 81262*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 81267*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 16|128,9/*1168*/, 17|128,9/*1169*/,  // Results = #1170
/* 81277*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81280*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 14|128,9/*1166*/, 18|128,9/*1170*/, 19|128,9/*1171*/,  // Results = #1172
/* 81292*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81295*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81298*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 20|128,9/*1172*/, 21|128,9/*1173*/, 22|128,9/*1174*/,  // Results = #1175
/* 81310*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 81315*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 23|128,9/*1175*/, 24|128,9/*1176*/,  // Results = #1177
/* 81325*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 81330*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 25|128,9/*1177*/, 26|128,9/*1178*/,  // Results = #1179
/* 81340*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 13|128,9/*1165*/, 27|128,9/*1179*/,  // Results = #1180
/* 81350*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 101|128,8/*1125*/, 28|128,9/*1180*/,  // Results = #1181
/* 81360*/      OPC_EmitInteger, MVT::i32, 60, 
/* 81363*/      OPC_EmitInteger, MVT::i32, 4, 
/* 81366*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 29|128,9/*1181*/, 30|128,9/*1182*/, 31|128,9/*1183*/,  // Results = #1184
/* 81378*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1185
/* 81384*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 81388*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 34|128,9/*1186*/,  // Results = #1187
/* 81396*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 81400*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 35|128,9/*1187*/, 36|128,9/*1188*/,  // Results = #1189
/* 81410*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81413*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 33|128,9/*1185*/, 37|128,9/*1189*/, 38|128,9/*1190*/,  // Results = #1191
/* 81425*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81428*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81431*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 39|128,9/*1191*/, 40|128,9/*1192*/, 41|128,9/*1193*/,  // Results = #1194
/* 81443*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 81447*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 42|128,9/*1194*/, 43|128,9/*1195*/,  // Results = #1196
/* 81457*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 81461*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 44|128,9/*1196*/, 45|128,9/*1197*/,  // Results = #1198
/* 81471*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 32|128,9/*1184*/, 46|128,9/*1198*/,  // Results = #1199
/* 81481*/      OPC_EmitInteger, MVT::i32, 63, 
/* 81484*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81487*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 48|128,9/*1200*/, 49|128,9/*1201*/,  // Results = #1202
/* 81498*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1203
/* 81504*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81509*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 52|128,9/*1204*/,  // Results = #1205
/* 81517*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81522*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 53|128,9/*1205*/, 54|128,9/*1206*/,  // Results = #1207
/* 81532*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81535*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 51|128,9/*1203*/, 55|128,9/*1207*/, 56|128,9/*1208*/,  // Results = #1209
/* 81547*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81550*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81553*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 57|128,9/*1209*/, 58|128,9/*1210*/, 59|128,9/*1211*/,  // Results = #1212
/* 81565*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81570*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 60|128,9/*1212*/, 61|128,9/*1213*/,  // Results = #1214
/* 81580*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81585*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 62|128,9/*1214*/, 63|128,9/*1215*/,  // Results = #1216
/* 81595*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 50|128,9/*1202*/, 64|128,9/*1216*/,  // Results = #1217
/* 81605*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81608*/      OPC_EmitInteger, MVT::i32, 62, 
/* 81611*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 66|128,9/*1218*/, 67|128,9/*1219*/,  // Results = #1220
/* 81622*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1221
/* 81628*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 81633*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 70|128,9/*1222*/,  // Results = #1223
/* 81641*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 81646*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 71|128,9/*1223*/, 72|128,9/*1224*/,  // Results = #1225
/* 81656*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81659*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 69|128,9/*1221*/, 73|128,9/*1225*/, 74|128,9/*1226*/,  // Results = #1227
/* 81671*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81674*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81677*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 75|128,9/*1227*/, 76|128,9/*1228*/, 77|128,9/*1229*/,  // Results = #1230
/* 81689*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 81694*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 78|128,9/*1230*/, 79|128,9/*1231*/,  // Results = #1232
/* 81704*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 81709*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 80|128,9/*1232*/, 81|128,9/*1233*/,  // Results = #1234
/* 81719*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 68|128,9/*1220*/, 82|128,9/*1234*/,  // Results = #1235
/* 81729*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 65|128,9/*1217*/, 83|128,9/*1235*/,  // Results = #1236
/* 81739*/      OPC_EmitInteger, MVT::i32, 62, 
/* 81742*/      OPC_EmitInteger, MVT::i32, 2, 
/* 81745*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 84|128,9/*1236*/, 85|128,9/*1237*/, 86|128,9/*1238*/,  // Results = #1239
/* 81757*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1240
/* 81763*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 81767*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 89|128,9/*1241*/,  // Results = #1242
/* 81775*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 81779*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 90|128,9/*1242*/, 91|128,9/*1243*/,  // Results = #1244
/* 81789*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81792*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 88|128,9/*1240*/, 92|128,9/*1244*/, 93|128,9/*1245*/,  // Results = #1246
/* 81804*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81807*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81810*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 94|128,9/*1246*/, 95|128,9/*1247*/, 96|128,9/*1248*/,  // Results = #1249
/* 81822*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 81826*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 97|128,9/*1249*/, 98|128,9/*1250*/,  // Results = #1251
/* 81836*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 81840*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 99|128,9/*1251*/, 100|128,9/*1252*/,  // Results = #1253
/* 81850*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 87|128,9/*1239*/, 101|128,9/*1253*/,  // Results = #1254
/* 81860*/      OPC_EmitInteger, MVT::i32, 63, 
/* 81863*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81866*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 103|128,9/*1255*/, 104|128,9/*1256*/,  // Results = #1257
/* 81877*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1258
/* 81883*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81888*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 107|128,9/*1259*/,  // Results = #1260
/* 81896*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81901*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 108|128,9/*1260*/, 109|128,9/*1261*/,  // Results = #1262
/* 81911*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81914*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 106|128,9/*1258*/, 110|128,9/*1262*/, 111|128,9/*1263*/,  // Results = #1264
/* 81926*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81929*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81932*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 112|128,9/*1264*/, 113|128,9/*1265*/, 114|128,9/*1266*/,  // Results = #1267
/* 81944*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81949*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 115|128,9/*1267*/, 116|128,9/*1268*/,  // Results = #1269
/* 81959*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81964*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 117|128,9/*1269*/, 118|128,9/*1270*/,  // Results = #1271
/* 81974*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 105|128,9/*1257*/, 119|128,9/*1271*/,  // Results = #1272
/* 81984*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81987*/      OPC_EmitInteger, MVT::i32, 62, 
/* 81990*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 121|128,9/*1273*/, 122|128,9/*1274*/,  // Results = #1275
/* 82001*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1276
/* 82007*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82012*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 125|128,9/*1277*/,  // Results = #1278
/* 82020*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82025*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 126|128,9/*1278*/, 127|128,9/*1279*/,  // Results = #1280
/* 82035*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82038*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 124|128,9/*1276*/, 0|128,10/*1280*/, 1|128,10/*1281*/,  // Results = #1282
/* 82050*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82053*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82056*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 2|128,10/*1282*/, 3|128,10/*1283*/, 4|128,10/*1284*/,  // Results = #1285
/* 82068*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 82073*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 5|128,10/*1285*/, 6|128,10/*1286*/,  // Results = #1287
/* 82083*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 82088*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 7|128,10/*1287*/, 8|128,10/*1288*/,  // Results = #1289
/* 82098*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 123|128,9/*1275*/, 9|128,10/*1289*/,  // Results = #1290
/* 82108*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 120|128,9/*1272*/, 10|128,10/*1290*/,  // Results = #1291
/* 82118*/      OPC_EmitInteger, MVT::i32, 2, 
/* 82121*/      OPC_EmitInteger, MVT::i32, 61, 
/* 82124*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 11|128,10/*1291*/, 12|128,10/*1292*/, 13|128,10/*1293*/,  // Results = #1294
/* 82136*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1295
/* 82142*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 82147*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 16|128,10/*1296*/,  // Results = #1297
/* 82155*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 82160*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 17|128,10/*1297*/, 18|128,10/*1298*/,  // Results = #1299
/* 82170*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82173*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 15|128,10/*1295*/, 19|128,10/*1299*/, 20|128,10/*1300*/,  // Results = #1301
/* 82185*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82188*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82191*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 21|128,10/*1301*/, 22|128,10/*1302*/, 23|128,10/*1303*/,  // Results = #1304
/* 82203*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 82208*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 24|128,10/*1304*/, 25|128,10/*1305*/,  // Results = #1306
/* 82218*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 82223*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 26|128,10/*1306*/, 27|128,10/*1307*/,  // Results = #1308
/* 82233*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 14|128,10/*1294*/, 28|128,10/*1308*/,  // Results = #1309
/* 82243*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 102|128,9/*1254*/, 29|128,10/*1309*/,  // Results = #1310
/* 82253*/      OPC_EmitInteger, MVT::i32, 4, 
/* 82256*/      OPC_EmitInteger, MVT::i32, 59, 
/* 82259*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 30|128,10/*1310*/, 31|128,10/*1311*/, 32|128,10/*1312*/,  // Results = #1313
/* 82271*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1314
/* 82277*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 82282*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 35|128,10/*1315*/,  // Results = #1316
/* 82290*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 82295*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 36|128,10/*1316*/, 37|128,10/*1317*/,  // Results = #1318
/* 82305*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82308*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 34|128,10/*1314*/, 38|128,10/*1318*/, 39|128,10/*1319*/,  // Results = #1320
/* 82320*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82323*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82326*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 40|128,10/*1320*/, 41|128,10/*1321*/, 42|128,10/*1322*/,  // Results = #1323
/* 82338*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 82343*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 43|128,10/*1323*/, 44|128,10/*1324*/,  // Results = #1325
/* 82353*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 82358*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 45|128,10/*1325*/, 46|128,10/*1326*/,  // Results = #1327
/* 82368*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,10/*1313*/, 47|128,10/*1327*/,  // Results = #1328
/* 82378*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 47|128,9/*1199*/, 48|128,10/*1328*/,  // Results = #1329
/* 82388*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82391*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82394*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 49|128,10/*1329*/, 50|128,10/*1330*/, 51|128,10/*1331*/,  // Results = #1332
/* 82406*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82409*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 52|128,10/*1332*/, 53|128,10/*1333*/,  // Results = #1334
/* 82419*/      OPC_EmitInteger, MVT::i32, 8, 
/* 82422*/      OPC_EmitInteger, MVT::i32, 8, 
/* 82425*/      OPC_EmitInteger, MVT::i32, 15, 
/* 82428*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWIMI), 0,
                    MVT::i32, 5/*#Ops*/, 46|128,8/*1070*/, 54|128,10/*1334*/, 55|128,10/*1335*/, 56|128,10/*1336*/, 57|128,10/*1337*/,  // Results = #1338
/* 82444*/      OPC_EmitInteger, MVT::i32, 63, 
/* 82447*/      OPC_EmitInteger, MVT::i32, 1, 
/* 82450*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 59|128,10/*1339*/, 60|128,10/*1340*/,  // Results = #1341
/* 82461*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1342
/* 82467*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 82472*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 63|128,10/*1343*/,  // Results = #1344
/* 82480*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 82485*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 64|128,10/*1344*/, 65|128,10/*1345*/,  // Results = #1346
/* 82495*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82498*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 62|128,10/*1342*/, 66|128,10/*1346*/, 67|128,10/*1347*/,  // Results = #1348
/* 82510*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82513*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82516*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 68|128,10/*1348*/, 69|128,10/*1349*/, 70|128,10/*1350*/,  // Results = #1351
/* 82528*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 82533*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 71|128,10/*1351*/, 72|128,10/*1352*/,  // Results = #1353
/* 82543*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 82548*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 73|128,10/*1353*/, 74|128,10/*1354*/,  // Results = #1355
/* 82558*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 61|128,10/*1341*/, 75|128,10/*1355*/,  // Results = #1356
/* 82568*/      OPC_EmitInteger, MVT::i32, 1, 
/* 82571*/      OPC_EmitInteger, MVT::i32, 62, 
/* 82574*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 77|128,10/*1357*/, 78|128,10/*1358*/,  // Results = #1359
/* 82585*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1360
/* 82591*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82596*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 81|128,10/*1361*/,  // Results = #1362
/* 82604*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82609*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 82|128,10/*1362*/, 83|128,10/*1363*/,  // Results = #1364
/* 82619*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82622*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 80|128,10/*1360*/, 84|128,10/*1364*/, 85|128,10/*1365*/,  // Results = #1366
/* 82634*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82637*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82640*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 86|128,10/*1366*/, 87|128,10/*1367*/, 88|128,10/*1368*/,  // Results = #1369
/* 82652*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 82657*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 89|128,10/*1369*/, 90|128,10/*1370*/,  // Results = #1371
/* 82667*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 82672*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 91|128,10/*1371*/, 92|128,10/*1372*/,  // Results = #1373
/* 82682*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 79|128,10/*1359*/, 93|128,10/*1373*/,  // Results = #1374
/* 82692*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 76|128,10/*1356*/, 94|128,10/*1374*/,  // Results = #1375
/* 82702*/      OPC_EmitInteger, MVT::i32, 62, 
/* 82705*/      OPC_EmitInteger, MVT::i32, 2, 
/* 82708*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 95|128,10/*1375*/, 96|128,10/*1376*/, 97|128,10/*1377*/,  // Results = #1378
/* 82720*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1379
/* 82726*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 82730*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 100|128,10/*1380*/,  // Results = #1381
/* 82738*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 82742*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 101|128,10/*1381*/, 102|128,10/*1382*/,  // Results = #1383
/* 82752*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82755*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 99|128,10/*1379*/, 103|128,10/*1383*/, 104|128,10/*1384*/,  // Results = #1385
/* 82767*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82770*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82773*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 105|128,10/*1385*/, 106|128,10/*1386*/, 107|128,10/*1387*/,  // Results = #1388
/* 82785*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 82789*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 108|128,10/*1388*/, 109|128,10/*1389*/,  // Results = #1390
/* 82799*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 82803*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 110|128,10/*1390*/, 111|128,10/*1391*/,  // Results = #1392
/* 82813*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 98|128,10/*1378*/, 112|128,10/*1392*/,  // Results = #1393
/* 82823*/      OPC_EmitInteger, MVT::i32, 63, 
/* 82826*/      OPC_EmitInteger, MVT::i32, 1, 
/* 82829*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 114|128,10/*1394*/, 115|128,10/*1395*/,  // Results = #1396
/* 82840*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1397
/* 82846*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 82851*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 118|128,10/*1398*/,  // Results = #1399
/* 82859*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 82864*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 119|128,10/*1399*/, 120|128,10/*1400*/,  // Results = #1401
/* 82874*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82877*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 117|128,10/*1397*/, 121|128,10/*1401*/, 122|128,10/*1402*/,  // Results = #1403
/* 82889*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82892*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82895*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 123|128,10/*1403*/, 124|128,10/*1404*/, 125|128,10/*1405*/,  // Results = #1406
/* 82907*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 82912*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 126|128,10/*1406*/, 127|128,10/*1407*/,  // Results = #1408
/* 82922*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 82927*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 0|128,11/*1408*/, 1|128,11/*1409*/,  // Results = #1410
/* 82937*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 116|128,10/*1396*/, 2|128,11/*1410*/,  // Results = #1411
/* 82947*/      OPC_EmitInteger, MVT::i32, 1, 
/* 82950*/      OPC_EmitInteger, MVT::i32, 62, 
/* 82953*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 4|128,11/*1412*/, 5|128,11/*1413*/,  // Results = #1414
/* 82964*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1415
/* 82970*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82975*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 8|128,11/*1416*/,  // Results = #1417
/* 82983*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82988*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 9|128,11/*1417*/, 10|128,11/*1418*/,  // Results = #1419
/* 82998*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83001*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 7|128,11/*1415*/, 11|128,11/*1419*/, 12|128,11/*1420*/,  // Results = #1421
/* 83013*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83016*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83019*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 13|128,11/*1421*/, 14|128,11/*1422*/, 15|128,11/*1423*/,  // Results = #1424
/* 83031*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83036*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 16|128,11/*1424*/, 17|128,11/*1425*/,  // Results = #1426
/* 83046*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83051*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 18|128,11/*1426*/, 19|128,11/*1427*/,  // Results = #1428
/* 83061*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 6|128,11/*1414*/, 20|128,11/*1428*/,  // Results = #1429
/* 83071*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 3|128,11/*1411*/, 21|128,11/*1429*/,  // Results = #1430
/* 83081*/      OPC_EmitInteger, MVT::i32, 2, 
/* 83084*/      OPC_EmitInteger, MVT::i32, 61, 
/* 83087*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 22|128,11/*1430*/, 23|128,11/*1431*/, 24|128,11/*1432*/,  // Results = #1433
/* 83099*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1434
/* 83105*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 83110*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 27|128,11/*1435*/,  // Results = #1436
/* 83118*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 83123*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 28|128,11/*1436*/, 29|128,11/*1437*/,  // Results = #1438
/* 83133*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83136*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 26|128,11/*1434*/, 30|128,11/*1438*/, 31|128,11/*1439*/,  // Results = #1440
/* 83148*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83151*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83154*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 32|128,11/*1440*/, 33|128,11/*1441*/, 34|128,11/*1442*/,  // Results = #1443
/* 83166*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 83171*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 35|128,11/*1443*/, 36|128,11/*1444*/,  // Results = #1445
/* 83181*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 83186*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 37|128,11/*1445*/, 38|128,11/*1446*/,  // Results = #1447
/* 83196*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 25|128,11/*1433*/, 39|128,11/*1447*/,  // Results = #1448
/* 83206*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 113|128,10/*1393*/, 40|128,11/*1448*/,  // Results = #1449
/* 83216*/      OPC_EmitInteger, MVT::i32, 60, 
/* 83219*/      OPC_EmitInteger, MVT::i32, 4, 
/* 83222*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 41|128,11/*1449*/, 42|128,11/*1450*/, 43|128,11/*1451*/,  // Results = #1452
/* 83234*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1453
/* 83240*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 83244*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 46|128,11/*1454*/,  // Results = #1455
/* 83252*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 83256*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 47|128,11/*1455*/, 48|128,11/*1456*/,  // Results = #1457
/* 83266*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83269*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 45|128,11/*1453*/, 49|128,11/*1457*/, 50|128,11/*1458*/,  // Results = #1459
/* 83281*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83284*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83287*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 51|128,11/*1459*/, 52|128,11/*1460*/, 53|128,11/*1461*/,  // Results = #1462
/* 83299*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 83303*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 54|128,11/*1462*/, 55|128,11/*1463*/,  // Results = #1464
/* 83313*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 83317*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 56|128,11/*1464*/, 57|128,11/*1465*/,  // Results = #1466
/* 83327*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 44|128,11/*1452*/, 58|128,11/*1466*/,  // Results = #1467
/* 83337*/      OPC_EmitInteger, MVT::i32, 63, 
/* 83340*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83343*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 60|128,11/*1468*/, 61|128,11/*1469*/,  // Results = #1470
/* 83354*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1471
/* 83360*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 83365*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 64|128,11/*1472*/,  // Results = #1473
/* 83373*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 83378*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 65|128,11/*1473*/, 66|128,11/*1474*/,  // Results = #1475
/* 83388*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83391*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 63|128,11/*1471*/, 67|128,11/*1475*/, 68|128,11/*1476*/,  // Results = #1477
/* 83403*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83406*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83409*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 69|128,11/*1477*/, 70|128,11/*1478*/, 71|128,11/*1479*/,  // Results = #1480
/* 83421*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 83426*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 72|128,11/*1480*/, 73|128,11/*1481*/,  // Results = #1482
/* 83436*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 83441*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 74|128,11/*1482*/, 75|128,11/*1483*/,  // Results = #1484
/* 83451*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 62|128,11/*1470*/, 76|128,11/*1484*/,  // Results = #1485
/* 83461*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83464*/      OPC_EmitInteger, MVT::i32, 62, 
/* 83467*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 78|128,11/*1486*/, 79|128,11/*1487*/,  // Results = #1488
/* 83478*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1489
/* 83484*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 83489*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 82|128,11/*1490*/,  // Results = #1491
/* 83497*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 83502*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 83|128,11/*1491*/, 84|128,11/*1492*/,  // Results = #1493
/* 83512*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83515*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 81|128,11/*1489*/, 85|128,11/*1493*/, 86|128,11/*1494*/,  // Results = #1495
/* 83527*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83530*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83533*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 87|128,11/*1495*/, 88|128,11/*1496*/, 89|128,11/*1497*/,  // Results = #1498
/* 83545*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83550*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 90|128,11/*1498*/, 91|128,11/*1499*/,  // Results = #1500
/* 83560*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83565*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 92|128,11/*1500*/, 93|128,11/*1501*/,  // Results = #1502
/* 83575*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 80|128,11/*1488*/, 94|128,11/*1502*/,  // Results = #1503
/* 83585*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 77|128,11/*1485*/, 95|128,11/*1503*/,  // Results = #1504
/* 83595*/      OPC_EmitInteger, MVT::i32, 62, 
/* 83598*/      OPC_EmitInteger, MVT::i32, 2, 
/* 83601*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 96|128,11/*1504*/, 97|128,11/*1505*/, 98|128,11/*1506*/,  // Results = #1507
/* 83613*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1508
/* 83619*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 83623*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 101|128,11/*1509*/,  // Results = #1510
/* 83631*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 83635*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 102|128,11/*1510*/, 103|128,11/*1511*/,  // Results = #1512
/* 83645*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83648*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 100|128,11/*1508*/, 104|128,11/*1512*/, 105|128,11/*1513*/,  // Results = #1514
/* 83660*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83663*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83666*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 106|128,11/*1514*/, 107|128,11/*1515*/, 108|128,11/*1516*/,  // Results = #1517
/* 83678*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 83682*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 109|128,11/*1517*/, 110|128,11/*1518*/,  // Results = #1519
/* 83692*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 83696*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 111|128,11/*1519*/, 112|128,11/*1520*/,  // Results = #1521
/* 83706*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 99|128,11/*1507*/, 113|128,11/*1521*/,  // Results = #1522
/* 83716*/      OPC_EmitInteger, MVT::i32, 63, 
/* 83719*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83722*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 115|128,11/*1523*/, 116|128,11/*1524*/,  // Results = #1525
/* 83733*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1526
/* 83739*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 83744*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 119|128,11/*1527*/,  // Results = #1528
/* 83752*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 83757*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 120|128,11/*1528*/, 121|128,11/*1529*/,  // Results = #1530
/* 83767*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83770*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 118|128,11/*1526*/, 122|128,11/*1530*/, 123|128,11/*1531*/,  // Results = #1532
/* 83782*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83785*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83788*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 124|128,11/*1532*/, 125|128,11/*1533*/, 126|128,11/*1534*/,  // Results = #1535
/* 83800*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 83805*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 127|128,11/*1535*/, 0|128,12/*1536*/,  // Results = #1537
/* 83815*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 83820*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 1|128,12/*1537*/, 2|128,12/*1538*/,  // Results = #1539
/* 83830*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 117|128,11/*1525*/, 3|128,12/*1539*/,  // Results = #1540
/* 83840*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83843*/      OPC_EmitInteger, MVT::i32, 62, 
/* 83846*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 5|128,12/*1541*/, 6|128,12/*1542*/,  // Results = #1543
/* 83857*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1544
/* 83863*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 83868*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 9|128,12/*1545*/,  // Results = #1546
/* 83876*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 83881*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 10|128,12/*1546*/, 11|128,12/*1547*/,  // Results = #1548
/* 83891*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83894*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 8|128,12/*1544*/, 12|128,12/*1548*/, 13|128,12/*1549*/,  // Results = #1550
/* 83906*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83909*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83912*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 14|128,12/*1550*/, 15|128,12/*1551*/, 16|128,12/*1552*/,  // Results = #1553
/* 83924*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83929*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 17|128,12/*1553*/, 18|128,12/*1554*/,  // Results = #1555
/* 83939*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83944*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 19|128,12/*1555*/, 20|128,12/*1556*/,  // Results = #1557
/* 83954*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 7|128,12/*1543*/, 21|128,12/*1557*/,  // Results = #1558
/* 83964*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 4|128,12/*1540*/, 22|128,12/*1558*/,  // Results = #1559
/* 83974*/      OPC_EmitInteger, MVT::i32, 2, 
/* 83977*/      OPC_EmitInteger, MVT::i32, 61, 
/* 83980*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 23|128,12/*1559*/, 24|128,12/*1560*/, 25|128,12/*1561*/,  // Results = #1562
/* 83992*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1563
/* 83998*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 84003*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 28|128,12/*1564*/,  // Results = #1565
/* 84011*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 84016*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 29|128,12/*1565*/, 30|128,12/*1566*/,  // Results = #1567
/* 84026*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84029*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 27|128,12/*1563*/, 31|128,12/*1567*/, 32|128,12/*1568*/,  // Results = #1569
/* 84041*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84044*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84047*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 33|128,12/*1569*/, 34|128,12/*1570*/, 35|128,12/*1571*/,  // Results = #1572
/* 84059*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 84064*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 36|128,12/*1572*/, 37|128,12/*1573*/,  // Results = #1574
/* 84074*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 84079*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 38|128,12/*1574*/, 39|128,12/*1575*/,  // Results = #1576
/* 84089*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 26|128,12/*1562*/, 40|128,12/*1576*/,  // Results = #1577
/* 84099*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 114|128,11/*1522*/, 41|128,12/*1577*/,  // Results = #1578
/* 84109*/      OPC_EmitInteger, MVT::i32, 4, 
/* 84112*/      OPC_EmitInteger, MVT::i32, 59, 
/* 84115*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 42|128,12/*1578*/, 43|128,12/*1579*/, 44|128,12/*1580*/,  // Results = #1581
/* 84127*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1582
/* 84133*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 84138*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 47|128,12/*1583*/,  // Results = #1584
/* 84146*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 84151*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 48|128,12/*1584*/, 49|128,12/*1585*/,  // Results = #1586
/* 84161*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84164*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 46|128,12/*1582*/, 50|128,12/*1586*/, 51|128,12/*1587*/,  // Results = #1588
/* 84176*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84179*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84182*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 52|128,12/*1588*/, 53|128,12/*1589*/, 54|128,12/*1590*/,  // Results = #1591
/* 84194*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 84199*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 55|128,12/*1591*/, 56|128,12/*1592*/,  // Results = #1593
/* 84209*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 84214*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 57|128,12/*1593*/, 58|128,12/*1594*/,  // Results = #1595
/* 84224*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 45|128,12/*1581*/, 59|128,12/*1595*/,  // Results = #1596
/* 84234*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 59|128,11/*1467*/, 60|128,12/*1596*/,  // Results = #1597
/* 84244*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84247*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84250*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 61|128,12/*1597*/, 62|128,12/*1598*/, 63|128,12/*1599*/,  // Results = #1600
/* 84262*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84265*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 64|128,12/*1600*/, 65|128,12/*1601*/,  // Results = #1602
/* 84275*/      OPC_EmitInteger, MVT::i32, 8, 
/* 84278*/      OPC_EmitInteger, MVT::i32, 24, 
/* 84281*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84284*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWIMI), 0,
                    MVT::i32, 5/*#Ops*/, 58|128,10/*1338*/, 66|128,12/*1602*/, 67|128,12/*1603*/, 68|128,12/*1604*/, 69|128,12/*1605*/,  // Results = #1606
/* 84300*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84303*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 34|128,6/*802*/, 70|128,12/*1606*/, 71|128,12/*1607*/,  // Results = #1608
/* 84315*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,6/*801*/, 72|128,12/*1608*/, 
                // Src: (bitreverse:{ *:[i64] } i64:{ *:[i64] }:$A) - Complexity = 3
                // Dst: (OR8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWIMI:{ *:[i32] } (RLWIMI:{ *:[i32] } (RLWINM:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 60:{ *:[i32] }, 4:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 3855:{ *:[i64] }), 3855:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 4:{ *:[i32] }, 59:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 61680:{ *:[i64] }), 61680:{ *:[i64] }))), sub_32:{ *:[i32] }), 24:{ *:[i32] }, 0:{ *:[i32] }, 31:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 60:{ *:[i32] }, 4:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 3855:{ *:[i64] }), 3855:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 4:{ *:[i32] }, 59:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 61680:{ *:[i64] }), 61680:{ *:[i64] }))), sub_32:{ *:[i32] }), 8:{ *:[i32] }, 8:{ *:[i32] }, 15:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 60:{ *:[i32] }, 4:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 3855:{ *:[i64] }), 3855:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 4:{ *:[i32] }, 59:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 61680:{ *:[i64] }), 61680:{ *:[i64] }))), sub_32:{ *:[i32] }), 8:{ *:[i32] }, 24:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (RLWIMI:{ *:[i32] } (RLWIMI:{ *:[i32] } (RLWINM:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 60:{ *:[i32] }, 4:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 3855:{ *:[i64] }), 3855:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 4:{ *:[i32] }, 59:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 61680:{ *:[i64] }), 61680:{ *:[i64] }))), 32:{ *:[i32] }, 32:{ *:[i32] }), sub_32:{ *:[i32] }), 24:{ *:[i32] }, 0:{ *:[i32] }, 31:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 60:{ *:[i32] }, 4:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 3855:{ *:[i64] }), 3855:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 4:{ *:[i32] }, 59:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 61680:{ *:[i64] }), 61680:{ *:[i64] }))), 32:{ *:[i32] }, 32:{ *:[i32] }), sub_32:{ *:[i32] }), 8:{ *:[i32] }, 8:{ *:[i32] }, 15:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i32] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 60:{ *:[i32] }, 4:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 3855:{ *:[i32] }), 3855:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 3855:{ *:[i64] }), 3855:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 62:{ *:[i32] }, 2:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 13107:{ *:[i32] }), 13107:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 13107:{ *:[i64] }), 13107:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } (OR8:{ *:[i64] } (AND8:{ *:[i64] } (RLDICL:{ *:[i64] } ?:{ *:[i64] }:$A, 63:{ *:[i32] }, 1:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 21845:{ *:[i32] }), 21845:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 21845:{ *:[i64] }), 21845:{ *:[i64] })), (AND8:{ *:[i64] } (RLDICR:{ *:[i64] } ?:{ *:[i64] }:$A, 1:{ *:[i32] }, 62:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 43690:{ *:[i32] }), 43690:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 43690:{ *:[i64] }), 43690:{ *:[i64] }))), 2:{ *:[i32] }, 61:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 52428:{ *:[i32] }), 52428:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 52428:{ *:[i64] }), 52428:{ *:[i64] }))), 4:{ *:[i32] }, 59:{ *:[i32] }), (ORI8:{ *:[i64] } (ORIS8:{ *:[i64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (ORI:{ *:[i32] } (LIS:{ *:[i32] } 61680:{ *:[i32] }), 61680:{ *:[i32] }), sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] }), 61680:{ *:[i64] }), 61680:{ *:[i64] }))), 32:{ *:[i32] }, 32:{ *:[i32] }), sub_32:{ *:[i32] }), 8:{ *:[i32] }, 24:{ *:[i32] }, 31:{ *:[i32] }), sub_32:{ *:[i32] }))
/* 84325*/    0, // EndSwitchType
/* 84326*/  /*SwitchOpcode*/ 13|128,21/*2701*/, TARGET_VAL(ISD::UINT_TO_FP),// ->87031
/* 84330*/    OPC_Scope, 24|128,20/*2584*/, /*->86917*/ // 2 children in Scope
/* 84333*/      OPC_MoveChild0,
/* 84334*/      OPC_Scope, 77|128,2/*333*/, /*->84670*/ // 7 children in Scope
/* 84337*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 84341*/        OPC_MoveChild0,
/* 84342*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 84345*/        OPC_RecordChild0, // #0 = $src
/* 84346*/        OPC_CheckChild0Type, MVT::v8i16,
/* 84348*/        OPC_Scope, 39, /*->84389*/ // 8 children in Scope
/* 84350*/          OPC_CheckChild1Integer, 0, 
/* 84352*/          OPC_MoveParent,
/* 84353*/          OPC_CheckType, MVT::i32,
/* 84355*/          OPC_MoveParent,
/* 84356*/          OPC_CheckType, MVT::f128,
/* 84358*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84360*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84363*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84371*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84374*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84382*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 84389*/        /*Scope*/ 39, /*->84429*/
/* 84390*/          OPC_CheckChild1Integer, 1, 
/* 84392*/          OPC_MoveParent,
/* 84393*/          OPC_CheckType, MVT::i32,
/* 84395*/          OPC_MoveParent,
/* 84396*/          OPC_CheckType, MVT::f128,
/* 84398*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84400*/          OPC_EmitInteger, MVT::i32, 2, 
/* 84403*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84411*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84414*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84422*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 1:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 84429*/        /*Scope*/ 39, /*->84469*/
/* 84430*/          OPC_CheckChild1Integer, 2, 
/* 84432*/          OPC_MoveParent,
/* 84433*/          OPC_CheckType, MVT::i32,
/* 84435*/          OPC_MoveParent,
/* 84436*/          OPC_CheckType, MVT::f128,
/* 84438*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84440*/          OPC_EmitInteger, MVT::i32, 4, 
/* 84443*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84451*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84454*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84462*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 2:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 4:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 84469*/        /*Scope*/ 39, /*->84509*/
/* 84470*/          OPC_CheckChild1Integer, 3, 
/* 84472*/          OPC_MoveParent,
/* 84473*/          OPC_CheckType, MVT::i32,
/* 84475*/          OPC_MoveParent,
/* 84476*/          OPC_CheckType, MVT::f128,
/* 84478*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84480*/          OPC_EmitInteger, MVT::i32, 6, 
/* 84483*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84491*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84494*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84502*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 3:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 6:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 84509*/        /*Scope*/ 39, /*->84549*/
/* 84510*/          OPC_CheckChild1Integer, 4, 
/* 84512*/          OPC_MoveParent,
/* 84513*/          OPC_CheckType, MVT::i32,
/* 84515*/          OPC_MoveParent,
/* 84516*/          OPC_CheckType, MVT::f128,
/* 84518*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84520*/          OPC_EmitInteger, MVT::i32, 8, 
/* 84523*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84531*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84534*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84542*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 4:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 8:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 84549*/        /*Scope*/ 39, /*->84589*/
/* 84550*/          OPC_CheckChild1Integer, 5, 
/* 84552*/          OPC_MoveParent,
/* 84553*/          OPC_CheckType, MVT::i32,
/* 84555*/          OPC_MoveParent,
/* 84556*/          OPC_CheckType, MVT::f128,
/* 84558*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84560*/          OPC_EmitInteger, MVT::i32, 10, 
/* 84563*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84571*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84574*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84582*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 5:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 10:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 84589*/        /*Scope*/ 39, /*->84629*/
/* 84590*/          OPC_CheckChild1Integer, 6, 
/* 84592*/          OPC_MoveParent,
/* 84593*/          OPC_CheckType, MVT::i32,
/* 84595*/          OPC_MoveParent,
/* 84596*/          OPC_CheckType, MVT::f128,
/* 84598*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84600*/          OPC_EmitInteger, MVT::i32, 12, 
/* 84603*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84611*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84614*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84622*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 6:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 12:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 84629*/        /*Scope*/ 39, /*->84669*/
/* 84630*/          OPC_CheckChild1Integer, 7, 
/* 84632*/          OPC_MoveParent,
/* 84633*/          OPC_CheckType, MVT::i32,
/* 84635*/          OPC_MoveParent,
/* 84636*/          OPC_CheckType, MVT::f128,
/* 84638*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84640*/          OPC_EmitInteger, MVT::i32, 14, 
/* 84643*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84651*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84654*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84662*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 7:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 14:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 84669*/        0, /*End of Scope*/
/* 84670*/      /*Scope*/ 12|128,5/*652*/, /*->85324*/
/* 84672*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/* 84675*/        OPC_MoveChild0,
/* 84676*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 84679*/        OPC_RecordChild0, // #0 = $src
/* 84680*/        OPC_CheckChild0Type, MVT::v16i8,
/* 84682*/        OPC_Scope, 39, /*->84723*/ // 16 children in Scope
/* 84684*/          OPC_CheckChild1Integer, 0, 
/* 84686*/          OPC_MoveParent,
/* 84687*/          OPC_CheckType, MVT::i32,
/* 84689*/          OPC_MoveParent,
/* 84690*/          OPC_CheckType, MVT::f128,
/* 84692*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84694*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84697*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84705*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84708*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84716*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 84723*/        /*Scope*/ 39, /*->84763*/
/* 84724*/          OPC_CheckChild1Integer, 1, 
/* 84726*/          OPC_MoveParent,
/* 84727*/          OPC_CheckType, MVT::i32,
/* 84729*/          OPC_MoveParent,
/* 84730*/          OPC_CheckType, MVT::f128,
/* 84732*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84734*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84737*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84745*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84748*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84756*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 1:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 1:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 84763*/        /*Scope*/ 39, /*->84803*/
/* 84764*/          OPC_CheckChild1Integer, 2, 
/* 84766*/          OPC_MoveParent,
/* 84767*/          OPC_CheckType, MVT::i32,
/* 84769*/          OPC_MoveParent,
/* 84770*/          OPC_CheckType, MVT::f128,
/* 84772*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84774*/          OPC_EmitInteger, MVT::i32, 2, 
/* 84777*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84785*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84788*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84796*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 2:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 84803*/        /*Scope*/ 39, /*->84843*/
/* 84804*/          OPC_CheckChild1Integer, 3, 
/* 84806*/          OPC_MoveParent,
/* 84807*/          OPC_CheckType, MVT::i32,
/* 84809*/          OPC_MoveParent,
/* 84810*/          OPC_CheckType, MVT::f128,
/* 84812*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84814*/          OPC_EmitInteger, MVT::i32, 3, 
/* 84817*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84825*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84828*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84836*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 3:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 3:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 84843*/        /*Scope*/ 39, /*->84883*/
/* 84844*/          OPC_CheckChild1Integer, 4, 
/* 84846*/          OPC_MoveParent,
/* 84847*/          OPC_CheckType, MVT::i32,
/* 84849*/          OPC_MoveParent,
/* 84850*/          OPC_CheckType, MVT::f128,
/* 84852*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84854*/          OPC_EmitInteger, MVT::i32, 4, 
/* 84857*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84865*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84868*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84876*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 4:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 4:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 84883*/        /*Scope*/ 39, /*->84923*/
/* 84884*/          OPC_CheckChild1Integer, 5, 
/* 84886*/          OPC_MoveParent,
/* 84887*/          OPC_CheckType, MVT::i32,
/* 84889*/          OPC_MoveParent,
/* 84890*/          OPC_CheckType, MVT::f128,
/* 84892*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84894*/          OPC_EmitInteger, MVT::i32, 5, 
/* 84897*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84905*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84908*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84916*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 5:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 5:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 84923*/        /*Scope*/ 39, /*->84963*/
/* 84924*/          OPC_CheckChild1Integer, 6, 
/* 84926*/          OPC_MoveParent,
/* 84927*/          OPC_CheckType, MVT::i32,
/* 84929*/          OPC_MoveParent,
/* 84930*/          OPC_CheckType, MVT::f128,
/* 84932*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84934*/          OPC_EmitInteger, MVT::i32, 6, 
/* 84937*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84945*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84948*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84956*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 6:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 6:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 84963*/        /*Scope*/ 39, /*->85003*/
/* 84964*/          OPC_CheckChild1Integer, 7, 
/* 84966*/          OPC_MoveParent,
/* 84967*/          OPC_CheckType, MVT::i32,
/* 84969*/          OPC_MoveParent,
/* 84970*/          OPC_CheckType, MVT::f128,
/* 84972*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 84974*/          OPC_EmitInteger, MVT::i32, 7, 
/* 84977*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 84985*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 84988*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 84996*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 7:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 7:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85003*/        /*Scope*/ 39, /*->85043*/
/* 85004*/          OPC_CheckChild1Integer, 8, 
/* 85006*/          OPC_MoveParent,
/* 85007*/          OPC_CheckType, MVT::i32,
/* 85009*/          OPC_MoveParent,
/* 85010*/          OPC_CheckType, MVT::f128,
/* 85012*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 85014*/          OPC_EmitInteger, MVT::i32, 8, 
/* 85017*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85025*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85028*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85036*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 8:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 8:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85043*/        /*Scope*/ 39, /*->85083*/
/* 85044*/          OPC_CheckChild1Integer, 9, 
/* 85046*/          OPC_MoveParent,
/* 85047*/          OPC_CheckType, MVT::i32,
/* 85049*/          OPC_MoveParent,
/* 85050*/          OPC_CheckType, MVT::f128,
/* 85052*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 85054*/          OPC_EmitInteger, MVT::i32, 9, 
/* 85057*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85065*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85068*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85076*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 9:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 9:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85083*/        /*Scope*/ 39, /*->85123*/
/* 85084*/          OPC_CheckChild1Integer, 10, 
/* 85086*/          OPC_MoveParent,
/* 85087*/          OPC_CheckType, MVT::i32,
/* 85089*/          OPC_MoveParent,
/* 85090*/          OPC_CheckType, MVT::f128,
/* 85092*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 85094*/          OPC_EmitInteger, MVT::i32, 10, 
/* 85097*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85105*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85108*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85116*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 10:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 10:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85123*/        /*Scope*/ 39, /*->85163*/
/* 85124*/          OPC_CheckChild1Integer, 11, 
/* 85126*/          OPC_MoveParent,
/* 85127*/          OPC_CheckType, MVT::i32,
/* 85129*/          OPC_MoveParent,
/* 85130*/          OPC_CheckType, MVT::f128,
/* 85132*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 85134*/          OPC_EmitInteger, MVT::i32, 11, 
/* 85137*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85145*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85148*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85156*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 11:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 11:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85163*/        /*Scope*/ 39, /*->85203*/
/* 85164*/          OPC_CheckChild1Integer, 12, 
/* 85166*/          OPC_MoveParent,
/* 85167*/          OPC_CheckType, MVT::i32,
/* 85169*/          OPC_MoveParent,
/* 85170*/          OPC_CheckType, MVT::f128,
/* 85172*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 85174*/          OPC_EmitInteger, MVT::i32, 12, 
/* 85177*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85185*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85188*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85196*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 12:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 12:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85203*/        /*Scope*/ 39, /*->85243*/
/* 85204*/          OPC_CheckChild1Integer, 13, 
/* 85206*/          OPC_MoveParent,
/* 85207*/          OPC_CheckType, MVT::i32,
/* 85209*/          OPC_MoveParent,
/* 85210*/          OPC_CheckType, MVT::f128,
/* 85212*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 85214*/          OPC_EmitInteger, MVT::i32, 13, 
/* 85217*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85225*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85228*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85236*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 13:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 13:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85243*/        /*Scope*/ 39, /*->85283*/
/* 85244*/          OPC_CheckChild1Integer, 14, 
/* 85246*/          OPC_MoveParent,
/* 85247*/          OPC_CheckType, MVT::i32,
/* 85249*/          OPC_MoveParent,
/* 85250*/          OPC_CheckType, MVT::f128,
/* 85252*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 85254*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85257*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85265*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85268*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85276*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 14:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 14:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85283*/        /*Scope*/ 39, /*->85323*/
/* 85284*/          OPC_CheckChild1Integer, 15, 
/* 85286*/          OPC_MoveParent,
/* 85287*/          OPC_CheckType, MVT::i32,
/* 85289*/          OPC_MoveParent,
/* 85290*/          OPC_CheckType, MVT::f128,
/* 85292*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 85294*/          OPC_EmitInteger, MVT::i32, 15, 
/* 85297*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85305*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85308*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85316*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 15:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 15:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85323*/        0, /*End of Scope*/
/* 85324*/      /*Scope*/ 77|128,2/*333*/, /*->85659*/
/* 85326*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 85330*/        OPC_MoveChild0,
/* 85331*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 85334*/        OPC_RecordChild0, // #0 = $src
/* 85335*/        OPC_CheckChild0Type, MVT::v8i16,
/* 85337*/        OPC_Scope, 39, /*->85378*/ // 8 children in Scope
/* 85339*/          OPC_CheckChild1Integer, 0, 
/* 85341*/          OPC_MoveParent,
/* 85342*/          OPC_CheckType, MVT::i32,
/* 85344*/          OPC_MoveParent,
/* 85345*/          OPC_CheckType, MVT::f128,
/* 85347*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85349*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85352*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85360*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85363*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85371*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 14:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 85378*/        /*Scope*/ 39, /*->85418*/
/* 85379*/          OPC_CheckChild1Integer, 1, 
/* 85381*/          OPC_MoveParent,
/* 85382*/          OPC_CheckType, MVT::i32,
/* 85384*/          OPC_MoveParent,
/* 85385*/          OPC_CheckType, MVT::f128,
/* 85387*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85389*/          OPC_EmitInteger, MVT::i32, 12, 
/* 85392*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85400*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85403*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85411*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 1:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 12:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 85418*/        /*Scope*/ 39, /*->85458*/
/* 85419*/          OPC_CheckChild1Integer, 2, 
/* 85421*/          OPC_MoveParent,
/* 85422*/          OPC_CheckType, MVT::i32,
/* 85424*/          OPC_MoveParent,
/* 85425*/          OPC_CheckType, MVT::f128,
/* 85427*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85429*/          OPC_EmitInteger, MVT::i32, 10, 
/* 85432*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85440*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85443*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85451*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 2:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 10:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 85458*/        /*Scope*/ 39, /*->85498*/
/* 85459*/          OPC_CheckChild1Integer, 3, 
/* 85461*/          OPC_MoveParent,
/* 85462*/          OPC_CheckType, MVT::i32,
/* 85464*/          OPC_MoveParent,
/* 85465*/          OPC_CheckType, MVT::f128,
/* 85467*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85469*/          OPC_EmitInteger, MVT::i32, 8, 
/* 85472*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85480*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85483*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85491*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 3:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 8:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 85498*/        /*Scope*/ 39, /*->85538*/
/* 85499*/          OPC_CheckChild1Integer, 4, 
/* 85501*/          OPC_MoveParent,
/* 85502*/          OPC_CheckType, MVT::i32,
/* 85504*/          OPC_MoveParent,
/* 85505*/          OPC_CheckType, MVT::f128,
/* 85507*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85509*/          OPC_EmitInteger, MVT::i32, 6, 
/* 85512*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85520*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85523*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85531*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 4:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 6:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 85538*/        /*Scope*/ 39, /*->85578*/
/* 85539*/          OPC_CheckChild1Integer, 5, 
/* 85541*/          OPC_MoveParent,
/* 85542*/          OPC_CheckType, MVT::i32,
/* 85544*/          OPC_MoveParent,
/* 85545*/          OPC_CheckType, MVT::f128,
/* 85547*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85549*/          OPC_EmitInteger, MVT::i32, 4, 
/* 85552*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85560*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85563*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85571*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 5:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 4:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 85578*/        /*Scope*/ 39, /*->85618*/
/* 85579*/          OPC_CheckChild1Integer, 6, 
/* 85581*/          OPC_MoveParent,
/* 85582*/          OPC_CheckType, MVT::i32,
/* 85584*/          OPC_MoveParent,
/* 85585*/          OPC_CheckType, MVT::f128,
/* 85587*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85589*/          OPC_EmitInteger, MVT::i32, 2, 
/* 85592*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85600*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85603*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85611*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 6:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 85618*/        /*Scope*/ 39, /*->85658*/
/* 85619*/          OPC_CheckChild1Integer, 7, 
/* 85621*/          OPC_MoveParent,
/* 85622*/          OPC_CheckType, MVT::i32,
/* 85624*/          OPC_MoveParent,
/* 85625*/          OPC_CheckType, MVT::f128,
/* 85627*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85629*/          OPC_EmitInteger, MVT::i32, 0, 
/* 85632*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85640*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85643*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85651*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 7:{ *:[iPTR] }), 65535:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUH:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v8i16] }:$src), sub_64:{ *:[i32] }))
/* 85658*/        0, /*End of Scope*/
/* 85659*/      /*Scope*/ 12|128,5/*652*/, /*->86313*/
/* 85661*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/* 85664*/        OPC_MoveChild0,
/* 85665*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 85668*/        OPC_RecordChild0, // #0 = $src
/* 85669*/        OPC_CheckChild0Type, MVT::v16i8,
/* 85671*/        OPC_Scope, 39, /*->85712*/ // 16 children in Scope
/* 85673*/          OPC_CheckChild1Integer, 0, 
/* 85675*/          OPC_MoveParent,
/* 85676*/          OPC_CheckType, MVT::i32,
/* 85678*/          OPC_MoveParent,
/* 85679*/          OPC_CheckType, MVT::f128,
/* 85681*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85683*/          OPC_EmitInteger, MVT::i32, 15, 
/* 85686*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85694*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85697*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85705*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 15:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85712*/        /*Scope*/ 39, /*->85752*/
/* 85713*/          OPC_CheckChild1Integer, 1, 
/* 85715*/          OPC_MoveParent,
/* 85716*/          OPC_CheckType, MVT::i32,
/* 85718*/          OPC_MoveParent,
/* 85719*/          OPC_CheckType, MVT::f128,
/* 85721*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85723*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85726*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85734*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85737*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85745*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 1:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 14:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85752*/        /*Scope*/ 39, /*->85792*/
/* 85753*/          OPC_CheckChild1Integer, 2, 
/* 85755*/          OPC_MoveParent,
/* 85756*/          OPC_CheckType, MVT::i32,
/* 85758*/          OPC_MoveParent,
/* 85759*/          OPC_CheckType, MVT::f128,
/* 85761*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85763*/          OPC_EmitInteger, MVT::i32, 13, 
/* 85766*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85774*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85777*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85785*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 2:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 13:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85792*/        /*Scope*/ 39, /*->85832*/
/* 85793*/          OPC_CheckChild1Integer, 3, 
/* 85795*/          OPC_MoveParent,
/* 85796*/          OPC_CheckType, MVT::i32,
/* 85798*/          OPC_MoveParent,
/* 85799*/          OPC_CheckType, MVT::f128,
/* 85801*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85803*/          OPC_EmitInteger, MVT::i32, 12, 
/* 85806*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85814*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85817*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85825*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 3:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 12:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85832*/        /*Scope*/ 39, /*->85872*/
/* 85833*/          OPC_CheckChild1Integer, 4, 
/* 85835*/          OPC_MoveParent,
/* 85836*/          OPC_CheckType, MVT::i32,
/* 85838*/          OPC_MoveParent,
/* 85839*/          OPC_CheckType, MVT::f128,
/* 85841*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85843*/          OPC_EmitInteger, MVT::i32, 11, 
/* 85846*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85854*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85857*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85865*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 4:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 11:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85872*/        /*Scope*/ 39, /*->85912*/
/* 85873*/          OPC_CheckChild1Integer, 5, 
/* 85875*/          OPC_MoveParent,
/* 85876*/          OPC_CheckType, MVT::i32,
/* 85878*/          OPC_MoveParent,
/* 85879*/          OPC_CheckType, MVT::f128,
/* 85881*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85883*/          OPC_EmitInteger, MVT::i32, 10, 
/* 85886*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85894*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85897*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85905*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 5:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 10:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85912*/        /*Scope*/ 39, /*->85952*/
/* 85913*/          OPC_CheckChild1Integer, 6, 
/* 85915*/          OPC_MoveParent,
/* 85916*/          OPC_CheckType, MVT::i32,
/* 85918*/          OPC_MoveParent,
/* 85919*/          OPC_CheckType, MVT::f128,
/* 85921*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85923*/          OPC_EmitInteger, MVT::i32, 9, 
/* 85926*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85934*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85937*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85945*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 6:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 9:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85952*/        /*Scope*/ 39, /*->85992*/
/* 85953*/          OPC_CheckChild1Integer, 7, 
/* 85955*/          OPC_MoveParent,
/* 85956*/          OPC_CheckType, MVT::i32,
/* 85958*/          OPC_MoveParent,
/* 85959*/          OPC_CheckType, MVT::f128,
/* 85961*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 85963*/          OPC_EmitInteger, MVT::i32, 8, 
/* 85966*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 85974*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 85977*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 85985*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 7:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 8:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 85992*/        /*Scope*/ 39, /*->86032*/
/* 85993*/          OPC_CheckChild1Integer, 8, 
/* 85995*/          OPC_MoveParent,
/* 85996*/          OPC_CheckType, MVT::i32,
/* 85998*/          OPC_MoveParent,
/* 85999*/          OPC_CheckType, MVT::f128,
/* 86001*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86003*/          OPC_EmitInteger, MVT::i32, 7, 
/* 86006*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 86014*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86017*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86025*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 8:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 7:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 86032*/        /*Scope*/ 39, /*->86072*/
/* 86033*/          OPC_CheckChild1Integer, 9, 
/* 86035*/          OPC_MoveParent,
/* 86036*/          OPC_CheckType, MVT::i32,
/* 86038*/          OPC_MoveParent,
/* 86039*/          OPC_CheckType, MVT::f128,
/* 86041*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86043*/          OPC_EmitInteger, MVT::i32, 6, 
/* 86046*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 86054*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86057*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86065*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 9:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 6:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 86072*/        /*Scope*/ 39, /*->86112*/
/* 86073*/          OPC_CheckChild1Integer, 10, 
/* 86075*/          OPC_MoveParent,
/* 86076*/          OPC_CheckType, MVT::i32,
/* 86078*/          OPC_MoveParent,
/* 86079*/          OPC_CheckType, MVT::f128,
/* 86081*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86083*/          OPC_EmitInteger, MVT::i32, 5, 
/* 86086*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 86094*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86097*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86105*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 10:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 5:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 86112*/        /*Scope*/ 39, /*->86152*/
/* 86113*/          OPC_CheckChild1Integer, 11, 
/* 86115*/          OPC_MoveParent,
/* 86116*/          OPC_CheckType, MVT::i32,
/* 86118*/          OPC_MoveParent,
/* 86119*/          OPC_CheckType, MVT::f128,
/* 86121*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86123*/          OPC_EmitInteger, MVT::i32, 4, 
/* 86126*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 86134*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86137*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86145*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 11:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 4:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 86152*/        /*Scope*/ 39, /*->86192*/
/* 86153*/          OPC_CheckChild1Integer, 12, 
/* 86155*/          OPC_MoveParent,
/* 86156*/          OPC_CheckType, MVT::i32,
/* 86158*/          OPC_MoveParent,
/* 86159*/          OPC_CheckType, MVT::f128,
/* 86161*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86163*/          OPC_EmitInteger, MVT::i32, 3, 
/* 86166*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 86174*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86177*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86185*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 12:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 3:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 86192*/        /*Scope*/ 39, /*->86232*/
/* 86193*/          OPC_CheckChild1Integer, 13, 
/* 86195*/          OPC_MoveParent,
/* 86196*/          OPC_CheckType, MVT::i32,
/* 86198*/          OPC_MoveParent,
/* 86199*/          OPC_CheckType, MVT::f128,
/* 86201*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86203*/          OPC_EmitInteger, MVT::i32, 2, 
/* 86206*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 86214*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86217*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86225*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 13:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 86232*/        /*Scope*/ 39, /*->86272*/
/* 86233*/          OPC_CheckChild1Integer, 14, 
/* 86235*/          OPC_MoveParent,
/* 86236*/          OPC_CheckType, MVT::i32,
/* 86238*/          OPC_MoveParent,
/* 86239*/          OPC_CheckType, MVT::f128,
/* 86241*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86243*/          OPC_EmitInteger, MVT::i32, 1, 
/* 86246*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 86254*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86257*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86265*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 14:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 1:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 86272*/        /*Scope*/ 39, /*->86312*/
/* 86273*/          OPC_CheckChild1Integer, 15, 
/* 86275*/          OPC_MoveParent,
/* 86276*/          OPC_CheckType, MVT::i32,
/* 86278*/          OPC_MoveParent,
/* 86279*/          OPC_CheckType, MVT::f128,
/* 86281*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86283*/          OPC_EmitInteger, MVT::i32, 0, 
/* 86286*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 86294*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86297*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86305*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (and:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 15:{ *:[iPTR] }), 255:{ *:[i32] })) - Complexity = 419
                    // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTRACTUB:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v16i8] }:$src), sub_64:{ *:[i32] }))
/* 86312*/        0, /*End of Scope*/
/* 86313*/      /*Scope*/ 29|128,1/*157*/, /*->86472*/
/* 86315*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86318*/        OPC_RecordMemRef,
/* 86319*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 86320*/        OPC_RecordChild1, // #1 = $src
/* 86321*/        OPC_CheckPredicate, 19, // Predicate_unindexedload
/* 86323*/        OPC_Scope, 56, /*->86381*/ // 3 children in Scope
/* 86325*/          OPC_CheckPredicate, 24, // Predicate_load
/* 86327*/          OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->86354
/* 86330*/            OPC_MoveParent,
/* 86331*/            OPC_CheckType, MVT::f128,
/* 86333*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 86335*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 86338*/            OPC_EmitMergeInputChains1_0,
/* 86339*/            OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86347*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (uint_to_fp:{ *:[f128] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XSCVUDQP:{ *:[f128] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src))
/* 86354*/          /*SwitchType*/ 24, MVT::i64,// ->86380
/* 86356*/            OPC_MoveParent,
/* 86357*/            OPC_CheckType, MVT::f128,
/* 86359*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 86361*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 86364*/            OPC_EmitMergeInputChains1_0,
/* 86365*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSD), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86373*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (uint_to_fp:{ *:[f128] } (ld:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XSCVUDQP:{ *:[f128] } (LXSD:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src))
/* 86380*/          0, // EndSwitchType
/* 86381*/        /*Scope*/ 60, /*->86442*/
/* 86382*/          OPC_CheckPredicate, 20, // Predicate_zextload
/* 86384*/          OPC_CheckType, MVT::i32,
/* 86386*/          OPC_Scope, 26, /*->86414*/ // 2 children in Scope
/* 86388*/            OPC_CheckPredicate, 23, // Predicate_zextloadi16
/* 86390*/            OPC_MoveParent,
/* 86391*/            OPC_CheckType, MVT::f128,
/* 86393*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 86395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 86398*/            OPC_EmitMergeInputChains1_0,
/* 86399*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86407*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (uint_to_fp:{ *:[f128] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 416
                      // Dst: (XSCVUDQP:{ *:[f128] } (LXSIHZX:{ *:[f64] } xaddr:{ *:[iPTR] }:$src))
/* 86414*/          /*Scope*/ 26, /*->86441*/
/* 86415*/            OPC_CheckPredicate, 21, // Predicate_zextloadi8
/* 86417*/            OPC_MoveParent,
/* 86418*/            OPC_CheckType, MVT::f128,
/* 86420*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 86422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 86425*/            OPC_EmitMergeInputChains1_0,
/* 86426*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86434*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (uint_to_fp:{ *:[f128] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 416
                      // Dst: (XSCVUDQP:{ *:[f128] } (LXSIBZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src))
/* 86441*/          0, /*End of Scope*/
/* 86442*/        /*Scope*/ 28, /*->86471*/
/* 86443*/          OPC_CheckPredicate, 24, // Predicate_load
/* 86445*/          OPC_CheckType, MVT::i64,
/* 86447*/          OPC_MoveParent,
/* 86448*/          OPC_CheckType, MVT::f128,
/* 86450*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 86452*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 86455*/          OPC_EmitMergeInputChains1_0,
/* 86456*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSDX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86464*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                    // Dst: (XSCVUDQP:{ *:[f128] } (LXSDX:{ *:[f64] } xaddr:{ *:[iPTR] }:$src))
/* 86471*/        0, /*End of Scope*/
/* 86472*/      /*Scope*/ 84|128,2/*340*/, /*->86814*/
/* 86474*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 86477*/        OPC_RecordChild0, // #0 = $src
/* 86478*/        OPC_Scope, 114, /*->86594*/ // 4 children in Scope
/* 86480*/          OPC_CheckChild1Integer, 0, 
/* 86482*/          OPC_SwitchType /*2 cases */, 59, MVT::i64,// ->86544
/* 86485*/            OPC_MoveParent,
/* 86486*/            OPC_CheckType, MVT::f128,
/* 86488*/            OPC_Scope, 20, /*->86510*/ // 2 children in Scope
/* 86490*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 86492*/              OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 86495*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86503*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                            MVT::f128, 1/*#Ops*/, 2, 
                        // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$src, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVUDQP:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$src, VFRC:{ *:[i32] }))
/* 86510*/            /*Scope*/ 32, /*->86543*/
/* 86511*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86513*/              OPC_EmitInteger, MVT::i32, 3, 
/* 86516*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 86525*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86528*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86536*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                            MVT::f128, 1/*#Ops*/, 4, 
                        // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$src, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$src, ?:{ *:[v2i64] }:$src, 3:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 86543*/            0, /*End of Scope*/
/* 86544*/          /*SwitchType*/ 47, MVT::i32,// ->86593
/* 86546*/            OPC_MoveParent,
/* 86547*/            OPC_CheckType, MVT::f128,
/* 86549*/            OPC_Scope, 20, /*->86571*/ // 2 children in Scope
/* 86551*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 86553*/              OPC_EmitInteger, MVT::i32, 0, 
/* 86556*/              OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86564*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                            MVT::f128, 1/*#Ops*/, 2, 
                        // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$src, 0:{ *:[i32] }))
/* 86571*/            /*Scope*/ 20, /*->86592*/
/* 86572*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86574*/              OPC_EmitInteger, MVT::i32, 12, 
/* 86577*/              OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86585*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                            MVT::f128, 1/*#Ops*/, 2, 
                        // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$src, 12:{ *:[i32] }))
/* 86592*/            0, /*End of Scope*/
/* 86593*/          0, // EndSwitchType
/* 86594*/        /*Scope*/ 114, /*->86709*/
/* 86595*/          OPC_CheckChild1Integer, 1, 
/* 86597*/          OPC_SwitchType /*2 cases */, 47, MVT::i32,// ->86647
/* 86600*/            OPC_MoveParent,
/* 86601*/            OPC_CheckType, MVT::f128,
/* 86603*/            OPC_Scope, 20, /*->86625*/ // 2 children in Scope
/* 86605*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 86607*/              OPC_EmitInteger, MVT::i32, 4, 
/* 86610*/              OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86618*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                            MVT::f128, 1/*#Ops*/, 2, 
                        // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$src, 4:{ *:[i32] }))
/* 86625*/            /*Scope*/ 20, /*->86646*/
/* 86626*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86628*/              OPC_EmitInteger, MVT::i32, 8, 
/* 86631*/              OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86639*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                            MVT::f128, 1/*#Ops*/, 2, 
                        // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$src, 8:{ *:[i32] }))
/* 86646*/            0, /*End of Scope*/
/* 86647*/          /*SwitchType*/ 59, MVT::i64,// ->86708
/* 86649*/            OPC_MoveParent,
/* 86650*/            OPC_CheckType, MVT::f128,
/* 86652*/            OPC_Scope, 20, /*->86674*/ // 2 children in Scope
/* 86654*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86656*/              OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 86659*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86667*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                            MVT::f128, 1/*#Ops*/, 2, 
                        // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$src, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVUDQP:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$src, VFRC:{ *:[i32] }))
/* 86674*/            /*Scope*/ 32, /*->86707*/
/* 86675*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 86677*/              OPC_EmitInteger, MVT::i32, 3, 
/* 86680*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 86689*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86692*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 86700*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                            MVT::f128, 1/*#Ops*/, 4, 
                        // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$src, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVUDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$src, ?:{ *:[v2i64] }:$src, 3:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 86707*/            0, /*End of Scope*/
/* 86708*/          0, // EndSwitchType
/* 86709*/        /*Scope*/ 51, /*->86761*/
/* 86710*/          OPC_CheckChild1Integer, 2, 
/* 86712*/          OPC_CheckType, MVT::i32,
/* 86714*/          OPC_MoveParent,
/* 86715*/          OPC_CheckType, MVT::f128,
/* 86717*/          OPC_Scope, 20, /*->86739*/ // 2 children in Scope
/* 86719*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 86721*/            OPC_EmitInteger, MVT::i32, 8, 
/* 86724*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86732*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                          MVT::f128, 1/*#Ops*/, 2, 
                      // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 2:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$src, 8:{ *:[i32] }))
/* 86739*/          /*Scope*/ 20, /*->86760*/
/* 86740*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86742*/            OPC_EmitInteger, MVT::i32, 4, 
/* 86745*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86753*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                          MVT::f128, 1/*#Ops*/, 2, 
                      // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 2:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$src, 4:{ *:[i32] }))
/* 86760*/          0, /*End of Scope*/
/* 86761*/        /*Scope*/ 51, /*->86813*/
/* 86762*/          OPC_CheckChild1Integer, 3, 
/* 86764*/          OPC_CheckType, MVT::i32,
/* 86766*/          OPC_MoveParent,
/* 86767*/          OPC_CheckType, MVT::f128,
/* 86769*/          OPC_Scope, 20, /*->86791*/ // 2 children in Scope
/* 86771*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 86773*/            OPC_EmitInteger, MVT::i32, 12, 
/* 86776*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86784*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                          MVT::f128, 1/*#Ops*/, 2, 
                      // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 3:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$src, 12:{ *:[i32] }))
/* 86791*/          /*Scope*/ 20, /*->86812*/
/* 86792*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86794*/            OPC_EmitInteger, MVT::i32, 0, 
/* 86797*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86805*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                          MVT::f128, 1/*#Ops*/, 2, 
                      // Src: (uint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 3:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$src, 0:{ *:[i32] }))
/* 86812*/          0, /*End of Scope*/
/* 86813*/        0, /*End of Scope*/
/* 86814*/      /*Scope*/ 101, /*->86916*/
/* 86815*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 86818*/        OPC_RecordChild0, // #0 = $src
/* 86819*/        OPC_CheckChild0Type, MVT::f64,
/* 86821*/        OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->86836
/* 86824*/          OPC_MoveParent,
/* 86825*/          OPC_CheckType, MVT::f128,
/* 86827*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 86829*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f128] } (PPCmfvsr:{ *:[i64] } f64:{ *:[f64] }:$src)) - Complexity = 406
                    // Dst: (XSCVUDQP:{ *:[f128] } ?:{ *:[f64] }:$src)
/* 86836*/        /*SwitchType*/ 77, MVT::i32,// ->86915
/* 86838*/          OPC_MoveParent,
/* 86839*/          OPC_CheckType, MVT::f128,
/* 86841*/          OPC_Scope, 35, /*->86878*/ // 2 children in Scope
/* 86843*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 86845*/            OPC_EmitInteger, MVT::i64, 1, 
/* 86848*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86851*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 86860*/            OPC_EmitInteger, MVT::i32, 4, 
/* 86863*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 86871*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                          MVT::f128, 1/*#Ops*/, 5, 
                      // Src: (uint_to_fp:{ *:[f128] } (PPCmfvsr:{ *:[i32] } f64:{ *:[f64] }:$src)) - Complexity = 406
                      // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } (SUBREG_TO_REG:{ *:[v4i32] } 1:{ *:[i64] }, ?:{ *:[f64] }:$src, sub_64:{ *:[i32] }), 4:{ *:[i32] }))
/* 86878*/          /*Scope*/ 35, /*->86914*/
/* 86879*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 86881*/            OPC_EmitInteger, MVT::i64, 1, 
/* 86884*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 86887*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 86896*/            OPC_EmitInteger, MVT::i32, 8, 
/* 86899*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 86907*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                          MVT::f128, 1/*#Ops*/, 5, 
                      // Src: (uint_to_fp:{ *:[f128] } (PPCmfvsr:{ *:[i32] } f64:{ *:[f64] }:$src)) - Complexity = 406
                      // Dst: (XSCVUDQP:{ *:[f128] } (XXEXTRACTUW:{ *:[f64] } (SUBREG_TO_REG:{ *:[v4i32] } 1:{ *:[i64] }, ?:{ *:[f64] }:$src, sub_64:{ *:[i32] }), 8:{ *:[i32] }))
/* 86914*/          0, /*End of Scope*/
/* 86915*/        0, // EndSwitchType
/* 86916*/      0, /*End of Scope*/
/* 86917*/    /*Scope*/ 112, /*->87030*/
/* 86918*/      OPC_RecordChild0, // #0 = $src
/* 86919*/      OPC_Scope, 24, /*->86945*/ // 4 children in Scope
/* 86921*/        OPC_CheckChild0Type, MVT::i64,
/* 86923*/        OPC_CheckType, MVT::f128,
/* 86925*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 86927*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 86930*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 86938*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                      MVT::f128, 1/*#Ops*/, 2, 
                  // Src: (uint_to_fp:{ *:[f128] } i64:{ *:[i64] }:$src) - Complexity = 403
                  // Dst: (XSCVUDQP:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[i64] }:$src, VFRC:{ *:[i32] }))
/* 86945*/      /*Scope*/ 44, /*->86990*/
/* 86946*/        OPC_CheckChild0Type, MVT::i32,
/* 86948*/        OPC_SwitchType /*3 cases */, 16, MVT::f128,// ->86967
/* 86951*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 86953*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 86960*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0,
                        MVT::f128, 1/*#Ops*/, 1, 
                    // Src: (uint_to_fp:{ *:[f128] } i32:{ *:[i32] }:$src) - Complexity = 403
                    // Dst: (XSCVUDQP:{ *:[f128] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$src))
/* 86967*/        /*SwitchType*/ 9, MVT::f64,// ->86978
/* 86969*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 86971*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDCFUI), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f64] } i32:{ *:[i32] }:$RB) - Complexity = 3
                    // Dst: (EFDCFUI:{ *:[f64] } i32:{ *:[i32] }:$RB)
/* 86978*/        /*SwitchType*/ 9, MVT::f32,// ->86989
/* 86980*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 86982*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSCFUI), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[f32] } i32:{ *:[i32] }:$RB) - Complexity = 3
                    // Dst: (EFSCFUI:{ *:[f32] } i32:{ *:[i32] }:$RB)
/* 86989*/        0, // EndSwitchType
/* 86990*/      /*Scope*/ 11, /*->87002*/
/* 86991*/        OPC_CheckType, MVT::v2f64,
/* 86993*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 86995*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVUXDDP), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (uint_to_fp:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$XB) - Complexity = 403
                  // Dst: (XVCVUXDDP:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$XB)
/* 87002*/      /*Scope*/ 26, /*->87029*/
/* 87003*/        OPC_CheckType, MVT::v4f32,
/* 87005*/        OPC_CheckChild0Type, MVT::v4i32,
/* 87007*/        OPC_Scope, 9, /*->87018*/ // 2 children in Scope
/* 87009*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 87011*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVUXWSP), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$XB) - Complexity = 403
                    // Dst: (XVCVUXWSP:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$XB)
/* 87018*/        /*Scope*/ 9, /*->87028*/
/* 87019*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 87021*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFUX_0), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (uint_to_fp:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$vA) - Complexity = 3
                    // Dst: (VCFUX_0:{ *:[v4f32] } ?:{ *:[v4i32] }:$vA)
/* 87028*/        0, /*End of Scope*/
/* 87029*/      0, /*End of Scope*/
/* 87030*/    0, /*End of Scope*/
/* 87031*/  /*SwitchOpcode*/ 38, TARGET_VAL(PPCISD::LXSIZX),// ->87072
/* 87034*/    OPC_RecordNode, // #0 = 'PPClxsizx' chained node
/* 87035*/    OPC_RecordChild1, // #1 = $src
/* 87036*/    OPC_Scope, 16, /*->87054*/ // 2 children in Scope
/* 87038*/      OPC_CheckChild2Integer, 1, 
/* 87040*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 87042*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 87045*/      OPC_EmitMergeInputChains1_0,
/* 87046*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain,
                    MVT::f64, 2/*#Ops*/, 2, 3, 
                // Src: (PPClxsizx:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src, 1:{ *:[iPTR] }) - Complexity = 417
                // Dst: (LXSIBZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)
/* 87054*/    /*Scope*/ 16, /*->87071*/
/* 87055*/      OPC_CheckChild2Integer, 2, 
/* 87057*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 87059*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 87062*/      OPC_EmitMergeInputChains1_0,
/* 87063*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain,
                    MVT::f64, 2/*#Ops*/, 2, 3, 
                // Src: (PPClxsizx:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src, 2:{ *:[iPTR] }) - Complexity = 417
                // Dst: (LXSIHZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)
/* 87071*/    0, /*End of Scope*/
/* 87072*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::FP_ROUND),// ->87224
/* 87076*/    OPC_Scope, 50, /*->87128*/ // 2 children in Scope
/* 87078*/      OPC_MoveChild0,
/* 87079*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87082*/      OPC_RecordMemRef,
/* 87083*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 87084*/      OPC_RecordChild1, // #1 = $src
/* 87085*/      OPC_CheckPredicate, 19, // Predicate_unindexedload
/* 87087*/      OPC_CheckPredicate, 26, // Predicate_extload
/* 87089*/      OPC_CheckPredicate, 30, // Predicate_extloadf32
/* 87091*/      OPC_CheckType, MVT::f64,
/* 87093*/      OPC_MoveParent,
/* 87094*/      OPC_CheckType, MVT::f32,
/* 87096*/      OPC_Scope, 14, /*->87112*/ // 2 children in Scope
/* 87098*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 87100*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 87103*/        OPC_EmitMergeInputChains1_0,
/* 87104*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 2/*#Ops*/, 2, 3, 
                  // Src: (fpround:{ *:[f32] } (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 416
                  // Dst: (DFLOADf32:{ *:[f32] } ixaddr:{ *:[iPTR] }:$src)
/* 87112*/      /*Scope*/ 14, /*->87127*/
/* 87113*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 87115*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 87118*/        OPC_EmitMergeInputChains1_0,
/* 87119*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 2/*#Ops*/, 2, 3, 
                  // Src: (fpround:{ *:[f32] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 416
                  // Dst: (XFLOADf32:{ *:[f32] } xoaddr:{ *:[iPTR] }:$src)
/* 87127*/      0, /*End of Scope*/
/* 87128*/    /*Scope*/ 94, /*->87223*/
/* 87129*/      OPC_RecordChild0, // #0 = $src
/* 87130*/      OPC_SwitchType /*3 cases */, 9, MVT::f64,// ->87142
/* 87133*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 87135*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVQPDP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fpround:{ *:[f64] } f128:{ *:[f128] }:$src) - Complexity = 403
                  // Dst: (XSCVQPDP:{ *:[f64] } ?:{ *:[f128] }:$src)
/* 87142*/      /*SwitchType*/ 46, MVT::f32,// ->87190
/* 87144*/        OPC_Scope, 18, /*->87164*/ // 2 children in Scope
/* 87146*/          OPC_CheckChild0Type, MVT::f128,
/* 87148*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 87150*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPDPO), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 87157*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRSP), 0,
                        MVT::f32, 1/*#Ops*/, 1, 
                    // Src: (fpround:{ *:[f32] } f128:{ *:[f128] }:$src) - Complexity = 403
                    // Dst: (XSRSP:{ *:[f32] } (XSCVQPDPO:{ *:[f64] } ?:{ *:[f128] }:$src))
/* 87164*/        /*Scope*/ 24, /*->87189*/
/* 87165*/          OPC_CheckChild0Type, MVT::f64,
/* 87167*/          OPC_Scope, 9, /*->87178*/ // 2 children in Scope
/* 87169*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 87171*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FRSP), 0,
                          MVT::f32, 1/*#Ops*/, 0, 
                      // Src: (fpround:{ *:[f32] } f64:{ *:[f64] }:$frB) - Complexity = 3
                      // Dst: (FRSP:{ *:[f32] } f64:{ *:[f64] }:$frB)
/* 87178*/          /*Scope*/ 9, /*->87188*/
/* 87179*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 87181*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSCFD), 0,
                          MVT::f32, 1/*#Ops*/, 0, 
                      // Src: (fpround:{ *:[f32] } f64:{ *:[f64] }:$RB) - Complexity = 3
                      // Dst: (EFSCFD:{ *:[f32] } f64:{ *:[f64] }:$RB)
/* 87188*/          0, /*End of Scope*/
/* 87189*/        0, /*End of Scope*/
/* 87190*/      /*SwitchType*/ 30, MVT::v4f32,// ->87222
/* 87192*/        OPC_Scope, 11, /*->87205*/ // 2 children in Scope
/* 87194*/          OPC_CheckPredicate, 39, // Predicate_fround_inexact
/* 87196*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 87198*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSPs), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (fpround:{ *:[v4f32] } v4f64:{ *:[v4f64] }:$FRB)<<P:Predicate_fround_inexact>> - Complexity = 4
                    // Dst: (QVFRSPs:{ *:[v4f32] } v4f64:{ *:[v4f64] }:$FRB)
/* 87205*/        /*Scope*/ 15, /*->87221*/
/* 87206*/          OPC_CheckPredicate, 40, // Predicate_fround_exact
/* 87208*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 87210*/          OPC_EmitInteger, MVT::i32, PPC::QSRCRegClassID,
/* 87213*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fpround:{ *:[v4f32] } v4f64:{ *:[v4f64] }:$src)<<P:Predicate_fround_exact>> - Complexity = 4
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } ?:{ *:[v4f64] }:$src, QSRC:{ *:[i32] })
/* 87221*/        0, /*End of Scope*/
/* 87222*/      0, // EndSwitchType
/* 87223*/    0, /*End of Scope*/
/* 87224*/  /*SwitchOpcode*/ 62|128,23/*3006*/, TARGET_VAL(ISD::SINT_TO_FP),// ->90234
/* 87228*/    OPC_Scope, 37|128,22/*2853*/, /*->90084*/ // 4 children in Scope
/* 87231*/      OPC_MoveChild0,
/* 87232*/      OPC_SwitchOpcode /*4 cases */, 84, TARGET_VAL(ISD::LOAD),// ->87320
/* 87236*/        OPC_RecordMemRef,
/* 87237*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 87238*/        OPC_RecordChild1, // #1 = $src
/* 87239*/        OPC_CheckPredicate, 19, // Predicate_unindexedload
/* 87241*/        OPC_CheckPredicate, 24, // Predicate_load
/* 87243*/        OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->87270
/* 87246*/          OPC_MoveParent,
/* 87247*/          OPC_CheckType, MVT::f128,
/* 87249*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 87251*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 87254*/          OPC_EmitMergeInputChains1_0,
/* 87255*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWAX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87263*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (sint_to_fp:{ *:[f128] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                    // Dst: (XSCVSDQP:{ *:[f128] } (LIWAX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src))
/* 87270*/        /*SwitchType*/ 47, MVT::i64,// ->87319
/* 87272*/          OPC_MoveParent,
/* 87273*/          OPC_CheckType, MVT::f128,
/* 87275*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 87277*/          OPC_Scope, 19, /*->87298*/ // 2 children in Scope
/* 87279*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 87282*/            OPC_EmitMergeInputChains1_0,
/* 87283*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSD), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87291*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (sint_to_fp:{ *:[f128] } (ld:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XSCVSDQP:{ *:[f128] } (LXSD:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src))
/* 87298*/          /*Scope*/ 19, /*->87318*/
/* 87299*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 87302*/            OPC_EmitMergeInputChains1_0,
/* 87303*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSDX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87311*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (sint_to_fp:{ *:[f128] } (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XSCVSDQP:{ *:[f128] } (LXSDX:{ *:[f64] } xaddr:{ *:[iPTR] }:$src))
/* 87318*/          0, /*End of Scope*/
/* 87319*/        0, // EndSwitchType
/* 87320*/      /*SwitchOpcode*/ 75|128,17/*2251*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->89575
/* 87324*/        OPC_MoveChild0,
/* 87325*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 87328*/        OPC_RecordChild0, // #0 = $src
/* 87329*/        OPC_Scope, 108|128,5/*748*/, /*->88080*/ // 2 children in Scope
/* 87332*/          OPC_CheckChild0Type, MVT::v8i16,
/* 87334*/          OPC_Scope, 92, /*->87428*/ // 8 children in Scope
/* 87336*/            OPC_CheckChild1Integer, 0, 
/* 87338*/            OPC_MoveParent,
/* 87339*/            OPC_MoveChild1,
/* 87340*/            OPC_CheckValueType, MVT::i16,
/* 87342*/            OPC_MoveParent,
/* 87343*/            OPC_CheckType, MVT::i32,
/* 87345*/            OPC_MoveParent,
/* 87346*/            OPC_CheckType, MVT::f128,
/* 87348*/            OPC_Scope, 38, /*->87388*/ // 2 children in Scope
/* 87350*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87352*/              OPC_EmitInteger, MVT::i32, 0, 
/* 87355*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87363*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87370*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87373*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87381*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87388*/            /*Scope*/ 38, /*->87427*/
/* 87389*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 87391*/              OPC_EmitInteger, MVT::i32, 14, 
/* 87394*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87402*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87409*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87412*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87420*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 14:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87427*/            0, /*End of Scope*/
/* 87428*/          /*Scope*/ 92, /*->87521*/
/* 87429*/            OPC_CheckChild1Integer, 1, 
/* 87431*/            OPC_MoveParent,
/* 87432*/            OPC_MoveChild1,
/* 87433*/            OPC_CheckValueType, MVT::i16,
/* 87435*/            OPC_MoveParent,
/* 87436*/            OPC_CheckType, MVT::i32,
/* 87438*/            OPC_MoveParent,
/* 87439*/            OPC_CheckType, MVT::f128,
/* 87441*/            OPC_Scope, 38, /*->87481*/ // 2 children in Scope
/* 87443*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87445*/              OPC_EmitInteger, MVT::i32, 2, 
/* 87448*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87456*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87463*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87466*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87474*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 1:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87481*/            /*Scope*/ 38, /*->87520*/
/* 87482*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 87484*/              OPC_EmitInteger, MVT::i32, 12, 
/* 87487*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87495*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87502*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87505*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87513*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 1:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 12:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87520*/            0, /*End of Scope*/
/* 87521*/          /*Scope*/ 92, /*->87614*/
/* 87522*/            OPC_CheckChild1Integer, 2, 
/* 87524*/            OPC_MoveParent,
/* 87525*/            OPC_MoveChild1,
/* 87526*/            OPC_CheckValueType, MVT::i16,
/* 87528*/            OPC_MoveParent,
/* 87529*/            OPC_CheckType, MVT::i32,
/* 87531*/            OPC_MoveParent,
/* 87532*/            OPC_CheckType, MVT::f128,
/* 87534*/            OPC_Scope, 38, /*->87574*/ // 2 children in Scope
/* 87536*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87538*/              OPC_EmitInteger, MVT::i32, 4, 
/* 87541*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87549*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87556*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87559*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87567*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 2:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 4:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87574*/            /*Scope*/ 38, /*->87613*/
/* 87575*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 87577*/              OPC_EmitInteger, MVT::i32, 10, 
/* 87580*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87588*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87595*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87598*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87606*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 2:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 10:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87613*/            0, /*End of Scope*/
/* 87614*/          /*Scope*/ 92, /*->87707*/
/* 87615*/            OPC_CheckChild1Integer, 3, 
/* 87617*/            OPC_MoveParent,
/* 87618*/            OPC_MoveChild1,
/* 87619*/            OPC_CheckValueType, MVT::i16,
/* 87621*/            OPC_MoveParent,
/* 87622*/            OPC_CheckType, MVT::i32,
/* 87624*/            OPC_MoveParent,
/* 87625*/            OPC_CheckType, MVT::f128,
/* 87627*/            OPC_Scope, 38, /*->87667*/ // 2 children in Scope
/* 87629*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87631*/              OPC_EmitInteger, MVT::i32, 6, 
/* 87634*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87642*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87649*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87652*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87660*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 3:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 6:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87667*/            /*Scope*/ 38, /*->87706*/
/* 87668*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 87670*/              OPC_EmitInteger, MVT::i32, 8, 
/* 87673*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87681*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87688*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87691*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87699*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 3:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 8:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87706*/            0, /*End of Scope*/
/* 87707*/          /*Scope*/ 92, /*->87800*/
/* 87708*/            OPC_CheckChild1Integer, 4, 
/* 87710*/            OPC_MoveParent,
/* 87711*/            OPC_MoveChild1,
/* 87712*/            OPC_CheckValueType, MVT::i16,
/* 87714*/            OPC_MoveParent,
/* 87715*/            OPC_CheckType, MVT::i32,
/* 87717*/            OPC_MoveParent,
/* 87718*/            OPC_CheckType, MVT::f128,
/* 87720*/            OPC_Scope, 38, /*->87760*/ // 2 children in Scope
/* 87722*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87724*/              OPC_EmitInteger, MVT::i32, 8, 
/* 87727*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87735*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87742*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87745*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87753*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 4:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 8:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87760*/            /*Scope*/ 38, /*->87799*/
/* 87761*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 87763*/              OPC_EmitInteger, MVT::i32, 6, 
/* 87766*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87774*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87781*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87784*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87792*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 4:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 6:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87799*/            0, /*End of Scope*/
/* 87800*/          /*Scope*/ 92, /*->87893*/
/* 87801*/            OPC_CheckChild1Integer, 5, 
/* 87803*/            OPC_MoveParent,
/* 87804*/            OPC_MoveChild1,
/* 87805*/            OPC_CheckValueType, MVT::i16,
/* 87807*/            OPC_MoveParent,
/* 87808*/            OPC_CheckType, MVT::i32,
/* 87810*/            OPC_MoveParent,
/* 87811*/            OPC_CheckType, MVT::f128,
/* 87813*/            OPC_Scope, 38, /*->87853*/ // 2 children in Scope
/* 87815*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87817*/              OPC_EmitInteger, MVT::i32, 10, 
/* 87820*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87828*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87835*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87838*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87846*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 5:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 10:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87853*/            /*Scope*/ 38, /*->87892*/
/* 87854*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 87856*/              OPC_EmitInteger, MVT::i32, 4, 
/* 87859*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87867*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87874*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87877*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87885*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 5:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 4:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87892*/            0, /*End of Scope*/
/* 87893*/          /*Scope*/ 92, /*->87986*/
/* 87894*/            OPC_CheckChild1Integer, 6, 
/* 87896*/            OPC_MoveParent,
/* 87897*/            OPC_MoveChild1,
/* 87898*/            OPC_CheckValueType, MVT::i16,
/* 87900*/            OPC_MoveParent,
/* 87901*/            OPC_CheckType, MVT::i32,
/* 87903*/            OPC_MoveParent,
/* 87904*/            OPC_CheckType, MVT::f128,
/* 87906*/            OPC_Scope, 38, /*->87946*/ // 2 children in Scope
/* 87908*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87910*/              OPC_EmitInteger, MVT::i32, 12, 
/* 87913*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87921*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87928*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87931*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87939*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 6:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 12:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87946*/            /*Scope*/ 38, /*->87985*/
/* 87947*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 87949*/              OPC_EmitInteger, MVT::i32, 2, 
/* 87952*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87960*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 87967*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87970*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 87978*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 6:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 87985*/            0, /*End of Scope*/
/* 87986*/          /*Scope*/ 92, /*->88079*/
/* 87987*/            OPC_CheckChild1Integer, 7, 
/* 87989*/            OPC_MoveParent,
/* 87990*/            OPC_MoveChild1,
/* 87991*/            OPC_CheckValueType, MVT::i16,
/* 87993*/            OPC_MoveParent,
/* 87994*/            OPC_CheckType, MVT::i32,
/* 87996*/            OPC_MoveParent,
/* 87997*/            OPC_CheckType, MVT::f128,
/* 87999*/            OPC_Scope, 38, /*->88039*/ // 2 children in Scope
/* 88001*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88003*/              OPC_EmitInteger, MVT::i32, 14, 
/* 88006*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88014*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88021*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88024*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88032*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 7:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 14:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 88039*/            /*Scope*/ 38, /*->88078*/
/* 88040*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88042*/              OPC_EmitInteger, MVT::i32, 0, 
/* 88045*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88053*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88060*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88063*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88071*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$src, 7:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSH2D:{ *:[f128] } (VEXTRACTUH:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v8i16] }:$src)), sub_64:{ *:[i32] }))
/* 88078*/            0, /*End of Scope*/
/* 88079*/          0, /*End of Scope*/
/* 88080*/        /*Scope*/ 84|128,11/*1492*/, /*->89574*/
/* 88082*/          OPC_CheckChild0Type, MVT::v16i8,
/* 88084*/          OPC_Scope, 92, /*->88178*/ // 16 children in Scope
/* 88086*/            OPC_CheckChild1Integer, 0, 
/* 88088*/            OPC_MoveParent,
/* 88089*/            OPC_MoveChild1,
/* 88090*/            OPC_CheckValueType, MVT::i8,
/* 88092*/            OPC_MoveParent,
/* 88093*/            OPC_CheckType, MVT::i32,
/* 88095*/            OPC_MoveParent,
/* 88096*/            OPC_CheckType, MVT::f128,
/* 88098*/            OPC_Scope, 38, /*->88138*/ // 2 children in Scope
/* 88100*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88102*/              OPC_EmitInteger, MVT::i32, 0, 
/* 88105*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88113*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88120*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88123*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88131*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88138*/            /*Scope*/ 38, /*->88177*/
/* 88139*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88141*/              OPC_EmitInteger, MVT::i32, 15, 
/* 88144*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88152*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88159*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88162*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88170*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 15:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88177*/            0, /*End of Scope*/
/* 88178*/          /*Scope*/ 92, /*->88271*/
/* 88179*/            OPC_CheckChild1Integer, 1, 
/* 88181*/            OPC_MoveParent,
/* 88182*/            OPC_MoveChild1,
/* 88183*/            OPC_CheckValueType, MVT::i8,
/* 88185*/            OPC_MoveParent,
/* 88186*/            OPC_CheckType, MVT::i32,
/* 88188*/            OPC_MoveParent,
/* 88189*/            OPC_CheckType, MVT::f128,
/* 88191*/            OPC_Scope, 38, /*->88231*/ // 2 children in Scope
/* 88193*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88195*/              OPC_EmitInteger, MVT::i32, 1, 
/* 88198*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88206*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88213*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88216*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88224*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 1:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 1:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88231*/            /*Scope*/ 38, /*->88270*/
/* 88232*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88234*/              OPC_EmitInteger, MVT::i32, 14, 
/* 88237*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88245*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88252*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88255*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88263*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 1:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 14:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88270*/            0, /*End of Scope*/
/* 88271*/          /*Scope*/ 92, /*->88364*/
/* 88272*/            OPC_CheckChild1Integer, 2, 
/* 88274*/            OPC_MoveParent,
/* 88275*/            OPC_MoveChild1,
/* 88276*/            OPC_CheckValueType, MVT::i8,
/* 88278*/            OPC_MoveParent,
/* 88279*/            OPC_CheckType, MVT::i32,
/* 88281*/            OPC_MoveParent,
/* 88282*/            OPC_CheckType, MVT::f128,
/* 88284*/            OPC_Scope, 38, /*->88324*/ // 2 children in Scope
/* 88286*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88288*/              OPC_EmitInteger, MVT::i32, 2, 
/* 88291*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88299*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88306*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88309*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88317*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 2:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88324*/            /*Scope*/ 38, /*->88363*/
/* 88325*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88327*/              OPC_EmitInteger, MVT::i32, 13, 
/* 88330*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88338*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88345*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88348*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88356*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 2:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 13:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88363*/            0, /*End of Scope*/
/* 88364*/          /*Scope*/ 92, /*->88457*/
/* 88365*/            OPC_CheckChild1Integer, 3, 
/* 88367*/            OPC_MoveParent,
/* 88368*/            OPC_MoveChild1,
/* 88369*/            OPC_CheckValueType, MVT::i8,
/* 88371*/            OPC_MoveParent,
/* 88372*/            OPC_CheckType, MVT::i32,
/* 88374*/            OPC_MoveParent,
/* 88375*/            OPC_CheckType, MVT::f128,
/* 88377*/            OPC_Scope, 38, /*->88417*/ // 2 children in Scope
/* 88379*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88381*/              OPC_EmitInteger, MVT::i32, 3, 
/* 88384*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88392*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88399*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88402*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88410*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 3:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 3:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88417*/            /*Scope*/ 38, /*->88456*/
/* 88418*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88420*/              OPC_EmitInteger, MVT::i32, 12, 
/* 88423*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88431*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88438*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88441*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88449*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 3:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 12:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88456*/            0, /*End of Scope*/
/* 88457*/          /*Scope*/ 92, /*->88550*/
/* 88458*/            OPC_CheckChild1Integer, 4, 
/* 88460*/            OPC_MoveParent,
/* 88461*/            OPC_MoveChild1,
/* 88462*/            OPC_CheckValueType, MVT::i8,
/* 88464*/            OPC_MoveParent,
/* 88465*/            OPC_CheckType, MVT::i32,
/* 88467*/            OPC_MoveParent,
/* 88468*/            OPC_CheckType, MVT::f128,
/* 88470*/            OPC_Scope, 38, /*->88510*/ // 2 children in Scope
/* 88472*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88474*/              OPC_EmitInteger, MVT::i32, 4, 
/* 88477*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88485*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88492*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88495*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88503*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 4:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 4:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88510*/            /*Scope*/ 38, /*->88549*/
/* 88511*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88513*/              OPC_EmitInteger, MVT::i32, 11, 
/* 88516*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88524*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88531*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88534*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88542*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 4:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 11:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88549*/            0, /*End of Scope*/
/* 88550*/          /*Scope*/ 92, /*->88643*/
/* 88551*/            OPC_CheckChild1Integer, 5, 
/* 88553*/            OPC_MoveParent,
/* 88554*/            OPC_MoveChild1,
/* 88555*/            OPC_CheckValueType, MVT::i8,
/* 88557*/            OPC_MoveParent,
/* 88558*/            OPC_CheckType, MVT::i32,
/* 88560*/            OPC_MoveParent,
/* 88561*/            OPC_CheckType, MVT::f128,
/* 88563*/            OPC_Scope, 38, /*->88603*/ // 2 children in Scope
/* 88565*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88567*/              OPC_EmitInteger, MVT::i32, 5, 
/* 88570*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88578*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88585*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88588*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88596*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 5:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 5:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88603*/            /*Scope*/ 38, /*->88642*/
/* 88604*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88606*/              OPC_EmitInteger, MVT::i32, 10, 
/* 88609*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88617*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88624*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88627*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88635*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 5:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 10:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88642*/            0, /*End of Scope*/
/* 88643*/          /*Scope*/ 92, /*->88736*/
/* 88644*/            OPC_CheckChild1Integer, 6, 
/* 88646*/            OPC_MoveParent,
/* 88647*/            OPC_MoveChild1,
/* 88648*/            OPC_CheckValueType, MVT::i8,
/* 88650*/            OPC_MoveParent,
/* 88651*/            OPC_CheckType, MVT::i32,
/* 88653*/            OPC_MoveParent,
/* 88654*/            OPC_CheckType, MVT::f128,
/* 88656*/            OPC_Scope, 38, /*->88696*/ // 2 children in Scope
/* 88658*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88660*/              OPC_EmitInteger, MVT::i32, 6, 
/* 88663*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88671*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88678*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88681*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88689*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 6:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 6:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88696*/            /*Scope*/ 38, /*->88735*/
/* 88697*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88699*/              OPC_EmitInteger, MVT::i32, 9, 
/* 88702*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88710*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88717*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88720*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88728*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 6:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 9:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88735*/            0, /*End of Scope*/
/* 88736*/          /*Scope*/ 92, /*->88829*/
/* 88737*/            OPC_CheckChild1Integer, 7, 
/* 88739*/            OPC_MoveParent,
/* 88740*/            OPC_MoveChild1,
/* 88741*/            OPC_CheckValueType, MVT::i8,
/* 88743*/            OPC_MoveParent,
/* 88744*/            OPC_CheckType, MVT::i32,
/* 88746*/            OPC_MoveParent,
/* 88747*/            OPC_CheckType, MVT::f128,
/* 88749*/            OPC_Scope, 38, /*->88789*/ // 2 children in Scope
/* 88751*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88753*/              OPC_EmitInteger, MVT::i32, 7, 
/* 88756*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88764*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88771*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88774*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88782*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 7:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 7:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88789*/            /*Scope*/ 38, /*->88828*/
/* 88790*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88792*/              OPC_EmitInteger, MVT::i32, 8, 
/* 88795*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88803*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88810*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88813*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88821*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 7:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 8:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88828*/            0, /*End of Scope*/
/* 88829*/          /*Scope*/ 92, /*->88922*/
/* 88830*/            OPC_CheckChild1Integer, 8, 
/* 88832*/            OPC_MoveParent,
/* 88833*/            OPC_MoveChild1,
/* 88834*/            OPC_CheckValueType, MVT::i8,
/* 88836*/            OPC_MoveParent,
/* 88837*/            OPC_CheckType, MVT::i32,
/* 88839*/            OPC_MoveParent,
/* 88840*/            OPC_CheckType, MVT::f128,
/* 88842*/            OPC_Scope, 38, /*->88882*/ // 2 children in Scope
/* 88844*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88846*/              OPC_EmitInteger, MVT::i32, 8, 
/* 88849*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88857*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88864*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88867*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88875*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 8:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 8:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88882*/            /*Scope*/ 38, /*->88921*/
/* 88883*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88885*/              OPC_EmitInteger, MVT::i32, 7, 
/* 88888*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88896*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88903*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88906*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88914*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 8:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 7:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88921*/            0, /*End of Scope*/
/* 88922*/          /*Scope*/ 92, /*->89015*/
/* 88923*/            OPC_CheckChild1Integer, 9, 
/* 88925*/            OPC_MoveParent,
/* 88926*/            OPC_MoveChild1,
/* 88927*/            OPC_CheckValueType, MVT::i8,
/* 88929*/            OPC_MoveParent,
/* 88930*/            OPC_CheckType, MVT::i32,
/* 88932*/            OPC_MoveParent,
/* 88933*/            OPC_CheckType, MVT::f128,
/* 88935*/            OPC_Scope, 38, /*->88975*/ // 2 children in Scope
/* 88937*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88939*/              OPC_EmitInteger, MVT::i32, 9, 
/* 88942*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88950*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88957*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88960*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 88968*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 9:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 9:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 88975*/            /*Scope*/ 38, /*->89014*/
/* 88976*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88978*/              OPC_EmitInteger, MVT::i32, 6, 
/* 88981*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88989*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 88996*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88999*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89007*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 9:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 6:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89014*/            0, /*End of Scope*/
/* 89015*/          /*Scope*/ 92, /*->89108*/
/* 89016*/            OPC_CheckChild1Integer, 10, 
/* 89018*/            OPC_MoveParent,
/* 89019*/            OPC_MoveChild1,
/* 89020*/            OPC_CheckValueType, MVT::i8,
/* 89022*/            OPC_MoveParent,
/* 89023*/            OPC_CheckType, MVT::i32,
/* 89025*/            OPC_MoveParent,
/* 89026*/            OPC_CheckType, MVT::f128,
/* 89028*/            OPC_Scope, 38, /*->89068*/ // 2 children in Scope
/* 89030*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89032*/              OPC_EmitInteger, MVT::i32, 10, 
/* 89035*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89043*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89050*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89053*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89061*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 10:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 10:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89068*/            /*Scope*/ 38, /*->89107*/
/* 89069*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89071*/              OPC_EmitInteger, MVT::i32, 5, 
/* 89074*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89082*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89089*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89092*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89100*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 10:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 5:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89107*/            0, /*End of Scope*/
/* 89108*/          /*Scope*/ 92, /*->89201*/
/* 89109*/            OPC_CheckChild1Integer, 11, 
/* 89111*/            OPC_MoveParent,
/* 89112*/            OPC_MoveChild1,
/* 89113*/            OPC_CheckValueType, MVT::i8,
/* 89115*/            OPC_MoveParent,
/* 89116*/            OPC_CheckType, MVT::i32,
/* 89118*/            OPC_MoveParent,
/* 89119*/            OPC_CheckType, MVT::f128,
/* 89121*/            OPC_Scope, 38, /*->89161*/ // 2 children in Scope
/* 89123*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89125*/              OPC_EmitInteger, MVT::i32, 11, 
/* 89128*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89136*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89143*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89146*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89154*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 11:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 11:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89161*/            /*Scope*/ 38, /*->89200*/
/* 89162*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89164*/              OPC_EmitInteger, MVT::i32, 4, 
/* 89167*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89175*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89182*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89185*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89193*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 11:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 4:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89200*/            0, /*End of Scope*/
/* 89201*/          /*Scope*/ 92, /*->89294*/
/* 89202*/            OPC_CheckChild1Integer, 12, 
/* 89204*/            OPC_MoveParent,
/* 89205*/            OPC_MoveChild1,
/* 89206*/            OPC_CheckValueType, MVT::i8,
/* 89208*/            OPC_MoveParent,
/* 89209*/            OPC_CheckType, MVT::i32,
/* 89211*/            OPC_MoveParent,
/* 89212*/            OPC_CheckType, MVT::f128,
/* 89214*/            OPC_Scope, 38, /*->89254*/ // 2 children in Scope
/* 89216*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89218*/              OPC_EmitInteger, MVT::i32, 12, 
/* 89221*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89229*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89236*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89239*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89247*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 12:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 12:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89254*/            /*Scope*/ 38, /*->89293*/
/* 89255*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89257*/              OPC_EmitInteger, MVT::i32, 3, 
/* 89260*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89268*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89275*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89278*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89286*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 12:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 3:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89293*/            0, /*End of Scope*/
/* 89294*/          /*Scope*/ 92, /*->89387*/
/* 89295*/            OPC_CheckChild1Integer, 13, 
/* 89297*/            OPC_MoveParent,
/* 89298*/            OPC_MoveChild1,
/* 89299*/            OPC_CheckValueType, MVT::i8,
/* 89301*/            OPC_MoveParent,
/* 89302*/            OPC_CheckType, MVT::i32,
/* 89304*/            OPC_MoveParent,
/* 89305*/            OPC_CheckType, MVT::f128,
/* 89307*/            OPC_Scope, 38, /*->89347*/ // 2 children in Scope
/* 89309*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89311*/              OPC_EmitInteger, MVT::i32, 13, 
/* 89314*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89322*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89329*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89332*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89340*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 13:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 13:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89347*/            /*Scope*/ 38, /*->89386*/
/* 89348*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89350*/              OPC_EmitInteger, MVT::i32, 2, 
/* 89353*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89361*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89368*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89371*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89379*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 13:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89386*/            0, /*End of Scope*/
/* 89387*/          /*Scope*/ 92, /*->89480*/
/* 89388*/            OPC_CheckChild1Integer, 14, 
/* 89390*/            OPC_MoveParent,
/* 89391*/            OPC_MoveChild1,
/* 89392*/            OPC_CheckValueType, MVT::i8,
/* 89394*/            OPC_MoveParent,
/* 89395*/            OPC_CheckType, MVT::i32,
/* 89397*/            OPC_MoveParent,
/* 89398*/            OPC_CheckType, MVT::f128,
/* 89400*/            OPC_Scope, 38, /*->89440*/ // 2 children in Scope
/* 89402*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89404*/              OPC_EmitInteger, MVT::i32, 14, 
/* 89407*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89415*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89422*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89425*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89433*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 14:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 14:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89440*/            /*Scope*/ 38, /*->89479*/
/* 89441*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89443*/              OPC_EmitInteger, MVT::i32, 1, 
/* 89446*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89454*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89461*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89464*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89472*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 14:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 1:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89479*/            0, /*End of Scope*/
/* 89480*/          /*Scope*/ 92, /*->89573*/
/* 89481*/            OPC_CheckChild1Integer, 15, 
/* 89483*/            OPC_MoveParent,
/* 89484*/            OPC_MoveChild1,
/* 89485*/            OPC_CheckValueType, MVT::i8,
/* 89487*/            OPC_MoveParent,
/* 89488*/            OPC_CheckType, MVT::i32,
/* 89490*/            OPC_MoveParent,
/* 89491*/            OPC_CheckType, MVT::f128,
/* 89493*/            OPC_Scope, 38, /*->89533*/ // 2 children in Scope
/* 89495*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89497*/              OPC_EmitInteger, MVT::i32, 15, 
/* 89500*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89508*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89515*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89518*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89526*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 15:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 15:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89533*/            /*Scope*/ 38, /*->89572*/
/* 89534*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89536*/              OPC_EmitInteger, MVT::i32, 0, 
/* 89539*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89547*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89554*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89557*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89565*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$src, 15:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 414
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSB2D:{ *:[f128] } (VEXTRACTUB:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v16i8] }:$src)), sub_64:{ *:[i32] }))
/* 89572*/            0, /*End of Scope*/
/* 89573*/          0, /*End of Scope*/
/* 89574*/        0, /*End of Scope*/
/* 89575*/      /*SwitchOpcode*/ 77|128,3/*461*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->90040
/* 89579*/        OPC_RecordChild0, // #0 = $src
/* 89580*/        OPC_Scope, 22|128,1/*150*/, /*->89733*/ // 4 children in Scope
/* 89583*/          OPC_CheckChild1Integer, 0, 
/* 89585*/          OPC_SwitchType /*2 cases */, 59, MVT::i64,// ->89647
/* 89588*/            OPC_MoveParent,
/* 89589*/            OPC_CheckType, MVT::f128,
/* 89591*/            OPC_Scope, 20, /*->89613*/ // 2 children in Scope
/* 89593*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89595*/              OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 89598*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89606*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 2, 
                        // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$src, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVSDQP:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$src, VFRC:{ *:[i32] }))
/* 89613*/            /*Scope*/ 32, /*->89646*/
/* 89614*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89616*/              OPC_EmitInteger, MVT::i32, 3, 
/* 89619*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 89628*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89631*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89639*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 4, 
                        // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$src, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$src, ?:{ *:[v2i64] }:$src, 3:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 89646*/            0, /*End of Scope*/
/* 89647*/          /*SwitchType*/ 83, MVT::i32,// ->89732
/* 89649*/            OPC_MoveParent,
/* 89650*/            OPC_CheckType, MVT::f128,
/* 89652*/            OPC_Scope, 38, /*->89692*/ // 2 children in Scope
/* 89654*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89656*/              OPC_EmitInteger, MVT::i32, 0, 
/* 89659*/              OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89667*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89674*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89677*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89685*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSW2D:{ *:[f128] } (VSPLTW:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v4i32] }:$src)), sub_64:{ *:[i32] }))
/* 89692*/            /*Scope*/ 38, /*->89731*/
/* 89693*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89695*/              OPC_EmitInteger, MVT::i32, 3, 
/* 89698*/              OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89706*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89713*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89716*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89724*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 0:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSW2D:{ *:[f128] } (VSPLTW:{ *:[f128] } 3:{ *:[i32] }, ?:{ *:[v4i32] }:$src)), sub_64:{ *:[i32] }))
/* 89731*/            0, /*End of Scope*/
/* 89732*/          0, // EndSwitchType
/* 89733*/        /*Scope*/ 11|128,1/*139*/, /*->89874*/
/* 89735*/          OPC_CheckChild1Integer, 1, 
/* 89737*/          OPC_SwitchType /*2 cases */, 59, MVT::i64,// ->89799
/* 89740*/            OPC_MoveParent,
/* 89741*/            OPC_CheckType, MVT::f128,
/* 89743*/            OPC_Scope, 20, /*->89765*/ // 2 children in Scope
/* 89745*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89747*/              OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 89750*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89758*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 2, 
                        // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$src, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVSDQP:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$src, VFRC:{ *:[i32] }))
/* 89765*/            /*Scope*/ 32, /*->89798*/
/* 89766*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89768*/              OPC_EmitInteger, MVT::i32, 3, 
/* 89771*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 89780*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89783*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89791*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 4, 
                        // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$src, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$src, ?:{ *:[v2i64] }:$src, 3:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 89798*/            0, /*End of Scope*/
/* 89799*/          /*SwitchType*/ 72, MVT::i32,// ->89873
/* 89801*/            OPC_MoveParent,
/* 89802*/            OPC_CheckType, MVT::f128,
/* 89804*/            OPC_Scope, 27, /*->89833*/ // 2 children in Scope
/* 89806*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89808*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                            MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 89815*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89818*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 89826*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 3, 
                        // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSW2D:{ *:[f128] } ?:{ *:[v4i32] }:$src), sub_64:{ *:[i32] }))
/* 89833*/            /*Scope*/ 38, /*->89872*/
/* 89834*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89836*/              OPC_EmitInteger, MVT::i32, 2, 
/* 89839*/              OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89847*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89854*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89857*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89865*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                            MVT::f128, 1/*#Ops*/, 5, 
                        // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 1:{ *:[iPTR] })) - Complexity = 411
                        // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSW2D:{ *:[f128] } (VSPLTW:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v4i32] }:$src)), sub_64:{ *:[i32] }))
/* 89872*/            0, /*End of Scope*/
/* 89873*/          0, // EndSwitchType
/* 89874*/        /*Scope*/ 76, /*->89951*/
/* 89875*/          OPC_CheckChild1Integer, 2, 
/* 89877*/          OPC_CheckType, MVT::i32,
/* 89879*/          OPC_MoveParent,
/* 89880*/          OPC_CheckType, MVT::f128,
/* 89882*/          OPC_Scope, 27, /*->89911*/ // 2 children in Scope
/* 89884*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89886*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 89893*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89896*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 89904*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                          MVT::f128, 1/*#Ops*/, 3, 
                      // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 2:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSW2D:{ *:[f128] } ?:{ *:[v4i32] }:$src), sub_64:{ *:[i32] }))
/* 89911*/          /*Scope*/ 38, /*->89950*/
/* 89912*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89914*/            OPC_EmitInteger, MVT::i32, 2, 
/* 89917*/            OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                          MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89925*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                          MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89932*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89935*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89943*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                          MVT::f128, 1/*#Ops*/, 5, 
                      // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 2:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSW2D:{ *:[f128] } (VSPLTW:{ *:[f128] } 2:{ *:[i32] }, ?:{ *:[v4i32] }:$src)), sub_64:{ *:[i32] }))
/* 89950*/          0, /*End of Scope*/
/* 89951*/        /*Scope*/ 87, /*->90039*/
/* 89952*/          OPC_CheckChild1Integer, 3, 
/* 89954*/          OPC_CheckType, MVT::i32,
/* 89956*/          OPC_MoveParent,
/* 89957*/          OPC_CheckType, MVT::f128,
/* 89959*/          OPC_Scope, 38, /*->89999*/ // 2 children in Scope
/* 89961*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89963*/            OPC_EmitInteger, MVT::i32, 3, 
/* 89966*/            OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                          MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89974*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                          MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 89981*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89984*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89992*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                          MVT::f128, 1/*#Ops*/, 5, 
                      // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 3:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSW2D:{ *:[f128] } (VSPLTW:{ *:[f128] } 3:{ *:[i32] }, ?:{ *:[v4i32] }:$src)), sub_64:{ *:[i32] }))
/* 89999*/          /*Scope*/ 38, /*->90038*/
/* 90000*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 90002*/            OPC_EmitInteger, MVT::i32, 0, 
/* 90005*/            OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                          MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90013*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                          MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90020*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90023*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90031*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                          MVT::f128, 1/*#Ops*/, 5, 
                      // Src: (sint_to_fp:{ *:[f128] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$src, 3:{ *:[iPTR] })) - Complexity = 411
                      // Dst: (XSCVSDQP:{ *:[f128] } (EXTRACT_SUBREG:{ *:[f64] } (VEXTSW2D:{ *:[f128] } (VSPLTW:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[v4i32] }:$src)), sub_64:{ *:[i32] }))
/* 90038*/          0, /*End of Scope*/
/* 90039*/        0, /*End of Scope*/
/* 90040*/      /*SwitchOpcode*/ 40, TARGET_VAL(PPCISD::MFVSR),// ->90083
/* 90043*/        OPC_RecordChild0, // #0 = $src
/* 90044*/        OPC_CheckChild0Type, MVT::f64,
/* 90046*/        OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->90061
/* 90049*/          OPC_MoveParent,
/* 90050*/          OPC_CheckType, MVT::f128,
/* 90052*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90054*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                        MVT::f128, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f128] } (PPCmfvsr:{ *:[i64] } f64:{ *:[f64] }:$src)) - Complexity = 406
                    // Dst: (XSCVSDQP:{ *:[f128] } ?:{ *:[f64] }:$src)
/* 90061*/        /*SwitchType*/ 19, MVT::i32,// ->90082
/* 90063*/          OPC_MoveParent,
/* 90064*/          OPC_CheckType, MVT::f128,
/* 90066*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90068*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2Ds), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 90075*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                        MVT::f128, 1/*#Ops*/, 1, 
                    // Src: (sint_to_fp:{ *:[f128] } (PPCmfvsr:{ *:[i32] } f64:{ *:[f64] }:$src)) - Complexity = 406
                    // Dst: (XSCVSDQP:{ *:[f128] } (VEXTSW2Ds:{ *:[f64] } ?:{ *:[f64] }:$src))
/* 90082*/        0, // EndSwitchType
/* 90083*/      0, // EndSwitchOpcode
/* 90084*/    /*Scope*/ 73, /*->90158*/
/* 90085*/      OPC_RecordChild0, // #0 = $src
/* 90086*/      OPC_Scope, 24, /*->90112*/ // 2 children in Scope
/* 90088*/        OPC_CheckChild0Type, MVT::i64,
/* 90090*/        OPC_CheckType, MVT::f128,
/* 90092*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90094*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 90097*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 90105*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                      MVT::f128, 1/*#Ops*/, 2, 
                  // Src: (sint_to_fp:{ *:[f128] } i64:{ *:[i64] }:$src) - Complexity = 403
                  // Dst: (XSCVSDQP:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[i64] }:$src, VFRC:{ *:[i32] }))
/* 90112*/      /*Scope*/ 44, /*->90157*/
/* 90113*/        OPC_CheckChild0Type, MVT::i32,
/* 90115*/        OPC_SwitchType /*3 cases */, 16, MVT::f128,// ->90134
/* 90118*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90120*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWA), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 90127*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0,
                        MVT::f128, 1/*#Ops*/, 1, 
                    // Src: (sint_to_fp:{ *:[f128] } i32:{ *:[i32] }:$src) - Complexity = 403
                    // Dst: (XSCVSDQP:{ *:[f128] } (MTVSRWA:{ *:[f64] } ?:{ *:[i32] }:$src))
/* 90134*/        /*SwitchType*/ 9, MVT::f64,// ->90145
/* 90136*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 90138*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDCFSI), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f64] } i32:{ *:[i32] }:$RB) - Complexity = 3
                    // Dst: (EFDCFSI:{ *:[f64] } i32:{ *:[i32] }:$RB)
/* 90145*/        /*SwitchType*/ 9, MVT::f32,// ->90156
/* 90147*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 90149*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSCFSI), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[f32] } i32:{ *:[i32] }:$RB) - Complexity = 3
                    // Dst: (EFSCFSI:{ *:[f32] } i32:{ *:[i32] }:$RB)
/* 90156*/        0, // EndSwitchType
/* 90157*/      0, /*End of Scope*/
/* 90158*/    /*Scope*/ 33, /*->90192*/
/* 90159*/      OPC_MoveChild0,
/* 90160*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 90163*/      OPC_RecordChild0, // #0 = $C
/* 90164*/      OPC_MoveChild1,
/* 90165*/      OPC_CheckValueType, MVT::v2i32,
/* 90167*/      OPC_MoveParent,
/* 90168*/      OPC_MoveParent,
/* 90169*/      OPC_CheckType, MVT::v2f64,
/* 90171*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90173*/      OPC_EmitInteger, MVT::i32, 1, 
/* 90176*/      OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 90185*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 2, 
                // Src: (sint_to_fp:{ *:[v2f64] } (sext_inreg:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$C, v2i32:{ *:[Other] })) - Complexity = 406
                // Dst: (XVCVSXWDP:{ *:[v2f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v2i64] }:$C, ?:{ *:[v2i64] }:$C, 1:{ *:[i32] }))
/* 90192*/    /*Scope*/ 40, /*->90233*/
/* 90193*/      OPC_RecordChild0, // #0 = $XB
/* 90194*/      OPC_SwitchType /*2 cases */, 9, MVT::v2f64,// ->90206
/* 90197*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90199*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXDDP), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (sint_to_fp:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$XB) - Complexity = 403
                  // Dst: (XVCVSXDDP:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$XB)
/* 90206*/      /*SwitchType*/ 24, MVT::v4f32,// ->90232
/* 90208*/        OPC_CheckChild0Type, MVT::v4i32,
/* 90210*/        OPC_Scope, 9, /*->90221*/ // 2 children in Scope
/* 90212*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90214*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$XB) - Complexity = 403
                    // Dst: (XVCVSXWSP:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$XB)
/* 90221*/        /*Scope*/ 9, /*->90231*/
/* 90222*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 90224*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFSX_0), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$vA) - Complexity = 3
                    // Dst: (VCFSX_0:{ *:[v4f32] } ?:{ *:[v4i32] }:$vA)
/* 90231*/        0, /*End of Scope*/
/* 90232*/      0, // EndSwitchType
/* 90233*/    0, /*End of Scope*/
/* 90234*/  /*SwitchOpcode*/ 32|128,5/*672*/, TARGET_VAL(ISD::FNEG),// ->90910
/* 90238*/    OPC_Scope, 47|128,1/*175*/, /*->90416*/ // 8 children in Scope
/* 90241*/      OPC_MoveChild0,
/* 90242*/      OPC_SwitchOpcode /*3 cases */, 40, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->90286
/* 90246*/        OPC_CheckChild0Integer, 81|128,38/*4945*/, 
/* 90249*/        OPC_RecordChild1, // #0 = $vA
/* 90250*/        OPC_RecordChild2, // #1 = $vB
/* 90251*/        OPC_Scope, 18, /*->90271*/ // 2 children in Scope
/* 90253*/          OPC_MoveChild3,
/* 90254*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 90257*/          OPC_RecordChild0, // #2 = $vTi
/* 90258*/          OPC_MoveParent,
/* 90259*/          OPC_MoveParent,
/* 90260*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90262*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBQPO), 0,
                        MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fneg:{ *:[f128] } (intrinsic_wo_chain:{ *:[f128] } 4945:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, (fneg:{ *:[f128] } f128:{ *:[f128] }:$vTi))) - Complexity = 414
                    // Dst: (XSNMSUBQPO:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 90271*/        /*Scope*/ 13, /*->90285*/
/* 90272*/          OPC_RecordChild3, // #2 = $vTi
/* 90273*/          OPC_MoveParent,
/* 90274*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90276*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMADDQPO), 0,
                        MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fneg:{ *:[f128] } (intrinsic_wo_chain:{ *:[f128] } 4945:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, f128:{ *:[f128] }:$vTi)) - Complexity = 411
                    // Dst: (XSNMADDQPO:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 90285*/        0, /*End of Scope*/
/* 90286*/      /*SwitchOpcode*/ 97, TARGET_VAL(ISD::FMA),// ->90386
/* 90289*/        OPC_RecordChild0, // #0 = $XA
/* 90290*/        OPC_RecordChild1, // #1 = $XB
/* 90291*/        OPC_Scope, 48, /*->90341*/ // 2 children in Scope
/* 90293*/          OPC_MoveChild2,
/* 90294*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 90297*/          OPC_RecordChild0, // #2 = $XTi
/* 90298*/          OPC_MoveParent,
/* 90299*/          OPC_MoveParent,
/* 90300*/          OPC_SwitchType /*3 cases */, 11, MVT::f64,// ->90314
/* 90303*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90305*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBADP), 0,
                          MVT::f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[f64] } (fma:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB, (fneg:{ *:[f64] } f64:{ *:[f64] }:$XTi))) - Complexity = 409
                      // Dst: (XSNMSUBADP:{ *:[f64] } f64:{ *:[f64] }:$XTi, f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 90314*/          /*SwitchType*/ 11, MVT::f32,// ->90327
/* 90316*/            OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 90318*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBASP), 0,
                          MVT::f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[f32] } (fma:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB, (fneg:{ *:[f32] } f32:{ *:[f32] }:$XTi))) - Complexity = 409
                      // Dst: (XSNMSUBASP:{ *:[f32] } f32:{ *:[f32] }:$XTi, f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB)
/* 90327*/          /*SwitchType*/ 11, MVT::f128,// ->90340
/* 90329*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90331*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBQP), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[f128] } (fma:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, (fneg:{ *:[f128] } f128:{ *:[f128] }:$vTi))) - Complexity = 409
                      // Dst: (XSNMSUBQP:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 90340*/          0, // EndSwitchType
/* 90341*/        /*Scope*/ 43, /*->90385*/
/* 90342*/          OPC_RecordChild2, // #2 = $XTi
/* 90343*/          OPC_MoveParent,
/* 90344*/          OPC_SwitchType /*3 cases */, 11, MVT::f64,// ->90358
/* 90347*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90349*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMADDADP), 0,
                          MVT::f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[f64] } (fma:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB, f64:{ *:[f64] }:$XTi)) - Complexity = 406
                      // Dst: (XSNMADDADP:{ *:[f64] } f64:{ *:[f64] }:$XTi, f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 90358*/          /*SwitchType*/ 11, MVT::f32,// ->90371
/* 90360*/            OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 90362*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMADDASP), 0,
                          MVT::f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[f32] } (fma:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB, f32:{ *:[f32] }:$XTi)) - Complexity = 406
                      // Dst: (XSNMADDASP:{ *:[f32] } f32:{ *:[f32] }:$XTi, f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB)
/* 90371*/          /*SwitchType*/ 11, MVT::f128,// ->90384
/* 90373*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90375*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMADDQP), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[f128] } (fma:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, f128:{ *:[f128] }:$vTi)) - Complexity = 406
                      // Dst: (XSNMADDQP:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 90384*/          0, // EndSwitchType
/* 90385*/        0, /*End of Scope*/
/* 90386*/      /*SwitchOpcode*/ 26, TARGET_VAL(ISD::FABS),// ->90415
/* 90389*/        OPC_RecordChild0, // #0 = $XB
/* 90390*/        OPC_MoveParent,
/* 90391*/        OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->90403
/* 90394*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90396*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNABSDP), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[f64] } (fabs:{ *:[f64] } f64:{ *:[f64] }:$XB)) - Complexity = 406
                    // Dst: (XSNABSDP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 90403*/        /*SwitchType*/ 9, MVT::f128,// ->90414
/* 90405*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90407*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNABSQP), 0,
                        MVT::f128, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[f128] } (fabs:{ *:[f128] } f128:{ *:[f128] }:$vB)) - Complexity = 406
                    // Dst: (XSNABSQP:{ *:[f128] } f128:{ *:[f128] }:$vB)
/* 90414*/        0, // EndSwitchType
/* 90415*/      0, // EndSwitchOpcode
/* 90416*/    /*Scope*/ 25, /*->90442*/
/* 90417*/      OPC_RecordChild0, // #0 = $XB
/* 90418*/      OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->90430
/* 90421*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90423*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNEGDP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSNEGDP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 90430*/      /*SwitchType*/ 9, MVT::f128,// ->90441
/* 90432*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 90434*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNEGQP), 0,
                      MVT::f128, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
                  // Dst: (XSNEGQP:{ *:[f128] } f128:{ *:[f128] }:$vB)
/* 90441*/      0, // EndSwitchType
/* 90442*/    /*Scope*/ 4|128,1/*132*/, /*->90576*/
/* 90444*/      OPC_MoveChild0,
/* 90445*/      OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::FMA),// ->90520
/* 90449*/        OPC_RecordChild0, // #0 = $FRA
/* 90450*/        OPC_RecordChild1, // #1 = $FRC
/* 90451*/        OPC_Scope, 35, /*->90488*/ // 2 children in Scope
/* 90453*/          OPC_MoveChild2,
/* 90454*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 90457*/          OPC_RecordChild0, // #2 = $FRB
/* 90458*/          OPC_MoveParent,
/* 90459*/          OPC_MoveParent,
/* 90460*/          OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->90474
/* 90463*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 90465*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FNMSUB), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fneg:{ *:[f64] } (fma:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, (fneg:{ *:[f64] } f64:{ *:[f64] }:$FRB))) - Complexity = 9
                      // Dst: (FNMSUB:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, f64:{ *:[f64] }:$FRB)
/* 90474*/          /*SwitchType*/ 11, MVT::f32,// ->90487
/* 90476*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 90478*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FNMSUBS), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fneg:{ *:[f32] } (fma:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC, (fneg:{ *:[f32] } f32:{ *:[f32] }:$FRB))) - Complexity = 9
                      // Dst: (FNMSUBS:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC, f32:{ *:[f32] }:$FRB)
/* 90487*/          0, // EndSwitchType
/* 90488*/        /*Scope*/ 30, /*->90519*/
/* 90489*/          OPC_RecordChild2, // #2 = $FRB
/* 90490*/          OPC_MoveParent,
/* 90491*/          OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->90505
/* 90494*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 90496*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FNMADD), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fneg:{ *:[f64] } (fma:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, f64:{ *:[f64] }:$FRB)) - Complexity = 6
                      // Dst: (FNMADD:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, f64:{ *:[f64] }:$FRB)
/* 90505*/          /*SwitchType*/ 11, MVT::f32,// ->90518
/* 90507*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 90509*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FNMADDS), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fneg:{ *:[f32] } (fma:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC, f32:{ *:[f32] }:$FRB)) - Complexity = 6
                      // Dst: (FNMADDS:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC, f32:{ *:[f32] }:$FRB)
/* 90518*/          0, // EndSwitchType
/* 90519*/        0, /*End of Scope*/
/* 90520*/      /*SwitchOpcode*/ 52, TARGET_VAL(ISD::FABS),// ->90575
/* 90523*/        OPC_RecordChild0, // #0 = $frB
/* 90524*/        OPC_MoveParent,
/* 90525*/        OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->90550
/* 90528*/          OPC_Scope, 9, /*->90539*/ // 2 children in Scope
/* 90530*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 90532*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FNABSS), 0,
                          MVT::f32, 1/*#Ops*/, 0, 
                      // Src: (fneg:{ *:[f32] } (fabs:{ *:[f32] } f32:{ *:[f32] }:$frB)) - Complexity = 6
                      // Dst: (FNABSS:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 90539*/          /*Scope*/ 9, /*->90549*/
/* 90540*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 90542*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSNABS), 0,
                          MVT::f32, 1/*#Ops*/, 0, 
                      // Src: (fneg:{ *:[f32] } (fabs:{ *:[f32] } f32:{ *:[f32] }:$RA)) - Complexity = 6
                      // Dst: (EFSNABS:{ *:[f32] } f32:{ *:[f32] }:$RA)
/* 90549*/          0, /*End of Scope*/
/* 90550*/        /*SwitchType*/ 22, MVT::f64,// ->90574
/* 90552*/          OPC_Scope, 9, /*->90563*/ // 2 children in Scope
/* 90554*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 90556*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FNABSD), 0,
                          MVT::f64, 1/*#Ops*/, 0, 
                      // Src: (fneg:{ *:[f64] } (fabs:{ *:[f64] } f64:{ *:[f64] }:$frB)) - Complexity = 6
                      // Dst: (FNABSD:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 90563*/          /*Scope*/ 9, /*->90573*/
/* 90564*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 90566*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDNABS), 0,
                          MVT::f64, 1/*#Ops*/, 0, 
                      // Src: (fneg:{ *:[f64] } (fabs:{ *:[f64] } f64:{ *:[f64] }:$RA)) - Complexity = 6
                      // Dst: (EFDNABS:{ *:[f64] } f64:{ *:[f64] }:$RA)
/* 90573*/          0, /*End of Scope*/
/* 90574*/        0, // EndSwitchType
/* 90575*/      0, // EndSwitchOpcode
/* 90576*/    /*Scope*/ 51, /*->90628*/
/* 90577*/      OPC_RecordChild0, // #0 = $frB
/* 90578*/      OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->90603
/* 90581*/        OPC_Scope, 9, /*->90592*/ // 2 children in Scope
/* 90583*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 90585*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::FNEGS), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                    // Dst: (FNEGS:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 90592*/        /*Scope*/ 9, /*->90602*/
/* 90593*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 90595*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSNEG), 0,
                        MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[f32] } f32:{ *:[f32] }:$RA) - Complexity = 3
                    // Dst: (EFSNEG:{ *:[f32] } f32:{ *:[f32] }:$RA)
/* 90602*/        0, /*End of Scope*/
/* 90603*/      /*SwitchType*/ 22, MVT::f64,// ->90627
/* 90605*/        OPC_Scope, 9, /*->90616*/ // 2 children in Scope
/* 90607*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 90609*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::FNEGD), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                    // Dst: (FNEGD:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 90616*/        /*Scope*/ 9, /*->90626*/
/* 90617*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 90619*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDNEG), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[f64] } f64:{ *:[f64] }:$RA) - Complexity = 3
                    // Dst: (EFDNEG:{ *:[f64] } f64:{ *:[f64] }:$RA)
/* 90626*/        0, /*End of Scope*/
/* 90627*/      0, // EndSwitchType
/* 90628*/    /*Scope*/ 106, /*->90735*/
/* 90629*/      OPC_MoveChild0,
/* 90630*/      OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::FMA),// ->90705
/* 90634*/        OPC_RecordChild0, // #0 = $XA
/* 90635*/        OPC_RecordChild1, // #1 = $XB
/* 90636*/        OPC_Scope, 35, /*->90673*/ // 2 children in Scope
/* 90638*/          OPC_MoveChild2,
/* 90639*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 90642*/          OPC_RecordChild0, // #2 = $XTi
/* 90643*/          OPC_MoveParent,
/* 90644*/          OPC_MoveParent,
/* 90645*/          OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->90659
/* 90648*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90650*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBADP), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[v2f64] } (fma:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB, (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XTi))) - Complexity = 409
                      // Dst: (XVNMSUBADP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XTi, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 90659*/          /*SwitchType*/ 11, MVT::v4f32,// ->90672
/* 90661*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90663*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBASP), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[v4f32] } (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XTi))) - Complexity = 409
                      // Dst: (XVNMSUBASP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XTi, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 90672*/          0, // EndSwitchType
/* 90673*/        /*Scope*/ 30, /*->90704*/
/* 90674*/          OPC_RecordChild2, // #2 = $XTi
/* 90675*/          OPC_MoveParent,
/* 90676*/          OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->90690
/* 90679*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90681*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMADDADP), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[v2f64] } (fma:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB, v2f64:{ *:[v2f64] }:$XTi)) - Complexity = 406
                      // Dst: (XVNMADDADP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XTi, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 90690*/          /*SwitchType*/ 11, MVT::v4f32,// ->90703
/* 90692*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90694*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMADDASP), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fneg:{ *:[v4f32] } (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB, v4f32:{ *:[v4f32] }:$XTi)) - Complexity = 406
                      // Dst: (XVNMADDASP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XTi, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 90703*/          0, // EndSwitchType
/* 90704*/        0, /*End of Scope*/
/* 90705*/      /*SwitchOpcode*/ 26, TARGET_VAL(ISD::FABS),// ->90734
/* 90708*/        OPC_RecordChild0, // #0 = $XB
/* 90709*/        OPC_MoveParent,
/* 90710*/        OPC_SwitchType /*2 cases */, 9, MVT::v2f64,// ->90722
/* 90713*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90715*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNABSDP), 0,
                        MVT::v2f64, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[v2f64] } (fabs:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)) - Complexity = 406
                    // Dst: (XVNABSDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 90722*/        /*SwitchType*/ 9, MVT::v4f32,// ->90733
/* 90724*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90726*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNABSSP), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[v4f32] } (fabs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)) - Complexity = 406
                    // Dst: (XVNABSSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 90733*/        0, // EndSwitchType
/* 90734*/      0, // EndSwitchOpcode
/* 90735*/    /*Scope*/ 25, /*->90761*/
/* 90736*/      OPC_RecordChild0, // #0 = $XB
/* 90737*/      OPC_SwitchType /*2 cases */, 9, MVT::v2f64,// ->90749
/* 90740*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90742*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNEGDP), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                  // Dst: (XVNEGDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 90749*/      /*SwitchType*/ 9, MVT::v4f32,// ->90760
/* 90751*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 90753*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNEGSP), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVNEGSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 90760*/      0, // EndSwitchType
/* 90761*/    /*Scope*/ 121, /*->90883*/
/* 90762*/      OPC_MoveChild0,
/* 90763*/      OPC_SwitchOpcode /*2 cases */, 86, TARGET_VAL(ISD::FMA),// ->90853
/* 90767*/        OPC_RecordChild0, // #0 = $vA
/* 90768*/        OPC_RecordChild1, // #1 = $vC
/* 90769*/        OPC_Scope, 50, /*->90821*/ // 2 children in Scope
/* 90771*/          OPC_MoveChild2,
/* 90772*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 90775*/          OPC_RecordChild0, // #2 = $vB
/* 90776*/          OPC_MoveParent,
/* 90777*/          OPC_MoveParent,
/* 90778*/          OPC_SwitchType /*2 cases */, 26, MVT::v4f32,// ->90807
/* 90781*/            OPC_Scope, 11, /*->90794*/ // 2 children in Scope
/* 90783*/              OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 90785*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VNMSUBFP), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (fneg:{ *:[v4f32] } (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vC, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB))) - Complexity = 9
                        // Dst: (VNMSUBFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vC, v4f32:{ *:[v4f32] }:$vB)
/* 90794*/            /*Scope*/ 11, /*->90806*/
/* 90795*/              OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 90797*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUBSs), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 2, 1, 
                        // Src: (fneg:{ *:[v4f32] } (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRC, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB))) - Complexity = 9
                        // Dst: (QVFNMSUBSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, v4f32:{ *:[v4f32] }:$FRC)
/* 90806*/            0, /*End of Scope*/
/* 90807*/          /*SwitchType*/ 11, MVT::v4f64,// ->90820
/* 90809*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 90811*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUB), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (fneg:{ *:[v4f64] } (fma:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC, (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB))) - Complexity = 9
                      // Dst: (QVFNMSUB:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 90820*/          0, // EndSwitchType
/* 90821*/        /*Scope*/ 30, /*->90852*/
/* 90822*/          OPC_RecordChild2, // #2 = $FRB
/* 90823*/          OPC_MoveParent,
/* 90824*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->90838
/* 90827*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 90829*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMADD), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (fneg:{ *:[v4f64] } (fma:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC, v4f64:{ *:[v4f64] }:$FRB)) - Complexity = 6
                      // Dst: (QVFNMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 90838*/          /*SwitchType*/ 11, MVT::v4f32,// ->90851
/* 90840*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 90842*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMADDSs), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (fneg:{ *:[v4f32] } (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRC, v4f32:{ *:[v4f32] }:$FRB)) - Complexity = 6
                      // Dst: (QVFNMADDSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, v4f32:{ *:[v4f32] }:$FRC)
/* 90851*/          0, // EndSwitchType
/* 90852*/        0, /*End of Scope*/
/* 90853*/      /*SwitchOpcode*/ 26, TARGET_VAL(ISD::FABS),// ->90882
/* 90856*/        OPC_RecordChild0, // #0 = $FRB
/* 90857*/        OPC_MoveParent,
/* 90858*/        OPC_SwitchType /*2 cases */, 9, MVT::v4f64,// ->90870
/* 90861*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 90863*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNABS), 0,
                        MVT::v4f64, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[v4f64] } (fabs:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)) - Complexity = 6
                    // Dst: (QVFNABS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 90870*/        /*SwitchType*/ 9, MVT::v4f32,// ->90881
/* 90872*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 90874*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNABSs), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (fneg:{ *:[v4f32] } (fabs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)) - Complexity = 6
                    // Dst: (QVFNABSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 90881*/        0, // EndSwitchType
/* 90882*/      0, // EndSwitchOpcode
/* 90883*/    /*Scope*/ 25, /*->90909*/
/* 90884*/      OPC_RecordChild0, // #0 = $FRB
/* 90885*/      OPC_SwitchType /*2 cases */, 9, MVT::v4f64,// ->90897
/* 90888*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 90890*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNEG), 0,
                      MVT::v4f64, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                  // Dst: (QVFNEG:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 90897*/      /*SwitchType*/ 9, MVT::v4f32,// ->90908
/* 90899*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 90901*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNEGs), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFNEGs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 90908*/      0, // EndSwitchType
/* 90909*/    0, /*End of Scope*/
/* 90910*/  /*SwitchOpcode*/ 96|128,3/*480*/, TARGET_VAL(PPCISD::FCFID),// ->91394
/* 90914*/    OPC_Scope, 68|128,3/*452*/, /*->91369*/ // 2 children in Scope
/* 90917*/      OPC_MoveChild0,
/* 90918*/      OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/* 90921*/      OPC_MoveChild0,
/* 90922*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 90925*/      OPC_RecordChild0, // #0 = $S
/* 90926*/      OPC_SwitchType /*2 cases */, 13|128,1/*141*/, MVT::i64,// ->91071
/* 90930*/        OPC_CheckChild0Type, MVT::v2i64,
/* 90932*/        OPC_Scope, 62, /*->90996*/ // 2 children in Scope
/* 90934*/          OPC_CheckChild1Integer, 0, 
/* 90936*/          OPC_MoveParent,
/* 90937*/          OPC_MoveParent,
/* 90938*/          OPC_CheckType, MVT::f64,
/* 90940*/          OPC_Scope, 20, /*->90962*/ // 2 children in Scope
/* 90942*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 90944*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 90947*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 90955*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S, VSFRC:{ *:[i32] }))
/* 90962*/          /*Scope*/ 32, /*->90995*/
/* 90963*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 90965*/            OPC_EmitInteger, MVT::i32, 2, 
/* 90968*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 90977*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 90980*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 90988*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 90995*/          0, /*End of Scope*/
/* 90996*/        /*Scope*/ 73, /*->91070*/
/* 90997*/          OPC_CheckChild1Integer, 1, 
/* 90999*/          OPC_MoveParent,
/* 91000*/          OPC_MoveParent,
/* 91001*/          OPC_CheckType, MVT::f64,
/* 91003*/          OPC_Scope, 31, /*->91036*/ // 2 children in Scope
/* 91005*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91007*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 91010*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91018*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91021*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 91029*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 91036*/          /*Scope*/ 32, /*->91069*/
/* 91037*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91039*/            OPC_EmitInteger, MVT::i32, 2, 
/* 91042*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 91051*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91054*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 91062*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 91069*/          0, /*End of Scope*/
/* 91070*/        0, /*End of Scope*/
/* 91071*/      /*SwitchType*/ 38|128,2/*294*/, MVT::i32,// ->91368
/* 91074*/        OPC_Scope, 72, /*->91148*/ // 4 children in Scope
/* 91076*/          OPC_CheckChild1Integer, 0, 
/* 91078*/          OPC_MoveParent,
/* 91079*/          OPC_MoveParent,
/* 91080*/          OPC_CheckType, MVT::f64,
/* 91082*/          OPC_Scope, 31, /*->91115*/ // 2 children in Scope
/* 91084*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91086*/            OPC_EmitInteger, MVT::i32, 3, 
/* 91089*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91097*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91104*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91107*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XVCVSXWDP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 3:{ *:[i32] })), VSFRC:{ *:[i32] })
/* 91115*/          /*Scope*/ 31, /*->91147*/
/* 91116*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91118*/            OPC_EmitInteger, MVT::i32, 0, 
/* 91121*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91129*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91136*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91139*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XVCVSXWDP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 0:{ *:[i32] })), VSFRC:{ *:[i32] })
/* 91147*/          0, /*End of Scope*/
/* 91148*/        /*Scope*/ 72, /*->91221*/
/* 91149*/          OPC_CheckChild1Integer, 1, 
/* 91151*/          OPC_MoveParent,
/* 91152*/          OPC_MoveParent,
/* 91153*/          OPC_CheckType, MVT::f64,
/* 91155*/          OPC_Scope, 31, /*->91188*/ // 2 children in Scope
/* 91157*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91159*/            OPC_EmitInteger, MVT::i32, 2, 
/* 91162*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91170*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91177*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91180*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XVCVSXWDP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 2:{ *:[i32] })), VSFRC:{ *:[i32] })
/* 91188*/          /*Scope*/ 31, /*->91220*/
/* 91189*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91191*/            OPC_EmitInteger, MVT::i32, 1, 
/* 91194*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91202*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91209*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91212*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XVCVSXWDP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 1:{ *:[i32] })), VSFRC:{ *:[i32] })
/* 91220*/          0, /*End of Scope*/
/* 91221*/        /*Scope*/ 72, /*->91294*/
/* 91222*/          OPC_CheckChild1Integer, 2, 
/* 91224*/          OPC_MoveParent,
/* 91225*/          OPC_MoveParent,
/* 91226*/          OPC_CheckType, MVT::f64,
/* 91228*/          OPC_Scope, 31, /*->91261*/ // 2 children in Scope
/* 91230*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91232*/            OPC_EmitInteger, MVT::i32, 1, 
/* 91235*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91243*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91250*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91253*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XVCVSXWDP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 1:{ *:[i32] })), VSFRC:{ *:[i32] })
/* 91261*/          /*Scope*/ 31, /*->91293*/
/* 91262*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91264*/            OPC_EmitInteger, MVT::i32, 2, 
/* 91267*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91275*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91282*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91285*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XVCVSXWDP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 2:{ *:[i32] })), VSFRC:{ *:[i32] })
/* 91293*/          0, /*End of Scope*/
/* 91294*/        /*Scope*/ 72, /*->91367*/
/* 91295*/          OPC_CheckChild1Integer, 3, 
/* 91297*/          OPC_MoveParent,
/* 91298*/          OPC_MoveParent,
/* 91299*/          OPC_CheckType, MVT::f64,
/* 91301*/          OPC_Scope, 31, /*->91334*/ // 2 children in Scope
/* 91303*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91305*/            OPC_EmitInteger, MVT::i32, 0, 
/* 91308*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91316*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91323*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91326*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XVCVSXWDP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 0:{ *:[i32] })), VSFRC:{ *:[i32] })
/* 91334*/          /*Scope*/ 31, /*->91366*/
/* 91335*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91337*/            OPC_EmitInteger, MVT::i32, 3, 
/* 91340*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91348*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91355*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91358*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4, 
                      // Src: (PPCfcfid:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (XVCVSXWDP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 3:{ *:[i32] })), VSFRC:{ *:[i32] })
/* 91366*/          0, /*End of Scope*/
/* 91367*/        0, /*End of Scope*/
/* 91368*/      0, // EndSwitchType
/* 91369*/    /*Scope*/ 23, /*->91393*/
/* 91370*/      OPC_RecordChild0, // #0 = $XB
/* 91371*/      OPC_CheckType, MVT::f64,
/* 91373*/      OPC_Scope, 9, /*->91384*/ // 2 children in Scope
/* 91375*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 91377*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDDP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfcfid:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSCVSXDDP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 91384*/      /*Scope*/ 7, /*->91392*/
/* 91385*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCFID), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfcfid:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FCFID:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 91392*/      0, /*End of Scope*/
/* 91393*/    0, /*End of Scope*/
/* 91394*/  /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(PPCISD::FCFIDU),// ->91798
/* 91398*/    OPC_Scope, 116|128,2/*372*/, /*->91773*/ // 2 children in Scope
/* 91401*/      OPC_MoveChild0,
/* 91402*/      OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(PPCISD::MTVSRA),// ->91555
/* 91407*/        OPC_MoveChild0,
/* 91408*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 91411*/        OPC_RecordChild0, // #0 = $S
/* 91412*/        OPC_CheckChild0Type, MVT::v2i64,
/* 91414*/        OPC_CheckType, MVT::i64,
/* 91416*/        OPC_Scope, 62, /*->91480*/ // 2 children in Scope
/* 91418*/          OPC_CheckChild1Integer, 0, 
/* 91420*/          OPC_MoveParent,
/* 91421*/          OPC_MoveParent,
/* 91422*/          OPC_CheckType, MVT::f64,
/* 91424*/          OPC_Scope, 20, /*->91446*/ // 2 children in Scope
/* 91426*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91428*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91431*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91439*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S, VSFRC:{ *:[i32] }))
/* 91446*/          /*Scope*/ 32, /*->91479*/
/* 91447*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91449*/            OPC_EmitInteger, MVT::i32, 2, 
/* 91452*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 91461*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91464*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 91472*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 91479*/          0, /*End of Scope*/
/* 91480*/        /*Scope*/ 73, /*->91554*/
/* 91481*/          OPC_CheckChild1Integer, 1, 
/* 91483*/          OPC_MoveParent,
/* 91484*/          OPC_MoveParent,
/* 91485*/          OPC_CheckType, MVT::f64,
/* 91487*/          OPC_Scope, 31, /*->91520*/ // 2 children in Scope
/* 91489*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91491*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 91494*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91502*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91505*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 91513*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 91520*/          /*Scope*/ 32, /*->91553*/
/* 91521*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91523*/            OPC_EmitInteger, MVT::i32, 2, 
/* 91526*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 91535*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91538*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 91546*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 91553*/          0, /*End of Scope*/
/* 91554*/        0, /*End of Scope*/
/* 91555*/      /*SwitchOpcode*/ 85|128,1/*213*/, TARGET_VAL(PPCISD::MTVSRZ),// ->91772
/* 91559*/        OPC_MoveChild0,
/* 91560*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 91563*/        OPC_RecordChild0, // #0 = $A
/* 91564*/        OPC_CheckType, MVT::i32,
/* 91566*/        OPC_Scope, 50, /*->91618*/ // 4 children in Scope
/* 91568*/          OPC_CheckChild1Integer, 0, 
/* 91570*/          OPC_MoveParent,
/* 91571*/          OPC_MoveParent,
/* 91572*/          OPC_CheckType, MVT::f64,
/* 91574*/          OPC_Scope, 20, /*->91596*/ // 2 children in Scope
/* 91576*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91578*/            OPC_EmitInteger, MVT::i32, 12, 
/* 91581*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91589*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 12:{ *:[i32] }))
/* 91596*/          /*Scope*/ 20, /*->91617*/
/* 91597*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91599*/            OPC_EmitInteger, MVT::i32, 0, 
/* 91602*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91610*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 0:{ *:[i32] }))
/* 91617*/          0, /*End of Scope*/
/* 91618*/        /*Scope*/ 50, /*->91669*/
/* 91619*/          OPC_CheckChild1Integer, 1, 
/* 91621*/          OPC_MoveParent,
/* 91622*/          OPC_MoveParent,
/* 91623*/          OPC_CheckType, MVT::f64,
/* 91625*/          OPC_Scope, 20, /*->91647*/ // 2 children in Scope
/* 91627*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91629*/            OPC_EmitInteger, MVT::i32, 8, 
/* 91632*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91640*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 8:{ *:[i32] }))
/* 91647*/          /*Scope*/ 20, /*->91668*/
/* 91648*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91650*/            OPC_EmitInteger, MVT::i32, 4, 
/* 91653*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91661*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 4:{ *:[i32] }))
/* 91668*/          0, /*End of Scope*/
/* 91669*/        /*Scope*/ 50, /*->91720*/
/* 91670*/          OPC_CheckChild1Integer, 2, 
/* 91672*/          OPC_MoveParent,
/* 91673*/          OPC_MoveParent,
/* 91674*/          OPC_CheckType, MVT::f64,
/* 91676*/          OPC_Scope, 20, /*->91698*/ // 2 children in Scope
/* 91678*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91680*/            OPC_EmitInteger, MVT::i32, 4, 
/* 91683*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91691*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 4:{ *:[i32] }))
/* 91698*/          /*Scope*/ 20, /*->91719*/
/* 91699*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91701*/            OPC_EmitInteger, MVT::i32, 8, 
/* 91704*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91712*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 8:{ *:[i32] }))
/* 91719*/          0, /*End of Scope*/
/* 91720*/        /*Scope*/ 50, /*->91771*/
/* 91721*/          OPC_CheckChild1Integer, 3, 
/* 91723*/          OPC_MoveParent,
/* 91724*/          OPC_MoveParent,
/* 91725*/          OPC_CheckType, MVT::f64,
/* 91727*/          OPC_Scope, 20, /*->91749*/ // 2 children in Scope
/* 91729*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91731*/            OPC_EmitInteger, MVT::i32, 0, 
/* 91734*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91742*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 0:{ *:[i32] }))
/* 91749*/          /*Scope*/ 20, /*->91770*/
/* 91750*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91752*/            OPC_EmitInteger, MVT::i32, 12, 
/* 91755*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91763*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                          MVT::f64, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidu:{ *:[f64] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDDP:{ *:[f64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 12:{ *:[i32] }))
/* 91770*/          0, /*End of Scope*/
/* 91771*/        0, /*End of Scope*/
/* 91772*/      0, // EndSwitchOpcode
/* 91773*/    /*Scope*/ 23, /*->91797*/
/* 91774*/      OPC_RecordChild0, // #0 = $XB
/* 91775*/      OPC_CheckType, MVT::f64,
/* 91777*/      OPC_Scope, 9, /*->91788*/ // 2 children in Scope
/* 91779*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 91781*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDDP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfcfidu:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSCVUXDDP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 91788*/      /*Scope*/ 7, /*->91796*/
/* 91789*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCFIDU), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfcfidu:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FCFIDU:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 91796*/      0, /*End of Scope*/
/* 91797*/    0, /*End of Scope*/
/* 91798*/  /*SwitchOpcode*/ 78|128,3/*462*/, TARGET_VAL(PPCISD::FCFIDS),// ->92264
/* 91802*/    OPC_Scope, 48|128,3/*432*/, /*->92237*/ // 2 children in Scope
/* 91805*/      OPC_MoveChild0,
/* 91806*/      OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/* 91809*/      OPC_MoveChild0,
/* 91810*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 91813*/      OPC_RecordChild0, // #0 = $S
/* 91814*/      OPC_SwitchType /*2 cases */, 17|128,1/*145*/, MVT::i64,// ->91963
/* 91818*/        OPC_CheckChild0Type, MVT::v2i64,
/* 91820*/        OPC_Scope, 64, /*->91886*/ // 2 children in Scope
/* 91822*/          OPC_CheckChild1Integer, 0, 
/* 91824*/          OPC_MoveParent,
/* 91825*/          OPC_CheckType, MVT::f64,
/* 91827*/          OPC_MoveParent,
/* 91828*/          OPC_CheckType, MVT::f32,
/* 91830*/          OPC_Scope, 20, /*->91852*/ // 2 children in Scope
/* 91832*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91834*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91837*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91845*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S, VSFRC:{ *:[i32] }))
/* 91852*/          /*Scope*/ 32, /*->91885*/
/* 91853*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91855*/            OPC_EmitInteger, MVT::i32, 2, 
/* 91858*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 91867*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91870*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 91878*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 91885*/          0, /*End of Scope*/
/* 91886*/        /*Scope*/ 75, /*->91962*/
/* 91887*/          OPC_CheckChild1Integer, 1, 
/* 91889*/          OPC_MoveParent,
/* 91890*/          OPC_CheckType, MVT::f64,
/* 91892*/          OPC_MoveParent,
/* 91893*/          OPC_CheckType, MVT::f32,
/* 91895*/          OPC_Scope, 31, /*->91928*/ // 2 children in Scope
/* 91897*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91899*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 91902*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91910*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91913*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 91921*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 91928*/          /*Scope*/ 32, /*->91961*/
/* 91929*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 91931*/            OPC_EmitInteger, MVT::i32, 2, 
/* 91934*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 91943*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 91946*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 91954*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 91961*/          0, /*End of Scope*/
/* 91962*/        0, /*End of Scope*/
/* 91963*/      /*SwitchType*/ 14|128,2/*270*/, MVT::i32,// ->92236
/* 91966*/        OPC_Scope, 66, /*->92034*/ // 4 children in Scope
/* 91968*/          OPC_CheckChild1Integer, 0, 
/* 91970*/          OPC_MoveParent,
/* 91971*/          OPC_CheckType, MVT::f64,
/* 91973*/          OPC_MoveParent,
/* 91974*/          OPC_CheckType, MVT::f32,
/* 91976*/          OPC_Scope, 27, /*->92005*/ // 2 children in Scope
/* 91978*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 91980*/            OPC_EmitInteger, MVT::i32, 3, 
/* 91983*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 91991*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 91998*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                          MVT::f32, 1/*#Ops*/, 3, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSPDPN:{ *:[f32] } (XVCVSXWSP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 3:{ *:[i32] })))
/* 92005*/          /*Scope*/ 27, /*->92033*/
/* 92006*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 92008*/            OPC_EmitInteger, MVT::i32, 0, 
/* 92011*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92019*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 92026*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                          MVT::f32, 1/*#Ops*/, 3, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSPDPN:{ *:[f32] } (XVCVSXWSP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 0:{ *:[i32] })))
/* 92033*/          0, /*End of Scope*/
/* 92034*/        /*Scope*/ 66, /*->92101*/
/* 92035*/          OPC_CheckChild1Integer, 1, 
/* 92037*/          OPC_MoveParent,
/* 92038*/          OPC_CheckType, MVT::f64,
/* 92040*/          OPC_MoveParent,
/* 92041*/          OPC_CheckType, MVT::f32,
/* 92043*/          OPC_Scope, 27, /*->92072*/ // 2 children in Scope
/* 92045*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 92047*/            OPC_EmitInteger, MVT::i32, 2, 
/* 92050*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92058*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 92065*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                          MVT::f32, 1/*#Ops*/, 3, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSPDPN:{ *:[f32] } (XVCVSXWSP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 2:{ *:[i32] })))
/* 92072*/          /*Scope*/ 27, /*->92100*/
/* 92073*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 92075*/            OPC_EmitInteger, MVT::i32, 1, 
/* 92078*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92086*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 92093*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                          MVT::f32, 1/*#Ops*/, 3, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSPDPN:{ *:[f32] } (XVCVSXWSP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 1:{ *:[i32] })))
/* 92100*/          0, /*End of Scope*/
/* 92101*/        /*Scope*/ 66, /*->92168*/
/* 92102*/          OPC_CheckChild1Integer, 2, 
/* 92104*/          OPC_MoveParent,
/* 92105*/          OPC_CheckType, MVT::f64,
/* 92107*/          OPC_MoveParent,
/* 92108*/          OPC_CheckType, MVT::f32,
/* 92110*/          OPC_Scope, 27, /*->92139*/ // 2 children in Scope
/* 92112*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 92114*/            OPC_EmitInteger, MVT::i32, 1, 
/* 92117*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92125*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 92132*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                          MVT::f32, 1/*#Ops*/, 3, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSPDPN:{ *:[f32] } (XVCVSXWSP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 1:{ *:[i32] })))
/* 92139*/          /*Scope*/ 27, /*->92167*/
/* 92140*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 92142*/            OPC_EmitInteger, MVT::i32, 2, 
/* 92145*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92153*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 92160*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                          MVT::f32, 1/*#Ops*/, 3, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSPDPN:{ *:[f32] } (XVCVSXWSP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 2:{ *:[i32] })))
/* 92167*/          0, /*End of Scope*/
/* 92168*/        /*Scope*/ 66, /*->92235*/
/* 92169*/          OPC_CheckChild1Integer, 3, 
/* 92171*/          OPC_MoveParent,
/* 92172*/          OPC_CheckType, MVT::f64,
/* 92174*/          OPC_MoveParent,
/* 92175*/          OPC_CheckType, MVT::f32,
/* 92177*/          OPC_Scope, 27, /*->92206*/ // 2 children in Scope
/* 92179*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 92181*/            OPC_EmitInteger, MVT::i32, 0, 
/* 92184*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92192*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 92199*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                          MVT::f32, 1/*#Ops*/, 3, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSPDPN:{ *:[f32] } (XVCVSXWSP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 0:{ *:[i32] })))
/* 92206*/          /*Scope*/ 27, /*->92234*/
/* 92207*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 92209*/            OPC_EmitInteger, MVT::i32, 3, 
/* 92212*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92220*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 92227*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSPDPN), 0,
                          MVT::f32, 1/*#Ops*/, 3, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSPDPN:{ *:[f32] } (XVCVSXWSP:{ *:[v4i32] } (XXSPLTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, 3:{ *:[i32] })))
/* 92234*/          0, /*End of Scope*/
/* 92235*/        0, /*End of Scope*/
/* 92236*/      0, // EndSwitchType
/* 92237*/    /*Scope*/ 25, /*->92263*/
/* 92238*/      OPC_RecordChild0, // #0 = $XB
/* 92239*/      OPC_CheckChild0Type, MVT::f64,
/* 92241*/      OPC_CheckType, MVT::f32,
/* 92243*/      OPC_Scope, 9, /*->92254*/ // 2 children in Scope
/* 92245*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 92247*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfcfids:{ *:[f32] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSCVSXDSP:{ *:[f32] } f64:{ *:[f64] }:$XB)
/* 92254*/      /*Scope*/ 7, /*->92262*/
/* 92255*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCFIDS), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfcfids:{ *:[f32] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FCFIDS:{ *:[f32] } f64:{ *:[f64] }:$frB)
/* 92262*/      0, /*End of Scope*/
/* 92263*/    0, /*End of Scope*/
/* 92264*/  /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(PPCISD::FCFIDUS),// ->92682
/* 92268*/    OPC_Scope, 0|128,3/*384*/, /*->92655*/ // 2 children in Scope
/* 92271*/      OPC_MoveChild0,
/* 92272*/      OPC_SwitchOpcode /*2 cases */, 24|128,1/*152*/, TARGET_VAL(PPCISD::MTVSRA),// ->92429
/* 92277*/        OPC_MoveChild0,
/* 92278*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 92281*/        OPC_RecordChild0, // #0 = $S
/* 92282*/        OPC_CheckChild0Type, MVT::v2i64,
/* 92284*/        OPC_CheckType, MVT::i64,
/* 92286*/        OPC_Scope, 64, /*->92352*/ // 2 children in Scope
/* 92288*/          OPC_CheckChild1Integer, 0, 
/* 92290*/          OPC_MoveParent,
/* 92291*/          OPC_CheckType, MVT::f64,
/* 92293*/          OPC_MoveParent,
/* 92294*/          OPC_CheckType, MVT::f32,
/* 92296*/          OPC_Scope, 20, /*->92318*/ // 2 children in Scope
/* 92298*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 92300*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 92303*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92311*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S, VSFRC:{ *:[i32] }))
/* 92318*/          /*Scope*/ 32, /*->92351*/
/* 92319*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 92321*/            OPC_EmitInteger, MVT::i32, 2, 
/* 92324*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 92333*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 92336*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 92344*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 92351*/          0, /*End of Scope*/
/* 92352*/        /*Scope*/ 75, /*->92428*/
/* 92353*/          OPC_CheckChild1Integer, 1, 
/* 92355*/          OPC_MoveParent,
/* 92356*/          OPC_CheckType, MVT::f64,
/* 92358*/          OPC_MoveParent,
/* 92359*/          OPC_CheckType, MVT::f32,
/* 92361*/          OPC_Scope, 31, /*->92394*/ // 2 children in Scope
/* 92363*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/* 92365*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 92368*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92376*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 92379*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 92387*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S, VSRC:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 92394*/          /*Scope*/ 32, /*->92427*/
/* 92395*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/* 92397*/            OPC_EmitInteger, MVT::i32, 2, 
/* 92400*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 92409*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 92412*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 92420*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S, ?:{ *:[v2i64] }:$S, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 92427*/          0, /*End of Scope*/
/* 92428*/        0, /*End of Scope*/
/* 92429*/      /*SwitchOpcode*/ 93|128,1/*221*/, TARGET_VAL(PPCISD::MTVSRZ),// ->92654
/* 92433*/        OPC_MoveChild0,
/* 92434*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 92437*/        OPC_RecordChild0, // #0 = $A
/* 92438*/        OPC_CheckType, MVT::i32,
/* 92440*/        OPC_Scope, 52, /*->92494*/ // 4 children in Scope
/* 92442*/          OPC_CheckChild1Integer, 0, 
/* 92444*/          OPC_MoveParent,
/* 92445*/          OPC_CheckType, MVT::f64,
/* 92447*/          OPC_MoveParent,
/* 92448*/          OPC_CheckType, MVT::f32,
/* 92450*/          OPC_Scope, 20, /*->92472*/ // 2 children in Scope
/* 92452*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92454*/            OPC_EmitInteger, MVT::i32, 12, 
/* 92457*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92465*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 12:{ *:[i32] }))
/* 92472*/          /*Scope*/ 20, /*->92493*/
/* 92473*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92475*/            OPC_EmitInteger, MVT::i32, 0, 
/* 92478*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92486*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 0:{ *:[i32] }))
/* 92493*/          0, /*End of Scope*/
/* 92494*/        /*Scope*/ 52, /*->92547*/
/* 92495*/          OPC_CheckChild1Integer, 1, 
/* 92497*/          OPC_MoveParent,
/* 92498*/          OPC_CheckType, MVT::f64,
/* 92500*/          OPC_MoveParent,
/* 92501*/          OPC_CheckType, MVT::f32,
/* 92503*/          OPC_Scope, 20, /*->92525*/ // 2 children in Scope
/* 92505*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92507*/            OPC_EmitInteger, MVT::i32, 8, 
/* 92510*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92518*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 8:{ *:[i32] }))
/* 92525*/          /*Scope*/ 20, /*->92546*/
/* 92526*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92528*/            OPC_EmitInteger, MVT::i32, 4, 
/* 92531*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92539*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 4:{ *:[i32] }))
/* 92546*/          0, /*End of Scope*/
/* 92547*/        /*Scope*/ 52, /*->92600*/
/* 92548*/          OPC_CheckChild1Integer, 2, 
/* 92550*/          OPC_MoveParent,
/* 92551*/          OPC_CheckType, MVT::f64,
/* 92553*/          OPC_MoveParent,
/* 92554*/          OPC_CheckType, MVT::f32,
/* 92556*/          OPC_Scope, 20, /*->92578*/ // 2 children in Scope
/* 92558*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92560*/            OPC_EmitInteger, MVT::i32, 4, 
/* 92563*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92571*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 4:{ *:[i32] }))
/* 92578*/          /*Scope*/ 20, /*->92599*/
/* 92579*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92581*/            OPC_EmitInteger, MVT::i32, 8, 
/* 92584*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92592*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 8:{ *:[i32] }))
/* 92599*/          0, /*End of Scope*/
/* 92600*/        /*Scope*/ 52, /*->92653*/
/* 92601*/          OPC_CheckChild1Integer, 3, 
/* 92603*/          OPC_MoveParent,
/* 92604*/          OPC_CheckType, MVT::f64,
/* 92606*/          OPC_MoveParent,
/* 92607*/          OPC_CheckType, MVT::f32,
/* 92609*/          OPC_Scope, 20, /*->92631*/ // 2 children in Scope
/* 92611*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92613*/            OPC_EmitInteger, MVT::i32, 0, 
/* 92616*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92624*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 0:{ *:[i32] }))
/* 92631*/          /*Scope*/ 20, /*->92652*/
/* 92632*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92634*/            OPC_EmitInteger, MVT::i32, 12, 
/* 92637*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92645*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsrz:{ *:[f64] } (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v4i32] }:$A, 12:{ *:[i32] }))
/* 92652*/          0, /*End of Scope*/
/* 92653*/        0, /*End of Scope*/
/* 92654*/      0, // EndSwitchOpcode
/* 92655*/    /*Scope*/ 25, /*->92681*/
/* 92656*/      OPC_RecordChild0, // #0 = $XB
/* 92657*/      OPC_CheckChild0Type, MVT::f64,
/* 92659*/      OPC_CheckType, MVT::f32,
/* 92661*/      OPC_Scope, 9, /*->92672*/ // 2 children in Scope
/* 92663*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 92665*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfcfidus:{ *:[f32] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSCVUXDSP:{ *:[f32] } f64:{ *:[f64] }:$XB)
/* 92672*/      /*Scope*/ 7, /*->92680*/
/* 92673*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCFIDUS), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfcfidus:{ *:[f32] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FCFIDUS:{ *:[f32] } f64:{ *:[f64] }:$frB)
/* 92680*/      0, /*End of Scope*/
/* 92681*/    0, /*End of Scope*/
/* 92682*/  /*SwitchOpcode*/ 35, TARGET_VAL(PPCISD::LFIWAX),// ->92720
/* 92685*/    OPC_RecordMemRef,
/* 92686*/    OPC_RecordNode, // #0 = 'PPClfiwax' chained node
/* 92687*/    OPC_RecordChild1, // #1 = $src
/* 92688*/    OPC_Scope, 14, /*->92704*/ // 2 children in Scope
/* 92690*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 92692*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 92695*/      OPC_EmitMergeInputChains1_0,
/* 92696*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LIWAX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 2/*#Ops*/, 2, 3, 
                // Src: (PPClfiwax:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (LIWAX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)
/* 92704*/    /*Scope*/ 14, /*->92719*/
/* 92705*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 92707*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 92710*/      OPC_EmitMergeInputChains1_0,
/* 92711*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LFIWAX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 2/*#Ops*/, 2, 3, 
                // Src: (PPClfiwax:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 12
                // Dst: (LFIWAX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)
/* 92719*/    0, /*End of Scope*/
/* 92720*/  /*SwitchOpcode*/ 35, TARGET_VAL(PPCISD::LFIWZX),// ->92758
/* 92723*/    OPC_RecordMemRef,
/* 92724*/    OPC_RecordNode, // #0 = 'PPClfiwzx' chained node
/* 92725*/    OPC_RecordChild1, // #1 = $src
/* 92726*/    OPC_Scope, 14, /*->92742*/ // 2 children in Scope
/* 92728*/      OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 92730*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 92733*/      OPC_EmitMergeInputChains1_0,
/* 92734*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 2/*#Ops*/, 2, 3, 
                // Src: (PPClfiwzx:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)
/* 92742*/    /*Scope*/ 14, /*->92757*/
/* 92743*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 92745*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 92748*/      OPC_EmitMergeInputChains1_0,
/* 92749*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LFIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 2/*#Ops*/, 2, 3, 
                // Src: (PPClfiwzx:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 12
                // Dst: (LFIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)
/* 92757*/    0, /*End of Scope*/
/* 92758*/  /*SwitchOpcode*/ 49, TARGET_VAL(PPCISD::VEXTS),// ->92810
/* 92761*/    OPC_RecordChild0, // #0 = $A
/* 92762*/    OPC_Scope, 22, /*->92786*/ // 2 children in Scope
/* 92764*/      OPC_CheckChild1Integer, 1, 
/* 92766*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 92768*/      OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2Ds), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 92775*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 92778*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 1, 2, 
                // Src: (PPCVexts:{ *:[f64] } f64:{ *:[f64] }:$A, 1:{ *:[iPTR] }) - Complexity = 408
                // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VEXTSB2Ds:{ *:[f64] } ?:{ *:[f64] }:$A), VSFRC:{ *:[i32] })
/* 92786*/    /*Scope*/ 22, /*->92809*/
/* 92787*/      OPC_CheckChild1Integer, 2, 
/* 92789*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 92791*/      OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2Ds), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 92798*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 92801*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 1, 2, 
                // Src: (PPCVexts:{ *:[f64] } f64:{ *:[f64] }:$A, 2:{ *:[iPTR] }) - Complexity = 408
                // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VEXTSH2Ds:{ *:[f64] } ?:{ *:[f64] }:$A), VSFRC:{ *:[i32] })
/* 92809*/    0, /*End of Scope*/
/* 92810*/  /*SwitchOpcode*/ 53|128,5/*693*/, TARGET_VAL(ISD::FMA),// ->93507
/* 92814*/    OPC_Scope, 21, /*->92837*/ // 17 children in Scope
/* 92816*/      OPC_RecordChild0, // #0 = $XA
/* 92817*/      OPC_RecordChild1, // #1 = $XB
/* 92818*/      OPC_MoveChild2,
/* 92819*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 92822*/      OPC_RecordChild0, // #2 = $XTi
/* 92823*/      OPC_MoveParent,
/* 92824*/      OPC_CheckType, MVT::f64,
/* 92826*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 92828*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMSUBADP), 0,
                    MVT::f64, 3/*#Ops*/, 2, 0, 1, 
                // Src: (fma:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB, (fneg:{ *:[f64] } f64:{ *:[f64] }:$XTi)) - Complexity = 406
                // Dst: (XSMSUBADP:{ *:[f64] } f64:{ *:[f64] }:$XTi, f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 92837*/    /*Scope*/ 21, /*->92859*/
/* 92838*/      OPC_MoveChild0,
/* 92839*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 92842*/      OPC_RecordChild0, // #0 = $A
/* 92843*/      OPC_MoveParent,
/* 92844*/      OPC_RecordChild1, // #1 = $C
/* 92845*/      OPC_RecordChild2, // #2 = $B
/* 92846*/      OPC_CheckType, MVT::f64,
/* 92848*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 92850*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBADP), 0,
                    MVT::f64, 3/*#Ops*/, 2, 1, 0, 
                // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } f64:{ *:[f64] }:$A), f64:{ *:[f64] }:$C, f64:{ *:[f64] }:$B) - Complexity = 406
                // Dst: (XSNMSUBADP:{ *:[f64] } ?:{ *:[f64] }:$B, ?:{ *:[f64] }:$C, ?:{ *:[f64] }:$A)
/* 92859*/    /*Scope*/ 60, /*->92920*/
/* 92860*/      OPC_RecordChild0, // #0 = $A
/* 92861*/      OPC_Scope, 20, /*->92883*/ // 2 children in Scope
/* 92863*/        OPC_MoveChild1,
/* 92864*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 92867*/        OPC_RecordChild0, // #1 = $C
/* 92868*/        OPC_MoveParent,
/* 92869*/        OPC_RecordChild2, // #2 = $B
/* 92870*/        OPC_CheckType, MVT::f64,
/* 92872*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 92874*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBADP), 0,
                      MVT::f64, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (fma:{ *:[f64] } f64:{ *:[f64] }:$A, (fneg:{ *:[f64] } f64:{ *:[f64] }:$C), f64:{ *:[f64] }:$B) - Complexity = 406
                  // Dst: (XSNMSUBADP:{ *:[f64] } ?:{ *:[f64] }:$B, ?:{ *:[f64] }:$C, ?:{ *:[f64] }:$A)
/* 92883*/      /*Scope*/ 35, /*->92919*/
/* 92884*/        OPC_RecordChild1, // #1 = $XB
/* 92885*/        OPC_MoveChild2,
/* 92886*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 92889*/        OPC_RecordChild0, // #2 = $XTi
/* 92890*/        OPC_MoveParent,
/* 92891*/        OPC_SwitchType /*2 cases */, 11, MVT::f32,// ->92905
/* 92894*/          OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 92896*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMSUBASP), 0,
                        MVT::f32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB, (fneg:{ *:[f32] } f32:{ *:[f32] }:$XTi)) - Complexity = 406
                    // Dst: (XSMSUBASP:{ *:[f32] } f32:{ *:[f32] }:$XTi, f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB)
/* 92905*/        /*SwitchType*/ 11, MVT::f128,// ->92918
/* 92907*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 92909*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMSUBQP), 0,
                        MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fma:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, (fneg:{ *:[f128] } f128:{ *:[f128] }:$vTi)) - Complexity = 406
                    // Dst: (XSMSUBQP:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 92918*/        0, // EndSwitchType
/* 92919*/      0, /*End of Scope*/
/* 92920*/    /*Scope*/ 21, /*->92942*/
/* 92921*/      OPC_MoveChild0,
/* 92922*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 92925*/      OPC_RecordChild0, // #0 = $A
/* 92926*/      OPC_MoveParent,
/* 92927*/      OPC_RecordChild1, // #1 = $C
/* 92928*/      OPC_RecordChild2, // #2 = $B
/* 92929*/      OPC_CheckType, MVT::f128,
/* 92931*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 92933*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBQP), 0,
                    MVT::f128, 3/*#Ops*/, 2, 1, 0, 
                // Src: (fma:{ *:[f128] } (fneg:{ *:[f128] } f128:{ *:[f128] }:$A), f128:{ *:[f128] }:$C, f128:{ *:[f128] }:$B) - Complexity = 406
                // Dst: (XSNMSUBQP:{ *:[f128] } ?:{ *:[f128] }:$B, ?:{ *:[f128] }:$C, ?:{ *:[f128] }:$A)
/* 92942*/    /*Scope*/ 106, /*->93049*/
/* 92943*/      OPC_RecordChild0, // #0 = $A
/* 92944*/      OPC_Scope, 20, /*->92966*/ // 2 children in Scope
/* 92946*/        OPC_MoveChild1,
/* 92947*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 92950*/        OPC_RecordChild0, // #1 = $C
/* 92951*/        OPC_MoveParent,
/* 92952*/        OPC_RecordChild2, // #2 = $B
/* 92953*/        OPC_CheckType, MVT::f128,
/* 92955*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 92957*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBQP), 0,
                      MVT::f128, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (fma:{ *:[f128] } f128:{ *:[f128] }:$A, (fneg:{ *:[f128] } f128:{ *:[f128] }:$C), f128:{ *:[f128] }:$B) - Complexity = 406
                  // Dst: (XSNMSUBQP:{ *:[f128] } ?:{ *:[f128] }:$B, ?:{ *:[f128] }:$C, ?:{ *:[f128] }:$A)
/* 92966*/      /*Scope*/ 81, /*->93048*/
/* 92967*/        OPC_RecordChild1, // #1 = $XB
/* 92968*/        OPC_Scope, 42, /*->93012*/ // 2 children in Scope
/* 92970*/          OPC_RecordChild2, // #2 = $XTi
/* 92971*/          OPC_SwitchType /*3 cases */, 11, MVT::f64,// ->92985
/* 92974*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 92976*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMADDADP), 0,
                          MVT::f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fma:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB, f64:{ *:[f64] }:$XTi) - Complexity = 403
                      // Dst: (XSMADDADP:{ *:[f64] } f64:{ *:[f64] }:$XTi, f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 92985*/          /*SwitchType*/ 11, MVT::f32,// ->92998
/* 92987*/            OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 92989*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMADDASP), 0,
                          MVT::f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fma:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB, f32:{ *:[f32] }:$XTi) - Complexity = 403
                      // Dst: (XSMADDASP:{ *:[f32] } f32:{ *:[f32] }:$XTi, f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB)
/* 92998*/          /*SwitchType*/ 11, MVT::f128,// ->93011
/* 93000*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 93002*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMADDQP), 0,
                          MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fma:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, f128:{ *:[f128] }:$vTi) - Complexity = 403
                      // Dst: (XSMADDQP:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 93011*/          0, // EndSwitchType
/* 93012*/        /*Scope*/ 34, /*->93047*/
/* 93013*/          OPC_MoveChild2,
/* 93014*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93017*/          OPC_RecordChild0, // #2 = $FRB
/* 93018*/          OPC_MoveParent,
/* 93019*/          OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->93033
/* 93022*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93024*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FMSUB), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, (fneg:{ *:[f64] } f64:{ *:[f64] }:$FRB)) - Complexity = 6
                      // Dst: (FMSUB:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, f64:{ *:[f64] }:$FRB)
/* 93033*/          /*SwitchType*/ 11, MVT::f32,// ->93046
/* 93035*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93037*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FMSUBS), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC, (fneg:{ *:[f32] } f32:{ *:[f32] }:$FRB)) - Complexity = 6
                      // Dst: (FMSUBS:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC, f32:{ *:[f32] }:$FRB)
/* 93046*/          0, // EndSwitchType
/* 93047*/        0, /*End of Scope*/
/* 93048*/      0, /*End of Scope*/
/* 93049*/    /*Scope*/ 21, /*->93071*/
/* 93050*/      OPC_MoveChild0,
/* 93051*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93054*/      OPC_RecordChild0, // #0 = $A
/* 93055*/      OPC_MoveParent,
/* 93056*/      OPC_RecordChild1, // #1 = $C
/* 93057*/      OPC_RecordChild2, // #2 = $B
/* 93058*/      OPC_CheckType, MVT::f64,
/* 93060*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93062*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FNMSUB), 0,
                    MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } f64:{ *:[f64] }:$A), f64:{ *:[f64] }:$C, f64:{ *:[f64] }:$B) - Complexity = 6
                // Dst: (FNMSUB:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$C, ?:{ *:[f64] }:$B)
/* 93071*/    /*Scope*/ 21, /*->93093*/
/* 93072*/      OPC_RecordChild0, // #0 = $A
/* 93073*/      OPC_MoveChild1,
/* 93074*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93077*/      OPC_RecordChild0, // #1 = $C
/* 93078*/      OPC_MoveParent,
/* 93079*/      OPC_RecordChild2, // #2 = $B
/* 93080*/      OPC_CheckType, MVT::f64,
/* 93082*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93084*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FNMSUB), 0,
                    MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fma:{ *:[f64] } f64:{ *:[f64] }:$A, (fneg:{ *:[f64] } f64:{ *:[f64] }:$C), f64:{ *:[f64] }:$B) - Complexity = 6
                // Dst: (FNMSUB:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$C, ?:{ *:[f64] }:$B)
/* 93093*/    /*Scope*/ 21, /*->93115*/
/* 93094*/      OPC_MoveChild0,
/* 93095*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93098*/      OPC_RecordChild0, // #0 = $A
/* 93099*/      OPC_MoveParent,
/* 93100*/      OPC_RecordChild1, // #1 = $C
/* 93101*/      OPC_RecordChild2, // #2 = $B
/* 93102*/      OPC_CheckType, MVT::f32,
/* 93104*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93106*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FNMSUBS), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } f32:{ *:[f32] }:$A), f32:{ *:[f32] }:$C, f32:{ *:[f32] }:$B) - Complexity = 6
                // Dst: (FNMSUBS:{ *:[f32] } ?:{ *:[f32] }:$A, ?:{ *:[f32] }:$C, ?:{ *:[f32] }:$B)
/* 93115*/    /*Scope*/ 93, /*->93209*/
/* 93116*/      OPC_RecordChild0, // #0 = $A
/* 93117*/      OPC_Scope, 20, /*->93139*/ // 2 children in Scope
/* 93119*/        OPC_MoveChild1,
/* 93120*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93123*/        OPC_RecordChild0, // #1 = $C
/* 93124*/        OPC_MoveParent,
/* 93125*/        OPC_RecordChild2, // #2 = $B
/* 93126*/        OPC_CheckType, MVT::f32,
/* 93128*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93130*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FNMSUBS), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fma:{ *:[f32] } f32:{ *:[f32] }:$A, (fneg:{ *:[f32] } f32:{ *:[f32] }:$C), f32:{ *:[f32] }:$B) - Complexity = 6
                  // Dst: (FNMSUBS:{ *:[f32] } ?:{ *:[f32] }:$A, ?:{ *:[f32] }:$C, ?:{ *:[f32] }:$B)
/* 93139*/      /*Scope*/ 68, /*->93208*/
/* 93140*/        OPC_RecordChild1, // #1 = $FRC
/* 93141*/        OPC_Scope, 29, /*->93172*/ // 2 children in Scope
/* 93143*/          OPC_RecordChild2, // #2 = $FRB
/* 93144*/          OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->93158
/* 93147*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93149*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FMADD), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, f64:{ *:[f64] }:$FRB) - Complexity = 3
                      // Dst: (FMADD:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, f64:{ *:[f64] }:$FRB)
/* 93158*/          /*SwitchType*/ 11, MVT::f32,// ->93171
/* 93160*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93162*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::FMADDS), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC, f32:{ *:[f32] }:$FRB) - Complexity = 3
                      // Dst: (FMADDS:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC, f32:{ *:[f32] }:$FRB)
/* 93171*/          0, // EndSwitchType
/* 93172*/        /*Scope*/ 34, /*->93207*/
/* 93173*/          OPC_MoveChild2,
/* 93174*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93177*/          OPC_RecordChild0, // #2 = $XTi
/* 93178*/          OPC_MoveParent,
/* 93179*/          OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->93193
/* 93182*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93184*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMSUBADP), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fma:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB, (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XTi)) - Complexity = 406
                      // Dst: (XVMSUBADP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XTi, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 93193*/          /*SwitchType*/ 11, MVT::v4f32,// ->93206
/* 93195*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93197*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMSUBASP), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XTi)) - Complexity = 406
                      // Dst: (XVMSUBASP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XTi, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 93206*/          0, // EndSwitchType
/* 93207*/        0, /*End of Scope*/
/* 93208*/      0, /*End of Scope*/
/* 93209*/    /*Scope*/ 21, /*->93231*/
/* 93210*/      OPC_MoveChild0,
/* 93211*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93214*/      OPC_RecordChild0, // #0 = $A
/* 93215*/      OPC_MoveParent,
/* 93216*/      OPC_RecordChild1, // #1 = $C
/* 93217*/      OPC_RecordChild2, // #2 = $B
/* 93218*/      OPC_CheckType, MVT::v2f64,
/* 93220*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93222*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBADP), 0,
                    MVT::v2f64, 3/*#Ops*/, 2, 1, 0, 
                // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$A), v2f64:{ *:[v2f64] }:$C, v2f64:{ *:[v2f64] }:$B) - Complexity = 406
                // Dst: (XVNMSUBADP:{ *:[v2f64] } ?:{ *:[v2f64] }:$B, ?:{ *:[v2f64] }:$C, ?:{ *:[v2f64] }:$A)
/* 93231*/    /*Scope*/ 21, /*->93253*/
/* 93232*/      OPC_RecordChild0, // #0 = $A
/* 93233*/      OPC_MoveChild1,
/* 93234*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93237*/      OPC_RecordChild0, // #1 = $C
/* 93238*/      OPC_MoveParent,
/* 93239*/      OPC_RecordChild2, // #2 = $B
/* 93240*/      OPC_CheckType, MVT::v2f64,
/* 93242*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93244*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBADP), 0,
                    MVT::v2f64, 3/*#Ops*/, 2, 1, 0, 
                // Src: (fma:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$A, (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$C), v2f64:{ *:[v2f64] }:$B) - Complexity = 406
                // Dst: (XVNMSUBADP:{ *:[v2f64] } ?:{ *:[v2f64] }:$B, ?:{ *:[v2f64] }:$C, ?:{ *:[v2f64] }:$A)
/* 93253*/    /*Scope*/ 21, /*->93275*/
/* 93254*/      OPC_MoveChild0,
/* 93255*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93258*/      OPC_RecordChild0, // #0 = $A
/* 93259*/      OPC_MoveParent,
/* 93260*/      OPC_RecordChild1, // #1 = $C
/* 93261*/      OPC_RecordChild2, // #2 = $B
/* 93262*/      OPC_CheckType, MVT::v4f32,
/* 93264*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93266*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBASP), 0,
                    MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A), v4f32:{ *:[v4f32] }:$C, v4f32:{ *:[v4f32] }:$B) - Complexity = 406
                // Dst: (XVNMSUBASP:{ *:[v4f32] } ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C, ?:{ *:[v4f32] }:$A)
/* 93275*/    /*Scope*/ 93, /*->93369*/
/* 93276*/      OPC_RecordChild0, // #0 = $A
/* 93277*/      OPC_Scope, 20, /*->93299*/ // 2 children in Scope
/* 93279*/        OPC_MoveChild1,
/* 93280*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93283*/        OPC_RecordChild0, // #1 = $C
/* 93284*/        OPC_MoveParent,
/* 93285*/        OPC_RecordChild2, // #2 = $B
/* 93286*/        OPC_CheckType, MVT::v4f32,
/* 93288*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93290*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBASP), 0,
                      MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$C), v4f32:{ *:[v4f32] }:$B) - Complexity = 406
                  // Dst: (XVNMSUBASP:{ *:[v4f32] } ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C, ?:{ *:[v4f32] }:$A)
/* 93299*/      /*Scope*/ 68, /*->93368*/
/* 93300*/        OPC_RecordChild1, // #1 = $XB
/* 93301*/        OPC_Scope, 29, /*->93332*/ // 2 children in Scope
/* 93303*/          OPC_RecordChild2, // #2 = $XTi
/* 93304*/          OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->93318
/* 93307*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93309*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMADDADP), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fma:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB, v2f64:{ *:[v2f64] }:$XTi) - Complexity = 403
                      // Dst: (XVMADDADP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XTi, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 93318*/          /*SwitchType*/ 11, MVT::v4f32,// ->93331
/* 93320*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93322*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMADDASP), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB, v4f32:{ *:[v4f32] }:$XTi) - Complexity = 403
                      // Dst: (XVMADDASP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XTi, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 93331*/          0, // EndSwitchType
/* 93332*/        /*Scope*/ 34, /*->93367*/
/* 93333*/          OPC_MoveChild2,
/* 93334*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93337*/          OPC_RecordChild0, // #2 = $FRB
/* 93338*/          OPC_MoveParent,
/* 93339*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->93353
/* 93342*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93344*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMSUB), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (fma:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC, (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)) - Complexity = 6
                      // Dst: (QVFMSUB:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 93353*/          /*SwitchType*/ 11, MVT::v4f32,// ->93366
/* 93355*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93357*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMSUBSs), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRC, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)) - Complexity = 6
                      // Dst: (QVFMSUBSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, v4f32:{ *:[v4f32] }:$FRC)
/* 93366*/          0, // EndSwitchType
/* 93367*/        0, /*End of Scope*/
/* 93368*/      0, /*End of Scope*/
/* 93369*/    /*Scope*/ 21, /*->93391*/
/* 93370*/      OPC_MoveChild0,
/* 93371*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93374*/      OPC_RecordChild0, // #0 = $A
/* 93375*/      OPC_MoveParent,
/* 93376*/      OPC_RecordChild1, // #1 = $C
/* 93377*/      OPC_RecordChild2, // #2 = $B
/* 93378*/      OPC_CheckType, MVT::v4f64,
/* 93380*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93382*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUB), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 2, 1, 
                // Src: (fma:{ *:[v4f64] } (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$A), v4f64:{ *:[v4f64] }:$C, v4f64:{ *:[v4f64] }:$B) - Complexity = 6
                // Dst: (QVFNMSUB:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 93391*/    /*Scope*/ 21, /*->93413*/
/* 93392*/      OPC_RecordChild0, // #0 = $A
/* 93393*/      OPC_MoveChild1,
/* 93394*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93397*/      OPC_RecordChild0, // #1 = $C
/* 93398*/      OPC_MoveParent,
/* 93399*/      OPC_RecordChild2, // #2 = $B
/* 93400*/      OPC_CheckType, MVT::v4f64,
/* 93402*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93404*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUB), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 2, 1, 
                // Src: (fma:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$A, (fneg:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$C), v4f64:{ *:[v4f64] }:$B) - Complexity = 6
                // Dst: (QVFNMSUB:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 93413*/    /*Scope*/ 21, /*->93435*/
/* 93414*/      OPC_MoveChild0,
/* 93415*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93418*/      OPC_RecordChild0, // #0 = $A
/* 93419*/      OPC_MoveParent,
/* 93420*/      OPC_RecordChild1, // #1 = $C
/* 93421*/      OPC_RecordChild2, // #2 = $B
/* 93422*/      OPC_CheckType, MVT::v4f32,
/* 93424*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93426*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUBSs), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 2, 1, 
                // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A), v4f32:{ *:[v4f32] }:$C, v4f32:{ *:[v4f32] }:$B) - Complexity = 6
                // Dst: (QVFNMSUBSs:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C)
/* 93435*/    /*Scope*/ 70, /*->93506*/
/* 93436*/      OPC_RecordChild0, // #0 = $A
/* 93437*/      OPC_Scope, 20, /*->93459*/ // 2 children in Scope
/* 93439*/        OPC_MoveChild1,
/* 93440*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93443*/        OPC_RecordChild0, // #1 = $C
/* 93444*/        OPC_MoveParent,
/* 93445*/        OPC_RecordChild2, // #2 = $B
/* 93446*/        OPC_CheckType, MVT::v4f32,
/* 93448*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93450*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUBSs), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 2, 1, 
                  // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$C), v4f32:{ *:[v4f32] }:$B) - Complexity = 6
                  // Dst: (QVFNMSUBSs:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C)
/* 93459*/      /*Scope*/ 45, /*->93505*/
/* 93460*/        OPC_RecordChild1, // #1 = $vC
/* 93461*/        OPC_RecordChild2, // #2 = $vB
/* 93462*/        OPC_SwitchType /*2 cases */, 26, MVT::v4f32,// ->93491
/* 93465*/          OPC_Scope, 11, /*->93478*/ // 2 children in Scope
/* 93467*/            OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 93469*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VMADDFP), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vC, v4f32:{ *:[v4f32] }:$vB) - Complexity = 3
                      // Dst: (VMADDFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vC, v4f32:{ *:[v4f32] }:$vB)
/* 93478*/          /*Scope*/ 11, /*->93490*/
/* 93479*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93481*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMADDSs), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRC, v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                      // Dst: (QVFMADDSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, v4f32:{ *:[v4f32] }:$FRC)
/* 93490*/          0, /*End of Scope*/
/* 93491*/        /*SwitchType*/ 11, MVT::v4f64,// ->93504
/* 93493*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93495*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMADD), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 2, 1, 
                    // Src: (fma:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                    // Dst: (QVFMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 93504*/        0, // EndSwitchType
/* 93505*/      0, /*End of Scope*/
/* 93506*/    0, /*End of Scope*/
/* 93507*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::ConstantFP),// ->93534
/* 93510*/    OPC_CheckPredicate, 41, // Predicate_fpimm0
/* 93512*/    OPC_SwitchType /*2 cases */, 8, MVT::f64,// ->93523
/* 93515*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93517*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXORdpz), 0,
                    MVT::f64, 0/*#Ops*/, 
                // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimm0>> - Complexity = 404
                // Dst: (XXLXORdpz:{ *:[f64] })
/* 93523*/    /*SwitchType*/ 8, MVT::f32,// ->93533
/* 93525*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93527*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXORspz), 0,
                    MVT::f32, 0/*#Ops*/, 
                // Src: (fpimm:{ *:[f32] })<<P:Predicate_fpimm0>> - Complexity = 404
                // Dst: (XXLXORspz:{ *:[f32] })
/* 93533*/    0, // EndSwitchType
/* 93534*/  /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::FADD),// ->93689
/* 93538*/    OPC_RecordChild0, // #0 = $XA
/* 93539*/    OPC_RecordChild1, // #1 = $XB
/* 93540*/    OPC_SwitchType /*6 cases */, 35, MVT::f64,// ->93578
/* 93543*/      OPC_Scope, 10, /*->93555*/ // 3 children in Scope
/* 93545*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93547*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSADDDP), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSADDDP:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 93555*/      /*Scope*/ 10, /*->93566*/
/* 93556*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93558*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FADD), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRB) - Complexity = 3
                  // Dst: (FADD:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRB)
/* 93566*/      /*Scope*/ 10, /*->93577*/
/* 93567*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 93569*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDADD), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f64] } f64:{ *:[f64] }:$RA, f64:{ *:[f64] }:$RB) - Complexity = 3
                  // Dst: (EFDADD:{ *:[f64] } f64:{ *:[f64] }:$RA, f64:{ *:[f64] }:$RB)
/* 93577*/      0, /*End of Scope*/
/* 93578*/    /*SwitchType*/ 35, MVT::f32,// ->93615
/* 93580*/      OPC_Scope, 10, /*->93592*/ // 3 children in Scope
/* 93582*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 93584*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSADDSP), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB) - Complexity = 403
                  // Dst: (XSADDSP:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB)
/* 93592*/      /*Scope*/ 10, /*->93603*/
/* 93593*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93595*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FADDS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRB) - Complexity = 3
                  // Dst: (FADDS:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRB)
/* 93603*/      /*Scope*/ 10, /*->93614*/
/* 93604*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 93606*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSADD), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[f32] } f32:{ *:[f32] }:$RA, f32:{ *:[f32] }:$RB) - Complexity = 3
                  // Dst: (EFSADD:{ *:[f32] } f32:{ *:[f32] }:$RA, f32:{ *:[f32] }:$RB)
/* 93614*/      0, /*End of Scope*/
/* 93615*/    /*SwitchType*/ 10, MVT::f128,// ->93627
/* 93617*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 93619*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSADDQP), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (fadd:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSADDQP:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 93627*/    /*SwitchType*/ 10, MVT::v2f64,// ->93639
/* 93629*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93631*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVADDDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fadd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVADDDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 93639*/    /*SwitchType*/ 35, MVT::v4f32,// ->93676
/* 93641*/      OPC_Scope, 10, /*->93653*/ // 3 children in Scope
/* 93643*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93645*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVADDSP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVADDSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 93653*/      /*Scope*/ 10, /*->93664*/
/* 93654*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 93656*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDFP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB) - Complexity = 3
                  // Dst: (VADDFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/* 93664*/      /*Scope*/ 10, /*->93675*/
/* 93665*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93667*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFADDSs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFADDSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB)
/* 93675*/      0, /*End of Scope*/
/* 93676*/    /*SwitchType*/ 10, MVT::v4f64,// ->93688
/* 93678*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93680*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFADD), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (fadd:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 93688*/    0, // EndSwitchType
/* 93689*/  /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(ISD::FMUL),// ->93865
/* 93693*/    OPC_RecordChild0, // #0 = $XA
/* 93694*/    OPC_RecordChild1, // #1 = $XB
/* 93695*/    OPC_SwitchType /*6 cases */, 35, MVT::f64,// ->93733
/* 93698*/      OPC_Scope, 10, /*->93710*/ // 3 children in Scope
/* 93700*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93702*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMULDP), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSMULDP:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 93710*/      /*Scope*/ 10, /*->93721*/
/* 93711*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93713*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FMUL), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC) - Complexity = 3
                  // Dst: (FMUL:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC)
/* 93721*/      /*Scope*/ 10, /*->93732*/
/* 93722*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 93724*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDMUL), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[f64] } f64:{ *:[f64] }:$RA, f64:{ *:[f64] }:$RB) - Complexity = 3
                  // Dst: (EFDMUL:{ *:[f64] } f64:{ *:[f64] }:$RA, f64:{ *:[f64] }:$RB)
/* 93732*/      0, /*End of Scope*/
/* 93733*/    /*SwitchType*/ 35, MVT::f32,// ->93770
/* 93735*/      OPC_Scope, 10, /*->93747*/ // 3 children in Scope
/* 93737*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 93739*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMULSP), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB) - Complexity = 403
                  // Dst: (XSMULSP:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB)
/* 93747*/      /*Scope*/ 10, /*->93758*/
/* 93748*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93750*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FMULS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC) - Complexity = 3
                  // Dst: (FMULS:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRC)
/* 93758*/      /*Scope*/ 10, /*->93769*/
/* 93759*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 93761*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSMUL), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[f32] } f32:{ *:[f32] }:$RA, f32:{ *:[f32] }:$RB) - Complexity = 3
                  // Dst: (EFSMUL:{ *:[f32] } f32:{ *:[f32] }:$RA, f32:{ *:[f32] }:$RB)
/* 93769*/      0, /*End of Scope*/
/* 93770*/    /*SwitchType*/ 10, MVT::f128,// ->93782
/* 93772*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 93774*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMULQP), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (fmul:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSMULQP:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 93782*/    /*SwitchType*/ 10, MVT::v2f64,// ->93794
/* 93784*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93786*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMULDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmul:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVMULDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 93794*/    /*SwitchType*/ 56, MVT::v4f32,// ->93852
/* 93796*/      OPC_Scope, 10, /*->93808*/ // 3 children in Scope
/* 93798*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93800*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMULSP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVMULSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 93808*/      /*Scope*/ 10, /*->93819*/
/* 93809*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93811*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMULSs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRC) - Complexity = 3
                  // Dst: (QVFMULSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRC)
/* 93819*/      /*Scope*/ 31, /*->93851*/
/* 93820*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 93822*/        OPC_EmitNode1, TARGET_VAL(PPC::V_SETALLONES), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 93828*/        OPC_EmitNode1, TARGET_VAL(PPC::V_SETALLONES), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 93834*/        OPC_EmitNode1, TARGET_VAL(PPC::VSLW), 0,
                      MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 93842*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMADDFP), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (fmul:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB) - Complexity = 3
                  // Dst: (VMADDFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$vA, ?:{ *:[v4f32] }:$vB, (VSLW:{ *:[v4i32] } (V_SETALLONES:{ *:[v4i32] }), (V_SETALLONES:{ *:[v4i32] })))
/* 93851*/      0, /*End of Scope*/
/* 93852*/    /*SwitchType*/ 10, MVT::v4f64,// ->93864
/* 93854*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93856*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMUL), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmul:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 3
                // Dst: (QVFMUL:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC)
/* 93864*/    0, // EndSwitchType
/* 93865*/  /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::FSUB),// ->94020
/* 93869*/    OPC_RecordChild0, // #0 = $XA
/* 93870*/    OPC_RecordChild1, // #1 = $XB
/* 93871*/    OPC_SwitchType /*6 cases */, 35, MVT::f64,// ->93909
/* 93874*/      OPC_Scope, 10, /*->93886*/ // 3 children in Scope
/* 93876*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93878*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSUBDP), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSSUBDP:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 93886*/      /*Scope*/ 10, /*->93897*/
/* 93887*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93889*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FSUB), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRB) - Complexity = 3
                  // Dst: (FSUB:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRB)
/* 93897*/      /*Scope*/ 10, /*->93908*/
/* 93898*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 93900*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDSUB), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[f64] } f64:{ *:[f64] }:$RA, f64:{ *:[f64] }:$RB) - Complexity = 3
                  // Dst: (EFDSUB:{ *:[f64] } f64:{ *:[f64] }:$RA, f64:{ *:[f64] }:$RB)
/* 93908*/      0, /*End of Scope*/
/* 93909*/    /*SwitchType*/ 35, MVT::f32,// ->93946
/* 93911*/      OPC_Scope, 10, /*->93923*/ // 3 children in Scope
/* 93913*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 93915*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSUBSP), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB) - Complexity = 403
                  // Dst: (XSSUBSP:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB)
/* 93923*/      /*Scope*/ 10, /*->93934*/
/* 93924*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 93926*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FSUBS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRB) - Complexity = 3
                  // Dst: (FSUBS:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRB)
/* 93934*/      /*Scope*/ 10, /*->93945*/
/* 93935*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 93937*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSSUB), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[f32] } f32:{ *:[f32] }:$RA, f32:{ *:[f32] }:$RB) - Complexity = 3
                  // Dst: (EFSSUB:{ *:[f32] } f32:{ *:[f32] }:$RA, f32:{ *:[f32] }:$RB)
/* 93945*/      0, /*End of Scope*/
/* 93946*/    /*SwitchType*/ 10, MVT::f128,// ->93958
/* 93948*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 93950*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSUBQP), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSSUBQP:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 93958*/    /*SwitchType*/ 10, MVT::v2f64,// ->93970
/* 93960*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93962*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVSUBDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVSUBDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 93970*/    /*SwitchType*/ 35, MVT::v4f32,// ->94007
/* 93972*/      OPC_Scope, 10, /*->93984*/ // 3 children in Scope
/* 93974*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 93976*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVSUBSP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVSUBSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 93984*/      /*Scope*/ 10, /*->93995*/
/* 93985*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 93987*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBFP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB) - Complexity = 3
                  // Dst: (VSUBFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/* 93995*/      /*Scope*/ 10, /*->94006*/
/* 93996*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 93998*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSUBSs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFSUBSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB)
/* 94006*/      0, /*End of Scope*/
/* 94007*/    /*SwitchType*/ 10, MVT::v4f64,// ->94019
/* 94009*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94011*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSUB), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFSUB:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 94019*/    0, // EndSwitchType
/* 94020*/  /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FDIV),// ->94137
/* 94023*/    OPC_RecordChild0, // #0 = $XA
/* 94024*/    OPC_RecordChild1, // #1 = $XB
/* 94025*/    OPC_SwitchType /*5 cases */, 35, MVT::f64,// ->94063
/* 94028*/      OPC_Scope, 10, /*->94040*/ // 3 children in Scope
/* 94030*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94032*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSDIVDP), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSDIVDP:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 94040*/      /*Scope*/ 10, /*->94051*/
/* 94041*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94043*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FDIV), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRB) - Complexity = 3
                  // Dst: (FDIV:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRB)
/* 94051*/      /*Scope*/ 10, /*->94062*/
/* 94052*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 94054*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDDIV), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f64] } f64:{ *:[f64] }:$RA, f64:{ *:[f64] }:$RB) - Complexity = 3
                  // Dst: (EFDDIV:{ *:[f64] } f64:{ *:[f64] }:$RA, f64:{ *:[f64] }:$RB)
/* 94062*/      0, /*End of Scope*/
/* 94063*/    /*SwitchType*/ 35, MVT::f32,// ->94100
/* 94065*/      OPC_Scope, 10, /*->94077*/ // 3 children in Scope
/* 94067*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 94069*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSDIVSP), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB) - Complexity = 403
                  // Dst: (XSDIVSP:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB)
/* 94077*/      /*Scope*/ 10, /*->94088*/
/* 94078*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94080*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FDIVS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRB) - Complexity = 3
                  // Dst: (FDIVS:{ *:[f32] } f32:{ *:[f32] }:$FRA, f32:{ *:[f32] }:$FRB)
/* 94088*/      /*Scope*/ 10, /*->94099*/
/* 94089*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 94091*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSDIV), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:{ *:[f32] } f32:{ *:[f32] }:$RA, f32:{ *:[f32] }:$RB) - Complexity = 3
                  // Dst: (EFSDIV:{ *:[f32] } f32:{ *:[f32] }:$RA, f32:{ *:[f32] }:$RB)
/* 94099*/      0, /*End of Scope*/
/* 94100*/    /*SwitchType*/ 10, MVT::f128,// ->94112
/* 94102*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 94104*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSDIVQP), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (fdiv:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSDIVQP:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 94112*/    /*SwitchType*/ 10, MVT::v2f64,// ->94124
/* 94114*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94116*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVDIVDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fdiv:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVDIVDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 94124*/    /*SwitchType*/ 10, MVT::v4f32,// ->94136
/* 94126*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94128*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVDIVSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (fdiv:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                // Dst: (XVDIVSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 94136*/    0, // EndSwitchType
/* 94137*/  /*SwitchOpcode*/ 84, TARGET_VAL(ISD::FSQRT),// ->94224
/* 94140*/    OPC_RecordChild0, // #0 = $XB
/* 94141*/    OPC_SwitchType /*5 cases */, 22, MVT::f64,// ->94166
/* 94144*/      OPC_Scope, 9, /*->94155*/ // 2 children in Scope
/* 94146*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94148*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSQRTDP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSSQRTDP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94155*/      /*Scope*/ 9, /*->94165*/
/* 94156*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94158*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FSQRT), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FSQRT:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94165*/      0, /*End of Scope*/
/* 94166*/    /*SwitchType*/ 22, MVT::f32,// ->94190
/* 94168*/      OPC_Scope, 9, /*->94179*/ // 2 children in Scope
/* 94170*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 94172*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSQRTSP), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:{ *:[f32] } f32:{ *:[f32] }:$XB) - Complexity = 403
                  // Dst: (XSSQRTSP:{ *:[f32] } f32:{ *:[f32] }:$XB)
/* 94179*/      /*Scope*/ 9, /*->94189*/
/* 94180*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94182*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FSQRTS), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                  // Dst: (FSQRTS:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 94189*/      0, /*End of Scope*/
/* 94190*/    /*SwitchType*/ 9, MVT::f128,// ->94201
/* 94192*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 94194*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSQRTQP), 0,
                    MVT::f128, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSSQRTQP:{ *:[f128] } f128:{ *:[f128] }:$vB)
/* 94201*/    /*SwitchType*/ 9, MVT::v2f64,// ->94212
/* 94203*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94205*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVSQRTDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVSQRTDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 94212*/    /*SwitchType*/ 9, MVT::v4f32,// ->94223
/* 94214*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94216*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVSQRTSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (fsqrt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                // Dst: (XVSQRTSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 94223*/    0, // EndSwitchType
/* 94224*/  /*SwitchOpcode*/ 107, TARGET_VAL(PPCISD::FRE),// ->94334
/* 94227*/    OPC_RecordChild0, // #0 = $XB
/* 94228*/    OPC_SwitchType /*5 cases */, 22, MVT::f64,// ->94253
/* 94231*/      OPC_Scope, 9, /*->94242*/ // 2 children in Scope
/* 94233*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94235*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSREDP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfre:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSREDP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94242*/      /*Scope*/ 9, /*->94252*/
/* 94243*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94245*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FRE), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfre:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FRE:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94252*/      0, /*End of Scope*/
/* 94253*/    /*SwitchType*/ 22, MVT::f32,// ->94277
/* 94255*/      OPC_Scope, 9, /*->94266*/ // 2 children in Scope
/* 94257*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 94259*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRESP), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfre:{ *:[f32] } f32:{ *:[f32] }:$XB) - Complexity = 403
                  // Dst: (XSRESP:{ *:[f32] } f32:{ *:[f32] }:$XB)
/* 94266*/      /*Scope*/ 9, /*->94276*/
/* 94267*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94269*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FRES), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfre:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                  // Dst: (FRES:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 94276*/      0, /*End of Scope*/
/* 94277*/    /*SwitchType*/ 9, MVT::v2f64,// ->94288
/* 94279*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94281*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVREDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (PPCfre:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVREDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 94288*/    /*SwitchType*/ 32, MVT::v4f32,// ->94322
/* 94290*/      OPC_Scope, 9, /*->94301*/ // 3 children in Scope
/* 94292*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94294*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRESP), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfre:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVRESP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 94301*/      /*Scope*/ 9, /*->94311*/
/* 94302*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 94304*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VREFP), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfre:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A) - Complexity = 3
                  // Dst: (VREFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A)
/* 94311*/      /*Scope*/ 9, /*->94321*/
/* 94312*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94314*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRESs), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfre:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFRESs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 94321*/      0, /*End of Scope*/
/* 94322*/    /*SwitchType*/ 9, MVT::v4f64,// ->94333
/* 94324*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94326*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRE), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (PPCfre:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFRE:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 94333*/    0, // EndSwitchType
/* 94334*/  /*SwitchOpcode*/ 107, TARGET_VAL(PPCISD::FRSQRTE),// ->94444
/* 94337*/    OPC_RecordChild0, // #0 = $XB
/* 94338*/    OPC_SwitchType /*5 cases */, 22, MVT::f64,// ->94363
/* 94341*/      OPC_Scope, 9, /*->94352*/ // 2 children in Scope
/* 94343*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94345*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRSQRTEDP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfrsqrte:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSRSQRTEDP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94352*/      /*Scope*/ 9, /*->94362*/
/* 94353*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94355*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FRSQRTE), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfrsqrte:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FRSQRTE:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94362*/      0, /*End of Scope*/
/* 94363*/    /*SwitchType*/ 22, MVT::f32,// ->94387
/* 94365*/      OPC_Scope, 9, /*->94376*/ // 2 children in Scope
/* 94367*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 94369*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRSQRTESP), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfrsqrte:{ *:[f32] } f32:{ *:[f32] }:$XB) - Complexity = 403
                  // Dst: (XSRSQRTESP:{ *:[f32] } f32:{ *:[f32] }:$XB)
/* 94376*/      /*Scope*/ 9, /*->94386*/
/* 94377*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94379*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FRSQRTES), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfrsqrte:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                  // Dst: (FRSQRTES:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 94386*/      0, /*End of Scope*/
/* 94387*/    /*SwitchType*/ 9, MVT::v2f64,// ->94398
/* 94389*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94391*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSQRTEDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (PPCfrsqrte:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVRSQRTEDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 94398*/    /*SwitchType*/ 32, MVT::v4f32,// ->94432
/* 94400*/      OPC_Scope, 9, /*->94411*/ // 3 children in Scope
/* 94402*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94404*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSQRTESP), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfrsqrte:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVRSQRTESP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 94411*/      /*Scope*/ 9, /*->94421*/
/* 94412*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 94414*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VRSQRTEFP), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfrsqrte:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A) - Complexity = 3
                  // Dst: (VRSQRTEFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A)
/* 94421*/      /*Scope*/ 9, /*->94431*/
/* 94422*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94424*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSQRTESs), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (PPCfrsqrte:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFRSQRTESs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 94431*/      0, /*End of Scope*/
/* 94432*/    /*SwitchType*/ 9, MVT::v4f64,// ->94443
/* 94434*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94436*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSQRTE), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (PPCfrsqrte:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFRSQRTE:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 94443*/    0, // EndSwitchType
/* 94444*/  /*SwitchOpcode*/ 118, TARGET_VAL(ISD::FABS),// ->94565
/* 94447*/    OPC_RecordChild0, // #0 = $XB
/* 94448*/    OPC_SwitchType /*6 cases */, 32, MVT::f64,// ->94483
/* 94451*/      OPC_Scope, 9, /*->94462*/ // 3 children in Scope
/* 94453*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94455*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSABSDP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSABSDP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94462*/      /*Scope*/ 9, /*->94472*/
/* 94463*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94465*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FABSD), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FABSD:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94472*/      /*Scope*/ 9, /*->94482*/
/* 94473*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 94475*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDABS), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[f64] } f64:{ *:[f64] }:$RA) - Complexity = 3
                  // Dst: (EFDABS:{ *:[f64] } f64:{ *:[f64] }:$RA)
/* 94482*/      0, /*End of Scope*/
/* 94483*/    /*SwitchType*/ 9, MVT::f128,// ->94494
/* 94485*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 94487*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSABSQP), 0,
                    MVT::f128, 1/*#Ops*/, 0, 
                // Src: (fabs:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSABSQP:{ *:[f128] } f128:{ *:[f128] }:$vB)
/* 94494*/    /*SwitchType*/ 22, MVT::f32,// ->94518
/* 94496*/      OPC_Scope, 9, /*->94507*/ // 2 children in Scope
/* 94498*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94500*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FABSS), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                  // Dst: (FABSS:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 94507*/      /*Scope*/ 9, /*->94517*/
/* 94508*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 94510*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::EFSABS), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[f32] } f32:{ *:[f32] }:$RA) - Complexity = 3
                  // Dst: (EFSABS:{ *:[f32] } f32:{ *:[f32] }:$RA)
/* 94517*/      0, /*End of Scope*/
/* 94518*/    /*SwitchType*/ 9, MVT::v2f64,// ->94529
/* 94520*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94522*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVABSDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fabs:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVABSDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 94529*/    /*SwitchType*/ 22, MVT::v4f32,// ->94553
/* 94531*/      OPC_Scope, 9, /*->94542*/ // 2 children in Scope
/* 94533*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94535*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVABSSP), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVABSSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 94542*/      /*Scope*/ 9, /*->94552*/
/* 94543*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94545*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFABSs), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fabs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFABSs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 94552*/      0, /*End of Scope*/
/* 94553*/    /*SwitchType*/ 9, MVT::v4f64,// ->94564
/* 94555*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94557*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFABS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (fabs:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFABS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 94564*/    0, // EndSwitchType
/* 94565*/  /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(ISD::FCOPYSIGN),// ->94791
/* 94569*/    OPC_RecordChild0, // #0 = $XB
/* 94570*/    OPC_RecordChild1, // #1 = $XA
/* 94571*/    OPC_Scope, 53, /*->94626*/ // 6 children in Scope
/* 94573*/      OPC_CheckChild1Type, MVT::f64,
/* 94575*/      OPC_SwitchType /*2 cases */, 24, MVT::f64,// ->94602
/* 94578*/        OPC_Scope, 10, /*->94590*/ // 2 children in Scope
/* 94580*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94582*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCPSGNDP), 0,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (fcopysign:{ *:[f64] } f64:{ *:[f64] }:$XB, f64:{ *:[f64] }:$XA) - Complexity = 403
                    // Dst: (XSCPSGNDP:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 94590*/        /*Scope*/ 10, /*->94601*/
/* 94591*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94593*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::FCPSGND), 0,
                        MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (fcopysign:{ *:[f64] } f64:{ *:[f64] }:$frB, f64:{ *:[f64] }:$frA) - Complexity = 3
                    // Dst: (FCPSGND:{ *:[f64] } f64:{ *:[f64] }:$frA, f64:{ *:[f64] }:$frB)
/* 94601*/        0, /*End of Scope*/
/* 94602*/      /*SwitchType*/ 21, MVT::f32,// ->94625
/* 94604*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94606*/        OPC_EmitInteger, MVT::i32, PPC::F4RCRegClassID,
/* 94609*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 94617*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCPSGNS), 0,
                      MVT::f32, 2/*#Ops*/, 3, 0, 
                  // Src: (fcopysign:{ *:[f32] } f32:{ *:[f32] }:$frB, f64:{ *:[f64] }:$frA) - Complexity = 3
                  // Dst: (FCPSGNS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } ?:{ *:[f64] }:$frA, F4RC:{ *:[i32] }), ?:{ *:[f32] }:$frB)
/* 94625*/      0, // EndSwitchType
/* 94626*/    /*Scope*/ 14, /*->94641*/
/* 94627*/      OPC_CheckChild1Type, MVT::f128,
/* 94629*/      OPC_CheckType, MVT::f128,
/* 94631*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 94633*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCPSGNQP), 0,
                    MVT::f128, 2/*#Ops*/, 1, 0, 
                // Src: (fcopysign:{ *:[f128] } f128:{ *:[f128] }:$vB, f128:{ *:[f128] }:$vA) - Complexity = 403
                // Dst: (XSCPSGNQP:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 94641*/    /*Scope*/ 39, /*->94681*/
/* 94642*/      OPC_CheckChild1Type, MVT::f32,
/* 94644*/      OPC_SwitchType /*2 cases */, 10, MVT::f32,// ->94657
/* 94647*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94649*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCPSGNS), 0,
                      MVT::f32, 2/*#Ops*/, 1, 0, 
                  // Src: (fcopysign:{ *:[f32] } f32:{ *:[f32] }:$frB, f32:{ *:[f32] }:$frA) - Complexity = 3
                  // Dst: (FCPSGNS:{ *:[f32] } f32:{ *:[f32] }:$frA, f32:{ *:[f32] }:$frB)
/* 94657*/      /*SwitchType*/ 21, MVT::f64,// ->94680
/* 94659*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94661*/        OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 94664*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 94672*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCPSGND), 0,
                      MVT::f64, 2/*#Ops*/, 3, 0, 
                  // Src: (fcopysign:{ *:[f64] } f64:{ *:[f64] }:$frB, f32:{ *:[f32] }:$frA) - Complexity = 3
                  // Dst: (FCPSGND:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$frA, F8RC:{ *:[i32] }), ?:{ *:[f64] }:$frB)
/* 94680*/      0, // EndSwitchType
/* 94681*/    /*Scope*/ 14, /*->94696*/
/* 94682*/      OPC_CheckChild1Type, MVT::v2f64,
/* 94684*/      OPC_CheckType, MVT::v2f64,
/* 94686*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94688*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCPSGNDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 1, 0, 
                // Src: (fcopysign:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB, v2f64:{ *:[v2f64] }:$XA) - Complexity = 403
                // Dst: (XVCPSGNDP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 94696*/    /*Scope*/ 53, /*->94750*/
/* 94697*/      OPC_CheckChild1Type, MVT::v4f32,
/* 94699*/      OPC_SwitchType /*2 cases */, 24, MVT::v4f32,// ->94726
/* 94702*/        OPC_Scope, 10, /*->94714*/ // 2 children in Scope
/* 94704*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94706*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCPSGNSP), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 0, 
                    // Src: (fcopysign:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB, v4f32:{ *:[v4f32] }:$XA) - Complexity = 403
                    // Dst: (XVCPSGNSP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 94714*/        /*Scope*/ 10, /*->94725*/
/* 94715*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94717*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCPSGNs), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 0, 
                    // Src: (fcopysign:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB, v4f32:{ *:[v4f32] }:$FRA) - Complexity = 3
                    // Dst: (QVFCPSGNs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB)
/* 94725*/        0, /*End of Scope*/
/* 94726*/      /*SwitchType*/ 21, MVT::v4f64,// ->94749
/* 94728*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94730*/        OPC_EmitInteger, MVT::i32, PPC::QFRCRegClassID,
/* 94733*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 94741*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCPSGN), 0,
                      MVT::v4f64, 2/*#Ops*/, 3, 0, 
                  // Src: (fcopysign:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$frB, v4f32:{ *:[v4f32] }:$frA) - Complexity = 3
                  // Dst: (QVFCPSGN:{ *:[v4f64] } (COPY_TO_REGCLASS:{ *:[v4f64] } ?:{ *:[v4f32] }:$frA, QFRC:{ *:[i32] }), ?:{ *:[v4f64] }:$frB)
/* 94749*/      0, // EndSwitchType
/* 94750*/    /*Scope*/ 39, /*->94790*/
/* 94751*/      OPC_CheckChild1Type, MVT::v4f64,
/* 94753*/      OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->94766
/* 94756*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94758*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCPSGN), 0,
                      MVT::v4f64, 2/*#Ops*/, 1, 0, 
                  // Src: (fcopysign:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRA) - Complexity = 3
                  // Dst: (QVFCPSGN:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 94766*/      /*SwitchType*/ 21, MVT::v4f32,// ->94789
/* 94768*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 94770*/        OPC_EmitInteger, MVT::i32, PPC::QSRCRegClassID,
/* 94773*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 94781*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCPSGNs), 0,
                      MVT::v4f32, 2/*#Ops*/, 3, 0, 
                  // Src: (fcopysign:{ *:[v4f32] } QSRC:{ *:[v4f32] }:$frB, QFRC:{ *:[v4f64] }:$frA) - Complexity = 3
                  // Dst: (QVFCPSGNs:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } ?:{ *:[v4f64] }:$frA, QSRC:{ *:[i32] }), ?:{ *:[v4f32] }:$frB)
/* 94789*/      0, // EndSwitchType
/* 94790*/    0, /*End of Scope*/
/* 94791*/  /*SwitchOpcode*/ 36, TARGET_VAL(PPCISD::FCTIDZ),// ->94830
/* 94794*/    OPC_RecordChild0, // #0 = $XB
/* 94795*/    OPC_SwitchType /*2 cases */, 20, MVT::f64,// ->94818
/* 94798*/      OPC_Scope, 9, /*->94809*/ // 2 children in Scope
/* 94800*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94802*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfctidz:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSCVDPSXDS:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94809*/      /*Scope*/ 7, /*->94817*/
/* 94810*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCTIDZ), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfctidz:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FCTIDZ:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94817*/      0, /*End of Scope*/
/* 94818*/    /*SwitchType*/ 9, MVT::f32,// ->94829
/* 94820*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94822*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPSXDSs), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (PPCfctidz:{ *:[f32] } f32:{ *:[f32] }:$XB) - Complexity = 403
                // Dst: (XSCVDPSXDSs:{ *:[f32] } f32:{ *:[f32] }:$XB)
/* 94829*/    0, // EndSwitchType
/* 94830*/  /*SwitchOpcode*/ 38, TARGET_VAL(PPCISD::FCTIWZ),// ->94871
/* 94833*/    OPC_RecordChild0, // #0 = $XB
/* 94834*/    OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->94859
/* 94837*/      OPC_Scope, 9, /*->94848*/ // 2 children in Scope
/* 94839*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94841*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSCVDPSXWS:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94848*/      /*Scope*/ 9, /*->94858*/
/* 94849*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94851*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCTIWZ), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FCTIWZ:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94858*/      0, /*End of Scope*/
/* 94859*/    /*SwitchType*/ 9, MVT::f32,// ->94870
/* 94861*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94863*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPSXWSs), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (PPCfctiwz:{ *:[f32] } f32:{ *:[f32] }:$XB) - Complexity = 403
                // Dst: (XSCVDPSXWSs:{ *:[f32] } f32:{ *:[f32] }:$XB)
/* 94870*/    0, // EndSwitchType
/* 94871*/  /*SwitchOpcode*/ 36, TARGET_VAL(PPCISD::FCTIDUZ),// ->94910
/* 94874*/    OPC_RecordChild0, // #0 = $XB
/* 94875*/    OPC_SwitchType /*2 cases */, 20, MVT::f64,// ->94898
/* 94878*/      OPC_Scope, 9, /*->94889*/ // 2 children in Scope
/* 94880*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94882*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfctiduz:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSCVDPUXDS:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94889*/      /*Scope*/ 7, /*->94897*/
/* 94890*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCTIDUZ), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfctiduz:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FCTIDUZ:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94897*/      0, /*End of Scope*/
/* 94898*/    /*SwitchType*/ 9, MVT::f32,// ->94909
/* 94900*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94902*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPUXDSs), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (PPCfctiduz:{ *:[f32] } f32:{ *:[f32] }:$XB) - Complexity = 403
                // Dst: (XSCVDPUXDSs:{ *:[f32] } f32:{ *:[f32] }:$XB)
/* 94909*/    0, // EndSwitchType
/* 94910*/  /*SwitchOpcode*/ 36, TARGET_VAL(PPCISD::FCTIWUZ),// ->94949
/* 94913*/    OPC_RecordChild0, // #0 = $XB
/* 94914*/    OPC_SwitchType /*2 cases */, 20, MVT::f64,// ->94937
/* 94917*/      OPC_Scope, 9, /*->94928*/ // 2 children in Scope
/* 94919*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94921*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSCVDPUXWS:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94928*/      /*Scope*/ 7, /*->94936*/
/* 94929*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FCTIWUZ), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FCTIWUZ:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94936*/      0, /*End of Scope*/
/* 94937*/    /*SwitchType*/ 9, MVT::f32,// ->94948
/* 94939*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94941*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPUXWSs), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (PPCfctiwuz:{ *:[f32] } f32:{ *:[f32] }:$XB) - Complexity = 403
                // Dst: (XSCVDPUXWSs:{ *:[f32] } f32:{ *:[f32] }:$XB)
/* 94948*/    0, // EndSwitchType
/* 94949*/  /*SwitchOpcode*/ 103, TARGET_VAL(ISD::FROUND),// ->95055
/* 94952*/    OPC_RecordChild0, // #0 = $XB
/* 94953*/    OPC_SwitchType /*6 cases */, 22, MVT::f64,// ->94978
/* 94956*/      OPC_Scope, 9, /*->94967*/ // 2 children in Scope
/* 94958*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 94960*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRDPI), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fround:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSRDPI:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 94967*/      /*Scope*/ 9, /*->94977*/
/* 94968*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 94970*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FRIND), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fround:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FRIND:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 94977*/      0, /*End of Scope*/
/* 94978*/    /*SwitchType*/ 17, MVT::f128,// ->94997
/* 94980*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 94982*/      OPC_EmitInteger, MVT::i32, 0, 
/* 94985*/      OPC_EmitInteger, MVT::i32, 0, 
/* 94988*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRQPI), 0,
                    MVT::f128, 3/*#Ops*/, 1, 0, 2, 
                // Src: (fround:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSRQPI:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[f128] }:$vB, 0:{ *:[i32] })
/* 94997*/    /*SwitchType*/ 9, MVT::f32,// ->95008
/* 94999*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95001*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FRINS), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                // Dst: (FRINS:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 95008*/    /*SwitchType*/ 9, MVT::v2f64,// ->95019
/* 95010*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95012*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRDPI), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVRDPI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 95019*/    /*SwitchType*/ 22, MVT::v4f32,// ->95043
/* 95021*/      OPC_Scope, 9, /*->95032*/ // 2 children in Scope
/* 95023*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95025*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSPI), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fround:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVRSPI:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 95032*/      /*Scope*/ 9, /*->95042*/
/* 95033*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95035*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRINs), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fround:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFRINs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 95042*/      0, /*End of Scope*/
/* 95043*/    /*SwitchType*/ 9, MVT::v4f64,// ->95054
/* 95045*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95047*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIN), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFRIN:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 95054*/    0, // EndSwitchType
/* 95055*/  /*SwitchOpcode*/ 68, TARGET_VAL(ISD::FNEARBYINT),// ->95126
/* 95058*/    OPC_RecordChild0, // #0 = $XB
/* 95059*/    OPC_SwitchType /*4 cases */, 9, MVT::f64,// ->95071
/* 95062*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95064*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRDPIC), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                // Dst: (XSRDPIC:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 95071*/    /*SwitchType*/ 17, MVT::f128,// ->95090
/* 95073*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95075*/      OPC_EmitInteger, MVT::i32, 0, 
/* 95078*/      OPC_EmitInteger, MVT::i32, 3, 
/* 95081*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRQPI), 0,
                    MVT::f128, 3/*#Ops*/, 1, 0, 2, 
                // Src: (fnearbyint:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSRQPI:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[f128] }:$vB, 3:{ *:[i32] })
/* 95090*/    /*SwitchType*/ 9, MVT::v2f64,// ->95101
/* 95092*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95094*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRDPIC), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fnearbyint:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVRDPIC:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 95101*/    /*SwitchType*/ 22, MVT::v4f32,// ->95125
/* 95103*/      OPC_Scope, 9, /*->95114*/ // 2 children in Scope
/* 95105*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95107*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSPIC), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fnearbyint:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVRSPIC:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 95114*/      /*Scope*/ 9, /*->95124*/
/* 95115*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 95117*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIN), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fnearbyint:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA) - Complexity = 3
                  // Dst: (VRFIN:{ *:[v4f32] } ?:{ *:[v4f32] }:$vA)
/* 95124*/      0, /*End of Scope*/
/* 95125*/    0, // EndSwitchType
/* 95126*/  /*SwitchOpcode*/ 113, TARGET_VAL(ISD::FFLOOR),// ->95242
/* 95129*/    OPC_RecordChild0, // #0 = $XB
/* 95130*/    OPC_SwitchType /*6 cases */, 22, MVT::f64,// ->95155
/* 95133*/      OPC_Scope, 9, /*->95144*/ // 2 children in Scope
/* 95135*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95137*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRDPIM), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (ffloor:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSRDPIM:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 95144*/      /*Scope*/ 9, /*->95154*/
/* 95145*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95147*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FRIMD), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (ffloor:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FRIMD:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 95154*/      0, /*End of Scope*/
/* 95155*/    /*SwitchType*/ 17, MVT::f128,// ->95174
/* 95157*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95159*/      OPC_EmitInteger, MVT::i32, 1, 
/* 95162*/      OPC_EmitInteger, MVT::i32, 3, 
/* 95165*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRQPI), 0,
                    MVT::f128, 3/*#Ops*/, 1, 0, 2, 
                // Src: (ffloor:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSRQPI:{ *:[f128] } 1:{ *:[i32] }, ?:{ *:[f128] }:$vB, 3:{ *:[i32] })
/* 95174*/    /*SwitchType*/ 9, MVT::f32,// ->95185
/* 95176*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95178*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FRIMS), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                // Dst: (FRIMS:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 95185*/    /*SwitchType*/ 9, MVT::v2f64,// ->95196
/* 95187*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95189*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRDPIM), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVRDPIM:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 95196*/    /*SwitchType*/ 32, MVT::v4f32,// ->95230
/* 95198*/      OPC_Scope, 9, /*->95209*/ // 3 children in Scope
/* 95200*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95202*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSPIM), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (ffloor:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVRSPIM:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 95209*/      /*Scope*/ 9, /*->95219*/
/* 95210*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 95212*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIM), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (ffloor:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA) - Complexity = 3
                  // Dst: (VRFIM:{ *:[v4f32] } ?:{ *:[v4f32] }:$vA)
/* 95219*/      /*Scope*/ 9, /*->95229*/
/* 95220*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95222*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIMs), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (ffloor:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFRIMs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 95229*/      0, /*End of Scope*/
/* 95230*/    /*SwitchType*/ 9, MVT::v4f64,// ->95241
/* 95232*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95234*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIM), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFRIM:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 95241*/    0, // EndSwitchType
/* 95242*/  /*SwitchOpcode*/ 113, TARGET_VAL(ISD::FCEIL),// ->95358
/* 95245*/    OPC_RecordChild0, // #0 = $XB
/* 95246*/    OPC_SwitchType /*6 cases */, 22, MVT::f64,// ->95271
/* 95249*/      OPC_Scope, 9, /*->95260*/ // 2 children in Scope
/* 95251*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95253*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRDPIP), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fceil:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSRDPIP:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 95260*/      /*Scope*/ 9, /*->95270*/
/* 95261*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95263*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FRIPD), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fceil:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FRIPD:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 95270*/      0, /*End of Scope*/
/* 95271*/    /*SwitchType*/ 17, MVT::f128,// ->95290
/* 95273*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95275*/      OPC_EmitInteger, MVT::i32, 1, 
/* 95278*/      OPC_EmitInteger, MVT::i32, 2, 
/* 95281*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRQPI), 0,
                    MVT::f128, 3/*#Ops*/, 1, 0, 2, 
                // Src: (fceil:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSRQPI:{ *:[f128] } 1:{ *:[i32] }, ?:{ *:[f128] }:$vB, 2:{ *:[i32] })
/* 95290*/    /*SwitchType*/ 9, MVT::f32,// ->95301
/* 95292*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95294*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FRIPS), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                // Dst: (FRIPS:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 95301*/    /*SwitchType*/ 9, MVT::v2f64,// ->95312
/* 95303*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95305*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRDPIP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVRDPIP:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 95312*/    /*SwitchType*/ 32, MVT::v4f32,// ->95346
/* 95314*/      OPC_Scope, 9, /*->95325*/ // 3 children in Scope
/* 95316*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95318*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSPIP), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fceil:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVRSPIP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 95325*/      /*Scope*/ 9, /*->95335*/
/* 95326*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 95328*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIP), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fceil:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA) - Complexity = 3
                  // Dst: (VRFIP:{ *:[v4f32] } ?:{ *:[v4f32] }:$vA)
/* 95335*/      /*Scope*/ 9, /*->95345*/
/* 95336*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95338*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIPs), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fceil:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFRIPs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 95345*/      0, /*End of Scope*/
/* 95346*/    /*SwitchType*/ 9, MVT::v4f64,// ->95357
/* 95348*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95350*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIP), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFRIP:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 95357*/    0, // EndSwitchType
/* 95358*/  /*SwitchOpcode*/ 113, TARGET_VAL(ISD::FTRUNC),// ->95474
/* 95361*/    OPC_RecordChild0, // #0 = $XB
/* 95362*/    OPC_SwitchType /*6 cases */, 22, MVT::f64,// ->95387
/* 95365*/      OPC_Scope, 9, /*->95376*/ // 2 children in Scope
/* 95367*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95369*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRDPIZ), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (ftrunc:{ *:[f64] } f64:{ *:[f64] }:$XB) - Complexity = 403
                  // Dst: (XSRDPIZ:{ *:[f64] } f64:{ *:[f64] }:$XB)
/* 95376*/      /*Scope*/ 9, /*->95386*/
/* 95377*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95379*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::FRIZD), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (ftrunc:{ *:[f64] } f64:{ *:[f64] }:$frB) - Complexity = 3
                  // Dst: (FRIZD:{ *:[f64] } f64:{ *:[f64] }:$frB)
/* 95386*/      0, /*End of Scope*/
/* 95387*/    /*SwitchType*/ 17, MVT::f128,// ->95406
/* 95389*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95391*/      OPC_EmitInteger, MVT::i32, 1, 
/* 95394*/      OPC_EmitInteger, MVT::i32, 1, 
/* 95397*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRQPI), 0,
                    MVT::f128, 3/*#Ops*/, 1, 0, 2, 
                // Src: (ftrunc:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
                // Dst: (XSRQPI:{ *:[f128] } 1:{ *:[i32] }, ?:{ *:[f128] }:$vB, 1:{ *:[i32] })
/* 95406*/    /*SwitchType*/ 9, MVT::f32,// ->95417
/* 95408*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95410*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FRIZS), 0,
                    MVT::f32, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[f32] } f32:{ *:[f32] }:$frB) - Complexity = 3
                // Dst: (FRIZS:{ *:[f32] } f32:{ *:[f32] }:$frB)
/* 95417*/    /*SwitchType*/ 9, MVT::v2f64,// ->95428
/* 95419*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95421*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRDPIZ), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB) - Complexity = 403
                // Dst: (XVRDPIZ:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XB)
/* 95428*/    /*SwitchType*/ 32, MVT::v4f32,// ->95462
/* 95430*/      OPC_Scope, 9, /*->95441*/ // 3 children in Scope
/* 95432*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 95434*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSPIZ), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (ftrunc:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB) - Complexity = 403
                  // Dst: (XVRSPIZ:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 95441*/      /*Scope*/ 9, /*->95451*/
/* 95442*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 95444*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIZ), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (ftrunc:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA) - Complexity = 3
                  // Dst: (VRFIZ:{ *:[v4f32] } ?:{ *:[v4f32] }:$vA)
/* 95451*/      /*Scope*/ 9, /*->95461*/
/* 95452*/        OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95454*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIZs), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (ftrunc:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFRIZs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRB)
/* 95461*/      0, /*End of Scope*/
/* 95462*/    /*SwitchType*/ 9, MVT::v4f64,// ->95473
/* 95464*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95466*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (ftrunc:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFRIZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 95473*/    0, // EndSwitchType
/* 95474*/  /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FP_EXTEND),// ->95591
/* 95477*/    OPC_RecordChild0, // #0 = $src
/* 95478*/    OPC_SwitchType /*3 cases */, 55, MVT::f64,// ->95536
/* 95481*/      OPC_Scope, 13, /*->95496*/ // 3 children in Scope
/* 95483*/        OPC_CheckPatternPredicate, 6, // (PPCSubTarget->hasP8Vector())
/* 95485*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95488*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fpextend:{ *:[f64] } f32:{ *:[f32] }:$src) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$src, VSFRC:{ *:[i32] })
/* 95496*/      /*Scope*/ 13, /*->95510*/
/* 95497*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95499*/        OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 95502*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fpextend:{ *:[f64] } f32:{ *:[f32] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$src, F8RC:{ *:[i32] })
/* 95510*/      /*Scope*/ 24, /*->95535*/
/* 95511*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasSPE())
/* 95513*/        OPC_Scope, 7, /*->95522*/ // 2 children in Scope
/* 95515*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::EFDCFS), 0,
                        MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fpextend:{ *:[f64] } f32:{ *:[f32] }:$RB) - Complexity = 3
                    // Dst: (EFDCFS:{ *:[f64] } f32:{ *:[f32] }:$RB)
/* 95522*/        /*Scope*/ 11, /*->95534*/
/* 95523*/          OPC_EmitInteger, MVT::i32, PPC::SPERCRegClassID,
/* 95526*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fpextend:{ *:[f64] } f32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$src, SPERC:{ *:[i32] })
/* 95534*/        0, /*End of Scope*/
/* 95535*/      0, /*End of Scope*/
/* 95536*/    /*SwitchType*/ 37, MVT::f128,// ->95575
/* 95538*/      OPC_Scope, 11, /*->95551*/ // 2 children in Scope
/* 95540*/        OPC_CheckChild0Type, MVT::f64,
/* 95542*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95544*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPQP), 0,
                      MVT::f128, 1/*#Ops*/, 0, 
                  // Src: (fpextend:{ *:[f128] } f64:{ *:[f64] }:$vB) - Complexity = 403
                  // Dst: (XSCVDPQP:{ *:[f128] } f64:{ *:[f64] }:$vB)
/* 95551*/      /*Scope*/ 22, /*->95574*/
/* 95552*/        OPC_CheckChild0Type, MVT::f32,
/* 95554*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95556*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 95559*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95567*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPQP), 0,
                      MVT::f128, 1/*#Ops*/, 2, 
                  // Src: (fpextend:{ *:[f128] } f32:{ *:[f32] }:$src) - Complexity = 403
                  // Dst: (XSCVDPQP:{ *:[f128] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$src, VFRC:{ *:[i32] }))
/* 95574*/      0, /*End of Scope*/
/* 95575*/    /*SwitchType*/ 13, MVT::v4f64,// ->95590
/* 95577*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/* 95579*/      OPC_EmitInteger, MVT::i32, PPC::QFRCRegClassID,
/* 95582*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (fpextend:{ *:[v4f64] } v4f32:{ *:[v4f32] }:$src) - Complexity = 3
                // Dst: (COPY_TO_REGCLASS:{ *:[v4f64] } ?:{ *:[v4f32] }:$src, QFRC:{ *:[i32] })
/* 95590*/    0, // EndSwitchType
/* 95591*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::MTVSRA),// ->95623
/* 95594*/    OPC_RecordChild0, // #0 = $rA
/* 95595*/    OPC_CheckType, MVT::f64,
/* 95597*/    OPC_Scope, 11, /*->95610*/ // 2 children in Scope
/* 95599*/      OPC_CheckChild0Type, MVT::i64,
/* 95601*/      OPC_CheckPatternPredicate, 29, // (PPCSubTarget->hasDirectMove())
/* 95603*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRD), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (PPCmtvsra:{ *:[f64] } i64:{ *:[i64] }:$rA) - Complexity = 403
                // Dst: (MTVSRD:{ *:[f64] } i64:{ *:[i64] }:$rA)
/* 95610*/    /*Scope*/ 11, /*->95622*/
/* 95611*/      OPC_CheckChild0Type, MVT::i32,
/* 95613*/      OPC_CheckPatternPredicate, 29, // (PPCSubTarget->hasDirectMove())
/* 95615*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRWA), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (PPCmtvsra:{ *:[f64] } i32:{ *:[i32] }:$rA) - Complexity = 403
                // Dst: (MTVSRWA:{ *:[f64] } i32:{ *:[i32] }:$rA)
/* 95622*/    0, /*End of Scope*/
/* 95623*/  /*SwitchOpcode*/ 68, TARGET_VAL(PPCISD::MTVSRZ),// ->95694
/* 95626*/    OPC_RecordChild0, // #0 = $rA
/* 95627*/    OPC_CheckChild0Type, MVT::i32,
/* 95629*/    OPC_SwitchType /*3 cases */, 9, MVT::f64,// ->95641
/* 95632*/      OPC_CheckPatternPredicate, 29, // (PPCSubTarget->hasDirectMove())
/* 95634*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRWZ), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (PPCmtvsrz:{ *:[f64] } i32:{ *:[i32] }:$rA) - Complexity = 403
                // Dst: (MTVSRWZ:{ *:[f64] } i32:{ *:[i32] }:$rA)
/* 95641*/    /*SwitchType*/ 24, MVT::v8i16,// ->95667
/* 95643*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95645*/      OPC_EmitInteger, MVT::i64, 1, 
/* 95648*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/* 95655*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 95658*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v8i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (PPCmtvsrz:{ *:[v8i16] } i32:{ *:[i32] }:$A) - Complexity = 403
                // Dst: (SUBREG_TO_REG:{ *:[v8i16] } 1:{ *:[i64] }, (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$A), sub_64:{ *:[i32] })
/* 95667*/    /*SwitchType*/ 24, MVT::v16i8,// ->95693
/* 95669*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95671*/      OPC_EmitInteger, MVT::i64, 1, 
/* 95674*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/* 95681*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 95684*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (PPCmtvsrz:{ *:[v16i8] } i32:{ *:[i32] }:$A) - Complexity = 403
                // Dst: (SUBREG_TO_REG:{ *:[v16i8] } 1:{ *:[i64] }, (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$A), sub_64:{ *:[i32] })
/* 95693*/    0, // EndSwitchType
/* 95694*/  /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FRINT),// ->95717
/* 95697*/    OPC_RecordChild0, // #0 = $vB
/* 95698*/    OPC_CheckType, MVT::f128,
/* 95700*/    OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95702*/    OPC_EmitInteger, MVT::i32, 0, 
/* 95705*/    OPC_EmitInteger, MVT::i32, 3, 
/* 95708*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::XSRQPIX), 0,
                  MVT::f128, 3/*#Ops*/, 1, 0, 2, 
              // Src: (frint:{ *:[f128] } f128:{ *:[f128] }:$vB) - Complexity = 403
              // Dst: (XSRQPIX:{ *:[f128] } 0:{ *:[i32] }, ?:{ *:[f128] }:$vB, 3:{ *:[i32] })
/* 95717*/  /*SwitchOpcode*/ 52, TARGET_VAL(PPCISD::BUILD_FP128),// ->95772
/* 95720*/    OPC_RecordChild0, // #0 = $rB
/* 95721*/    OPC_CheckChild0Type, MVT::i64,
/* 95723*/    OPC_RecordChild1, // #1 = $rA
/* 95724*/    OPC_CheckType, MVT::f128,
/* 95726*/    OPC_Scope, 21, /*->95749*/ // 2 children in Scope
/* 95728*/      OPC_CheckPatternPredicate, 40, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0())
/* 95730*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRDD), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95738*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 95741*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 2, 3, 
                // Src: (PPCbuild_fp128:{ *:[f128] } i64:{ *:[i64] }:$rB, i64:{ *:[i64] }:$rA) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (MTVSRDD:{ *:[v4i32] } ?:{ *:[i64] }:$rB, ?:{ *:[i64] }:$rA), VRRC:{ *:[i32] })
/* 95749*/    /*Scope*/ 21, /*->95771*/
/* 95750*/      OPC_CheckPatternPredicate, 41, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian())
/* 95752*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRDD), 0,
                    MVT::v4i32, 2/*#Ops*/, 1, 0,  // Results = #2
/* 95760*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 95763*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 2, 3, 
                // Src: (PPCbuild_fp128:{ *:[f128] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[f128] } (MTVSRDD:{ *:[v4i32] } ?:{ *:[i64] }:$rB, ?:{ *:[i64] }:$rA), VRRC:{ *:[i32] })
/* 95771*/    0, /*End of Scope*/
/* 95772*/  /*SwitchOpcode*/ 8, TARGET_VAL(PPCISD::MFFS),// ->95783
/* 95775*/    OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95777*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::MFFS), 0,
                  MVT::f64, 0/*#Ops*/, 
              // Src: (PPCmffs:{ *:[f64] }) - Complexity = 3
              // Dst: (MFFS:{ *:[f64] })
/* 95783*/  /*SwitchOpcode*/ 31, TARGET_VAL(PPCISD::FSEL),// ->95817
/* 95786*/    OPC_RecordChild0, // #0 = $FRA
/* 95787*/    OPC_RecordChild1, // #1 = $FRC
/* 95788*/    OPC_RecordChild2, // #2 = $FRB
/* 95789*/    OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->95803
/* 95792*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95794*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FSELD), 0,
                    MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (PPCfsel:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, f64:{ *:[f64] }:$FRB) - Complexity = 3
                // Dst: (FSELD:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRC, f64:{ *:[f64] }:$FRB)
/* 95803*/    /*SwitchType*/ 11, MVT::f32,// ->95816
/* 95805*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95807*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::FSELS), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (PPCfsel:{ *:[f32] } f64:{ *:[f64] }:$FRA, f32:{ *:[f32] }:$FRC, f32:{ *:[f32] }:$FRB) - Complexity = 3
                // Dst: (FSELS:{ *:[f32] } f64:{ *:[f64] }:$FRA, f32:{ *:[f32] }:$FRC, f32:{ *:[f32] }:$FRB)
/* 95816*/    0, // EndSwitchType
/* 95817*/  /*SwitchOpcode*/ 14, TARGET_VAL(PPCISD::FADDRTZ),// ->95834
/* 95820*/    OPC_RecordChild0, // #0 = $FRA
/* 95821*/    OPC_RecordChild1, // #1 = $FRB
/* 95822*/    OPC_CheckType, MVT::f64,
/* 95824*/    OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasFPU())
/* 95826*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::FADDrtz), 0,
                  MVT::f64, 2/*#Ops*/, 0, 1, 
              // Src: (PPCfaddrtz:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRB) - Complexity = 3
              // Dst: (FADDrtz:{ *:[f64] } f64:{ *:[f64] }:$FRA, f64:{ *:[f64] }:$FRB)
/* 95834*/  /*SwitchOpcode*/ 96|128,27/*3552*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->99390
/* 95838*/    OPC_Scope, 96, /*->95936*/ // 12 children in Scope
/* 95840*/      OPC_RecordChild0, // #0 = $A
/* 95841*/      OPC_MoveChild0,
/* 95842*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95845*/      OPC_CheckPredicate, 42, // Predicate_immAnyExt8
/* 95847*/      OPC_CheckType, MVT::i32,
/* 95849*/      OPC_MoveParent,
/* 95850*/      OPC_CheckChild1Same, 0,
/* 95852*/      OPC_CheckChild2Same, 0,
/* 95854*/      OPC_CheckChild3Same, 0,
/* 95856*/      OPC_MoveChild4,
/* 95857*/      OPC_CheckSame, 0,
/* 95859*/      OPC_MoveParent,
/* 95860*/      OPC_MoveChild5,
/* 95861*/      OPC_CheckSame, 0,
/* 95863*/      OPC_MoveParent,
/* 95864*/      OPC_MoveChild6,
/* 95865*/      OPC_CheckSame, 0,
/* 95867*/      OPC_MoveParent,
/* 95868*/      OPC_MoveChild7,
/* 95869*/      OPC_CheckSame, 0,
/* 95871*/      OPC_MoveParent,
/* 95872*/      OPC_MoveChild, 8,
/* 95874*/      OPC_CheckSame, 0,
/* 95876*/      OPC_MoveParent,
/* 95877*/      OPC_MoveChild, 9,
/* 95879*/      OPC_CheckSame, 0,
/* 95881*/      OPC_MoveParent,
/* 95882*/      OPC_MoveChild, 10,
/* 95884*/      OPC_CheckSame, 0,
/* 95886*/      OPC_MoveParent,
/* 95887*/      OPC_MoveChild, 11,
/* 95889*/      OPC_CheckSame, 0,
/* 95891*/      OPC_MoveParent,
/* 95892*/      OPC_MoveChild, 12,
/* 95894*/      OPC_CheckSame, 0,
/* 95896*/      OPC_MoveParent,
/* 95897*/      OPC_MoveChild, 13,
/* 95899*/      OPC_CheckSame, 0,
/* 95901*/      OPC_MoveParent,
/* 95902*/      OPC_MoveChild, 14,
/* 95904*/      OPC_CheckSame, 0,
/* 95906*/      OPC_MoveParent,
/* 95907*/      OPC_MoveChild, 15,
/* 95909*/      OPC_CheckSame, 0,
/* 95911*/      OPC_MoveParent,
/* 95912*/      OPC_CheckType, MVT::v16i8,
/* 95914*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 95916*/      OPC_EmitConvertToTarget, 0,
/* 95918*/      OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTIB), 0,
                    MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/* 95925*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 95928*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i8, 2/*#Ops*/, 2, 3, 
                // Src: (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immAnyExt8>>:$A) - Complexity = 467
                // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } (XXSPLTIB:{ *:[v4i32] } (imm:{ *:[i32] }):$A), VSRC:{ *:[i32] })
/* 95936*/    /*Scope*/ 51|128,14/*1843*/, /*->97781*/
/* 95938*/      OPC_MoveChild0,
/* 95939*/      OPC_SwitchOpcode /*3 cases */, 21|128,9/*1173*/, TARGET_VAL(PPCISD::MFVSR),// ->97117
/* 95944*/        OPC_MoveChild0,
/* 95945*/        OPC_SwitchOpcode /*4 cases */, 0|128,4/*512*/, TARGET_VAL(PPCISD::FCTIWZ),// ->96462
/* 95950*/          OPC_Scope, 60|128,1/*188*/, /*->96141*/ // 2 children in Scope
/* 95953*/            OPC_MoveChild0,
/* 95954*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 95957*/            OPC_RecordChild0, // #0 = $A
/* 95958*/            OPC_CheckChild0Type, MVT::v2f64,
/* 95960*/            OPC_CheckChild1Integer, 0, 
/* 95962*/            OPC_MoveParent,
/* 95963*/            OPC_CheckType, MVT::f64,
/* 95965*/            OPC_MoveParent,
/* 95966*/            OPC_CheckType, MVT::i32,
/* 95968*/            OPC_MoveParent,
/* 95969*/            OPC_MoveChild1,
/* 95970*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 95973*/            OPC_MoveChild0,
/* 95974*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 95977*/            OPC_MoveChild0,
/* 95978*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 95981*/            OPC_CheckChild0Same, 0,
/* 95983*/            OPC_CheckChild1Integer, 1, 
/* 95985*/            OPC_MoveParent,
/* 95986*/            OPC_CheckType, MVT::f64,
/* 95988*/            OPC_MoveParent,
/* 95989*/            OPC_CheckType, MVT::i32,
/* 95991*/            OPC_MoveParent,
/* 95992*/            OPC_MoveChild2,
/* 95993*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 95996*/            OPC_MoveChild0,
/* 95997*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 96000*/            OPC_MoveChild0,
/* 96001*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 96004*/            OPC_RecordChild0, // #1 = $B
/* 96005*/            OPC_CheckChild0Type, MVT::v2f64,
/* 96007*/            OPC_CheckChild1Integer, 0, 
/* 96009*/            OPC_MoveParent,
/* 96010*/            OPC_CheckType, MVT::f64,
/* 96012*/            OPC_MoveParent,
/* 96013*/            OPC_CheckType, MVT::i32,
/* 96015*/            OPC_MoveParent,
/* 96016*/            OPC_MoveChild3,
/* 96017*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96020*/            OPC_MoveChild0,
/* 96021*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 96024*/            OPC_MoveChild0,
/* 96025*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 96028*/            OPC_CheckChild0Same, 1,
/* 96030*/            OPC_CheckChild1Integer, 1, 
/* 96032*/            OPC_MoveParent,
/* 96033*/            OPC_CheckType, MVT::f64,
/* 96035*/            OPC_MoveParent,
/* 96036*/            OPC_CheckType, MVT::i32,
/* 96038*/            OPC_MoveParent,
/* 96039*/            OPC_CheckType, MVT::v4i32,
/* 96041*/            OPC_Scope, 48, /*->96091*/ // 2 children in Scope
/* 96043*/              OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 96045*/              OPC_EmitInteger, MVT::i32, 0, 
/* 96048*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 96057*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/* 96064*/              OPC_EmitInteger, MVT::i32, 3, 
/* 96067*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 5,  // Results = #6
/* 96076*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/* 96083*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                            MVT::v4i32, 2/*#Ops*/, 4, 7, 
                        // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 0:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 1:{ *:[iPTR] })))) - Complexity = 459
                        // Dst: (VMRGEW:{ *:[v4i32] } (XVCVDPSXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$A, v2f64:{ *:[v2f64] }:$B, 0:{ *:[i32] })), (XVCVDPSXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$A, v2f64:{ *:[v2f64] }:$B, 3:{ *:[i32] })))
/* 96091*/            /*Scope*/ 48, /*->96140*/
/* 96092*/              OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 96094*/              OPC_EmitInteger, MVT::i32, 0, 
/* 96097*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 96106*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/* 96113*/              OPC_EmitInteger, MVT::i32, 3, 
/* 96116*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 5,  // Results = #6
/* 96125*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/* 96132*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                            MVT::v4i32, 2/*#Ops*/, 4, 7, 
                        // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 0:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 1:{ *:[iPTR] })))) - Complexity = 459
                        // Dst: (VMRGEW:{ *:[v4i32] } (XVCVDPSXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$B, v2f64:{ *:[v2f64] }:$A, 0:{ *:[i32] })), (XVCVDPSXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$B, v2f64:{ *:[v2f64] }:$A, 3:{ *:[i32] })))
/* 96140*/            0, /*End of Scope*/
/* 96141*/          /*Scope*/ 62|128,2/*318*/, /*->96461*/
/* 96143*/            OPC_RecordChild0, // #0 = $A
/* 96144*/            OPC_CheckType, MVT::f64,
/* 96146*/            OPC_MoveParent,
/* 96147*/            OPC_CheckType, MVT::i32,
/* 96149*/            OPC_MoveParent,
/* 96150*/            OPC_MoveChild1,
/* 96151*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96154*/            OPC_MoveChild0,
/* 96155*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 96158*/            OPC_CheckType, MVT::f64,
/* 96160*/            OPC_Scope, 71, /*->96233*/ // 2 children in Scope
/* 96162*/              OPC_CheckChild0Same, 0,
/* 96164*/              OPC_MoveParent,
/* 96165*/              OPC_CheckType, MVT::i32,
/* 96167*/              OPC_MoveParent,
/* 96168*/              OPC_MoveChild2,
/* 96169*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96172*/              OPC_MoveChild0,
/* 96173*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 96176*/              OPC_CheckChild0Same, 0,
/* 96178*/              OPC_CheckType, MVT::f64,
/* 96180*/              OPC_MoveParent,
/* 96181*/              OPC_CheckType, MVT::i32,
/* 96183*/              OPC_MoveParent,
/* 96184*/              OPC_MoveChild3,
/* 96185*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96188*/              OPC_MoveChild0,
/* 96189*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 96192*/              OPC_CheckChild0Same, 0,
/* 96194*/              OPC_CheckType, MVT::f64,
/* 96196*/              OPC_MoveParent,
/* 96197*/              OPC_CheckType, MVT::i32,
/* 96199*/              OPC_MoveParent,
/* 96200*/              OPC_CheckType, MVT::v4i32,
/* 96202*/              OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 96204*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                            MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 96211*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96214*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 96222*/              OPC_EmitInteger, MVT::i32, 1, 
/* 96225*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                            MVT::v4i32, 2/*#Ops*/, 3, 4, 
                        // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$A))) - Complexity = 427
                        // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPSXWS:{ *:[f64] } ?:{ *:[f64] }:$A), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/* 96233*/            /*Scope*/ 97|128,1/*225*/, /*->96460*/
/* 96235*/              OPC_RecordChild0, // #1 = $B
/* 96236*/              OPC_MoveParent,
/* 96237*/              OPC_CheckType, MVT::i32,
/* 96239*/              OPC_MoveParent,
/* 96240*/              OPC_MoveChild2,
/* 96241*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96244*/              OPC_MoveChild0,
/* 96245*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 96248*/              OPC_RecordChild0, // #2 = $C
/* 96249*/              OPC_CheckType, MVT::f64,
/* 96251*/              OPC_MoveParent,
/* 96252*/              OPC_CheckType, MVT::i32,
/* 96254*/              OPC_MoveParent,
/* 96255*/              OPC_MoveChild3,
/* 96256*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96259*/              OPC_MoveChild0,
/* 96260*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 96263*/              OPC_RecordChild0, // #3 = $D
/* 96264*/              OPC_CheckType, MVT::f64,
/* 96266*/              OPC_MoveParent,
/* 96267*/              OPC_CheckType, MVT::i32,
/* 96269*/              OPC_MoveParent,
/* 96270*/              OPC_CheckType, MVT::v4i32,
/* 96272*/              OPC_Scope, 92, /*->96366*/ // 2 children in Scope
/* 96274*/                OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 96276*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96279*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 96287*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96290*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 2, 6,  // Results = #7
/* 96298*/                OPC_EmitInteger, MVT::i32, 0, 
/* 96301*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/* 96310*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/* 96317*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96320*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 11,  // Results = #12
/* 96328*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96331*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 3, 13,  // Results = #14
/* 96339*/                OPC_EmitInteger, MVT::i32, 0, 
/* 96342*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/* 96351*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/* 96358*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                              MVT::v4i32, 2/*#Ops*/, 10, 17, 
                          // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$B)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$C)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$D))) - Complexity = 427
                          // Dst: (VMRGEW:{ *:[v4i32] } (XVCVDPSXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$A, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$C, VSRC:{ *:[i32] }), 0:{ *:[i32] })), (XVCVDPSXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$B, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$D, VSRC:{ *:[i32] }), 0:{ *:[i32] })))
/* 96366*/              /*Scope*/ 92, /*->96459*/
/* 96367*/                OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 96369*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96372*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 96380*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96383*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 6,  // Results = #7
/* 96391*/                OPC_EmitInteger, MVT::i32, 0, 
/* 96394*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/* 96403*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/* 96410*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96413*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 2, 11,  // Results = #12
/* 96421*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96424*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 13,  // Results = #14
/* 96432*/                OPC_EmitInteger, MVT::i32, 0, 
/* 96435*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/* 96444*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/* 96451*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                              MVT::v4i32, 2/*#Ops*/, 10, 17, 
                          // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$B)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$C)), (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } f64:{ *:[f64] }:$D))) - Complexity = 427
                          // Dst: (VMRGEW:{ *:[v4i32] } (XVCVDPSXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$D, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$B, VSRC:{ *:[i32] }), 0:{ *:[i32] })), (XVCVDPSXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$C, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$A, VSRC:{ *:[i32] }), 0:{ *:[i32] })))
/* 96459*/              0, /*End of Scope*/
/* 96460*/            0, /*End of Scope*/
/* 96461*/          0, /*End of Scope*/
/* 96462*/        /*SwitchOpcode*/ 0|128,4/*512*/, TARGET_VAL(PPCISD::FCTIWUZ),// ->96978
/* 96466*/          OPC_Scope, 60|128,1/*188*/, /*->96657*/ // 2 children in Scope
/* 96469*/            OPC_MoveChild0,
/* 96470*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 96473*/            OPC_RecordChild0, // #0 = $A
/* 96474*/            OPC_CheckChild0Type, MVT::v2f64,
/* 96476*/            OPC_CheckChild1Integer, 0, 
/* 96478*/            OPC_MoveParent,
/* 96479*/            OPC_CheckType, MVT::f64,
/* 96481*/            OPC_MoveParent,
/* 96482*/            OPC_CheckType, MVT::i32,
/* 96484*/            OPC_MoveParent,
/* 96485*/            OPC_MoveChild1,
/* 96486*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96489*/            OPC_MoveChild0,
/* 96490*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/* 96493*/            OPC_MoveChild0,
/* 96494*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 96497*/            OPC_CheckChild0Same, 0,
/* 96499*/            OPC_CheckChild1Integer, 1, 
/* 96501*/            OPC_MoveParent,
/* 96502*/            OPC_CheckType, MVT::f64,
/* 96504*/            OPC_MoveParent,
/* 96505*/            OPC_CheckType, MVT::i32,
/* 96507*/            OPC_MoveParent,
/* 96508*/            OPC_MoveChild2,
/* 96509*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96512*/            OPC_MoveChild0,
/* 96513*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/* 96516*/            OPC_MoveChild0,
/* 96517*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 96520*/            OPC_RecordChild0, // #1 = $B
/* 96521*/            OPC_CheckChild0Type, MVT::v2f64,
/* 96523*/            OPC_CheckChild1Integer, 0, 
/* 96525*/            OPC_MoveParent,
/* 96526*/            OPC_CheckType, MVT::f64,
/* 96528*/            OPC_MoveParent,
/* 96529*/            OPC_CheckType, MVT::i32,
/* 96531*/            OPC_MoveParent,
/* 96532*/            OPC_MoveChild3,
/* 96533*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96536*/            OPC_MoveChild0,
/* 96537*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/* 96540*/            OPC_MoveChild0,
/* 96541*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 96544*/            OPC_CheckChild0Same, 1,
/* 96546*/            OPC_CheckChild1Integer, 1, 
/* 96548*/            OPC_MoveParent,
/* 96549*/            OPC_CheckType, MVT::f64,
/* 96551*/            OPC_MoveParent,
/* 96552*/            OPC_CheckType, MVT::i32,
/* 96554*/            OPC_MoveParent,
/* 96555*/            OPC_CheckType, MVT::v4i32,
/* 96557*/            OPC_Scope, 48, /*->96607*/ // 2 children in Scope
/* 96559*/              OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 96561*/              OPC_EmitInteger, MVT::i32, 0, 
/* 96564*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 96573*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/* 96580*/              OPC_EmitInteger, MVT::i32, 3, 
/* 96583*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 5,  // Results = #6
/* 96592*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/* 96599*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                            MVT::v4i32, 2/*#Ops*/, 4, 7, 
                        // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 0:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 1:{ *:[iPTR] })))) - Complexity = 459
                        // Dst: (VMRGEW:{ *:[v4i32] } (XVCVDPUXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$A, v2f64:{ *:[v2f64] }:$B, 0:{ *:[i32] })), (XVCVDPUXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$A, v2f64:{ *:[v2f64] }:$B, 3:{ *:[i32] })))
/* 96607*/            /*Scope*/ 48, /*->96656*/
/* 96608*/              OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 96610*/              OPC_EmitInteger, MVT::i32, 0, 
/* 96613*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 96622*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/* 96629*/              OPC_EmitInteger, MVT::i32, 3, 
/* 96632*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 5,  // Results = #6
/* 96641*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/* 96648*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                            MVT::v4i32, 2/*#Ops*/, 4, 7, 
                        // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 0:{ *:[iPTR] }))), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 1:{ *:[iPTR] })))) - Complexity = 459
                        // Dst: (VMRGEW:{ *:[v4i32] } (XVCVDPUXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$B, v2f64:{ *:[v2f64] }:$A, 0:{ *:[i32] })), (XVCVDPUXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$B, v2f64:{ *:[v2f64] }:$A, 3:{ *:[i32] })))
/* 96656*/            0, /*End of Scope*/
/* 96657*/          /*Scope*/ 62|128,2/*318*/, /*->96977*/
/* 96659*/            OPC_RecordChild0, // #0 = $A
/* 96660*/            OPC_CheckType, MVT::f64,
/* 96662*/            OPC_MoveParent,
/* 96663*/            OPC_CheckType, MVT::i32,
/* 96665*/            OPC_MoveParent,
/* 96666*/            OPC_MoveChild1,
/* 96667*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96670*/            OPC_MoveChild0,
/* 96671*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/* 96674*/            OPC_CheckType, MVT::f64,
/* 96676*/            OPC_Scope, 71, /*->96749*/ // 2 children in Scope
/* 96678*/              OPC_CheckChild0Same, 0,
/* 96680*/              OPC_MoveParent,
/* 96681*/              OPC_CheckType, MVT::i32,
/* 96683*/              OPC_MoveParent,
/* 96684*/              OPC_MoveChild2,
/* 96685*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96688*/              OPC_MoveChild0,
/* 96689*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/* 96692*/              OPC_CheckChild0Same, 0,
/* 96694*/              OPC_CheckType, MVT::f64,
/* 96696*/              OPC_MoveParent,
/* 96697*/              OPC_CheckType, MVT::i32,
/* 96699*/              OPC_MoveParent,
/* 96700*/              OPC_MoveChild3,
/* 96701*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96704*/              OPC_MoveChild0,
/* 96705*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/* 96708*/              OPC_CheckChild0Same, 0,
/* 96710*/              OPC_CheckType, MVT::f64,
/* 96712*/              OPC_MoveParent,
/* 96713*/              OPC_CheckType, MVT::i32,
/* 96715*/              OPC_MoveParent,
/* 96716*/              OPC_CheckType, MVT::v4i32,
/* 96718*/              OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 96720*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                            MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 96727*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96730*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 96738*/              OPC_EmitInteger, MVT::i32, 1, 
/* 96741*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                            MVT::v4i32, 2/*#Ops*/, 3, 4, 
                        // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$A))) - Complexity = 427
                        // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPUXWS:{ *:[f64] } ?:{ *:[f64] }:$A), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/* 96749*/            /*Scope*/ 97|128,1/*225*/, /*->96976*/
/* 96751*/              OPC_RecordChild0, // #1 = $B
/* 96752*/              OPC_MoveParent,
/* 96753*/              OPC_CheckType, MVT::i32,
/* 96755*/              OPC_MoveParent,
/* 96756*/              OPC_MoveChild2,
/* 96757*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96760*/              OPC_MoveChild0,
/* 96761*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/* 96764*/              OPC_RecordChild0, // #2 = $C
/* 96765*/              OPC_CheckType, MVT::f64,
/* 96767*/              OPC_MoveParent,
/* 96768*/              OPC_CheckType, MVT::i32,
/* 96770*/              OPC_MoveParent,
/* 96771*/              OPC_MoveChild3,
/* 96772*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96775*/              OPC_MoveChild0,
/* 96776*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/* 96779*/              OPC_RecordChild0, // #3 = $D
/* 96780*/              OPC_CheckType, MVT::f64,
/* 96782*/              OPC_MoveParent,
/* 96783*/              OPC_CheckType, MVT::i32,
/* 96785*/              OPC_MoveParent,
/* 96786*/              OPC_CheckType, MVT::v4i32,
/* 96788*/              OPC_Scope, 92, /*->96882*/ // 2 children in Scope
/* 96790*/                OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 96792*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96795*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 96803*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96806*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 2, 6,  // Results = #7
/* 96814*/                OPC_EmitInteger, MVT::i32, 0, 
/* 96817*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/* 96826*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/* 96833*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96836*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 11,  // Results = #12
/* 96844*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96847*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 3, 13,  // Results = #14
/* 96855*/                OPC_EmitInteger, MVT::i32, 0, 
/* 96858*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/* 96867*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/* 96874*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                              MVT::v4i32, 2/*#Ops*/, 10, 17, 
                          // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$B)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$C)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$D))) - Complexity = 427
                          // Dst: (VMRGEW:{ *:[v4i32] } (XVCVDPUXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$A, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$C, VSRC:{ *:[i32] }), 0:{ *:[i32] })), (XVCVDPUXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$B, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$D, VSRC:{ *:[i32] }), 0:{ *:[i32] })))
/* 96882*/              /*Scope*/ 92, /*->96975*/
/* 96883*/                OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 96885*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96888*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 96896*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96899*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 6,  // Results = #7
/* 96907*/                OPC_EmitInteger, MVT::i32, 0, 
/* 96910*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/* 96919*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/* 96926*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96929*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 2, 11,  // Results = #12
/* 96937*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 96940*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 13,  // Results = #14
/* 96948*/                OPC_EmitInteger, MVT::i32, 0, 
/* 96951*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/* 96960*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/* 96967*/                OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                              MVT::v4i32, 2/*#Ops*/, 10, 17, 
                          // Src: (build_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$B)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$C)), (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } f64:{ *:[f64] }:$D))) - Complexity = 427
                          // Dst: (VMRGEW:{ *:[v4i32] } (XVCVDPUXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$D, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$B, VSRC:{ *:[i32] }), 0:{ *:[i32] })), (XVCVDPUXWS:{ *:[v4i32] } (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$C, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } f64:{ *:[f64] }:$A, VSRC:{ *:[i32] }), 0:{ *:[i32] })))
/* 96975*/              0, /*End of Scope*/
/* 96976*/            0, /*End of Scope*/
/* 96977*/          0, /*End of Scope*/
/* 96978*/        /*SwitchOpcode*/ 66, TARGET_VAL(PPCISD::FCTIDZ),// ->97047
/* 96981*/          OPC_MoveChild0,
/* 96982*/          OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
/* 96985*/          OPC_RecordChild0, // #0 = $A
/* 96986*/          OPC_MoveParent,
/* 96987*/          OPC_CheckType, MVT::f64,
/* 96989*/          OPC_MoveParent,
/* 96990*/          OPC_CheckType, MVT::i64,
/* 96992*/          OPC_MoveParent,
/* 96993*/          OPC_MoveChild1,
/* 96994*/          OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 96997*/          OPC_MoveChild0,
/* 96998*/          OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIDZ),
/* 97001*/          OPC_MoveChild0,
/* 97002*/          OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
/* 97005*/          OPC_CheckChild0Same, 0,
/* 97007*/          OPC_MoveParent,
/* 97008*/          OPC_CheckType, MVT::f64,
/* 97010*/          OPC_MoveParent,
/* 97011*/          OPC_CheckType, MVT::i64,
/* 97013*/          OPC_MoveParent,
/* 97014*/          OPC_CheckType, MVT::v2i64,
/* 97016*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 97018*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDSs), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 97025*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 97028*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 97036*/          OPC_EmitInteger, MVT::i32, 0, 
/* 97039*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0,
                        MVT::v2i64, 2/*#Ops*/, 3, 4, 
                    // Src: (build_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctidz:{ *:[f64] } (fpextend:{ *:[f64] } f32:{ *:[f32] }:$A))), (PPCmfvsr:{ *:[i64] } (PPCfctidz:{ *:[f64] } (fpextend:{ *:[f64] } f32:{ *:[f32] }:$A)))) - Complexity = 421
                    // Dst: (XXPERMDIs:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f64] } (XSCVDPSXDSs:{ *:[f32] } ?:{ *:[f32] }:$A), VSFRC:{ *:[i32] }), 0:{ *:[i32] })
/* 97047*/        /*SwitchOpcode*/ 66, TARGET_VAL(PPCISD::FCTIDUZ),// ->97116
/* 97050*/          OPC_MoveChild0,
/* 97051*/          OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
/* 97054*/          OPC_RecordChild0, // #0 = $A
/* 97055*/          OPC_MoveParent,
/* 97056*/          OPC_CheckType, MVT::f64,
/* 97058*/          OPC_MoveParent,
/* 97059*/          OPC_CheckType, MVT::i64,
/* 97061*/          OPC_MoveParent,
/* 97062*/          OPC_MoveChild1,
/* 97063*/          OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 97066*/          OPC_MoveChild0,
/* 97067*/          OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIDUZ),
/* 97070*/          OPC_MoveChild0,
/* 97071*/          OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
/* 97074*/          OPC_CheckChild0Same, 0,
/* 97076*/          OPC_MoveParent,
/* 97077*/          OPC_CheckType, MVT::f64,
/* 97079*/          OPC_MoveParent,
/* 97080*/          OPC_CheckType, MVT::i64,
/* 97082*/          OPC_MoveParent,
/* 97083*/          OPC_CheckType, MVT::v2i64,
/* 97085*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 97087*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDSs), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/* 97094*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 97097*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 97105*/          OPC_EmitInteger, MVT::i32, 0, 
/* 97108*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0,
                        MVT::v2i64, 2/*#Ops*/, 3, 4, 
                    // Src: (build_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctiduz:{ *:[f64] } (fpextend:{ *:[f64] } f32:{ *:[f32] }:$A))), (PPCmfvsr:{ *:[i64] } (PPCfctiduz:{ *:[f64] } (fpextend:{ *:[f64] } f32:{ *:[f32] }:$A)))) - Complexity = 421
                    // Dst: (XXPERMDIs:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f64] } (XSCVDPUXDSs:{ *:[f32] } ?:{ *:[f32] }:$A), VSFRC:{ *:[i32] }), 0:{ *:[i32] })
/* 97116*/        0, // EndSwitchOpcode
/* 97117*/      /*SwitchOpcode*/ 61|128,4/*573*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->97694
/* 97121*/        OPC_MoveChild0,
/* 97122*/        OPC_SwitchOpcode /*2 cases */, 87|128,2/*343*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->97470
/* 97127*/          OPC_RecordChild0, // #0 = $A
/* 97128*/          OPC_Scope, 40|128,1/*168*/, /*->97299*/ // 2 children in Scope
/* 97131*/            OPC_CheckChild0Type, MVT::v8i16,
/* 97133*/            OPC_Scope, 81, /*->97216*/ // 2 children in Scope
/* 97135*/              OPC_CheckChild1Integer, 0, 
/* 97137*/              OPC_MoveParent,
/* 97138*/              OPC_MoveChild1,
/* 97139*/              OPC_CheckValueType, MVT::i16,
/* 97141*/              OPC_MoveParent,
/* 97142*/              OPC_CheckType, MVT::i32,
/* 97144*/              OPC_MoveParent,
/* 97145*/              OPC_MoveChild1,
/* 97146*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97149*/              OPC_MoveChild0,
/* 97150*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97153*/              OPC_CheckChild0Same, 0,
/* 97155*/              OPC_CheckChild1Integer, 2, 
/* 97157*/              OPC_MoveParent,
/* 97158*/              OPC_MoveChild1,
/* 97159*/              OPC_CheckValueType, MVT::i16,
/* 97161*/              OPC_MoveParent,
/* 97162*/              OPC_CheckType, MVT::i32,
/* 97164*/              OPC_MoveParent,
/* 97165*/              OPC_MoveChild2,
/* 97166*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97169*/              OPC_MoveChild0,
/* 97170*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97173*/              OPC_CheckChild0Same, 0,
/* 97175*/              OPC_CheckChild1Integer, 4, 
/* 97177*/              OPC_MoveParent,
/* 97178*/              OPC_MoveChild1,
/* 97179*/              OPC_CheckValueType, MVT::i16,
/* 97181*/              OPC_MoveParent,
/* 97182*/              OPC_CheckType, MVT::i32,
/* 97184*/              OPC_MoveParent,
/* 97185*/              OPC_MoveChild3,
/* 97186*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97189*/              OPC_MoveChild0,
/* 97190*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97193*/              OPC_CheckChild0Same, 0,
/* 97195*/              OPC_CheckChild1Integer, 6, 
/* 97197*/              OPC_MoveParent,
/* 97198*/              OPC_MoveChild1,
/* 97199*/              OPC_CheckValueType, MVT::i16,
/* 97201*/              OPC_MoveParent,
/* 97202*/              OPC_CheckType, MVT::i32,
/* 97204*/              OPC_MoveParent,
/* 97205*/              OPC_CheckType, MVT::v4i32,
/* 97207*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 97209*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSH2W), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (build_vector:{ *:[v4i32] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 0:{ *:[iPTR] }), i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 2:{ *:[iPTR] }), i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 4:{ *:[iPTR] }), i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 6:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 447
                        // Dst: (VEXTSH2W:{ *:[v4i32] } ?:{ *:[v8i16] }:$A)
/* 97216*/            /*Scope*/ 81, /*->97298*/
/* 97217*/              OPC_CheckChild1Integer, 1, 
/* 97219*/              OPC_MoveParent,
/* 97220*/              OPC_MoveChild1,
/* 97221*/              OPC_CheckValueType, MVT::i16,
/* 97223*/              OPC_MoveParent,
/* 97224*/              OPC_CheckType, MVT::i32,
/* 97226*/              OPC_MoveParent,
/* 97227*/              OPC_MoveChild1,
/* 97228*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97231*/              OPC_MoveChild0,
/* 97232*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97235*/              OPC_CheckChild0Same, 0,
/* 97237*/              OPC_CheckChild1Integer, 3, 
/* 97239*/              OPC_MoveParent,
/* 97240*/              OPC_MoveChild1,
/* 97241*/              OPC_CheckValueType, MVT::i16,
/* 97243*/              OPC_MoveParent,
/* 97244*/              OPC_CheckType, MVT::i32,
/* 97246*/              OPC_MoveParent,
/* 97247*/              OPC_MoveChild2,
/* 97248*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97251*/              OPC_MoveChild0,
/* 97252*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97255*/              OPC_CheckChild0Same, 0,
/* 97257*/              OPC_CheckChild1Integer, 5, 
/* 97259*/              OPC_MoveParent,
/* 97260*/              OPC_MoveChild1,
/* 97261*/              OPC_CheckValueType, MVT::i16,
/* 97263*/              OPC_MoveParent,
/* 97264*/              OPC_CheckType, MVT::i32,
/* 97266*/              OPC_MoveParent,
/* 97267*/              OPC_MoveChild3,
/* 97268*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97271*/              OPC_MoveChild0,
/* 97272*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97275*/              OPC_CheckChild0Same, 0,
/* 97277*/              OPC_CheckChild1Integer, 7, 
/* 97279*/              OPC_MoveParent,
/* 97280*/              OPC_MoveChild1,
/* 97281*/              OPC_CheckValueType, MVT::i16,
/* 97283*/              OPC_MoveParent,
/* 97284*/              OPC_CheckType, MVT::i32,
/* 97286*/              OPC_MoveParent,
/* 97287*/              OPC_CheckType, MVT::v4i32,
/* 97289*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 97291*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSH2W), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (build_vector:{ *:[v4i32] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 1:{ *:[iPTR] }), i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 3:{ *:[iPTR] }), i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 5:{ *:[iPTR] }), i16:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 7:{ *:[iPTR] }), i16:{ *:[Other] })) - Complexity = 447
                        // Dst: (VEXTSH2W:{ *:[v4i32] } ?:{ *:[v8i16] }:$A)
/* 97298*/            0, /*End of Scope*/
/* 97299*/          /*Scope*/ 40|128,1/*168*/, /*->97469*/
/* 97301*/            OPC_CheckChild0Type, MVT::v16i8,
/* 97303*/            OPC_Scope, 81, /*->97386*/ // 2 children in Scope
/* 97305*/              OPC_CheckChild1Integer, 0, 
/* 97307*/              OPC_MoveParent,
/* 97308*/              OPC_MoveChild1,
/* 97309*/              OPC_CheckValueType, MVT::i8,
/* 97311*/              OPC_MoveParent,
/* 97312*/              OPC_CheckType, MVT::i32,
/* 97314*/              OPC_MoveParent,
/* 97315*/              OPC_MoveChild1,
/* 97316*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97319*/              OPC_MoveChild0,
/* 97320*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97323*/              OPC_CheckChild0Same, 0,
/* 97325*/              OPC_CheckChild1Integer, 4, 
/* 97327*/              OPC_MoveParent,
/* 97328*/              OPC_MoveChild1,
/* 97329*/              OPC_CheckValueType, MVT::i8,
/* 97331*/              OPC_MoveParent,
/* 97332*/              OPC_CheckType, MVT::i32,
/* 97334*/              OPC_MoveParent,
/* 97335*/              OPC_MoveChild2,
/* 97336*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97339*/              OPC_MoveChild0,
/* 97340*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97343*/              OPC_CheckChild0Same, 0,
/* 97345*/              OPC_CheckChild1Integer, 8, 
/* 97347*/              OPC_MoveParent,
/* 97348*/              OPC_MoveChild1,
/* 97349*/              OPC_CheckValueType, MVT::i8,
/* 97351*/              OPC_MoveParent,
/* 97352*/              OPC_CheckType, MVT::i32,
/* 97354*/              OPC_MoveParent,
/* 97355*/              OPC_MoveChild3,
/* 97356*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97359*/              OPC_MoveChild0,
/* 97360*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97363*/              OPC_CheckChild0Same, 0,
/* 97365*/              OPC_CheckChild1Integer, 12, 
/* 97367*/              OPC_MoveParent,
/* 97368*/              OPC_MoveChild1,
/* 97369*/              OPC_CheckValueType, MVT::i8,
/* 97371*/              OPC_MoveParent,
/* 97372*/              OPC_CheckType, MVT::i32,
/* 97374*/              OPC_MoveParent,
/* 97375*/              OPC_CheckType, MVT::v4i32,
/* 97377*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 97379*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSB2W), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (build_vector:{ *:[v4i32] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 0:{ *:[iPTR] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 4:{ *:[iPTR] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 8:{ *:[iPTR] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 12:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 447
                        // Dst: (VEXTSB2W:{ *:[v4i32] } ?:{ *:[v16i8] }:$A)
/* 97386*/            /*Scope*/ 81, /*->97468*/
/* 97387*/              OPC_CheckChild1Integer, 3, 
/* 97389*/              OPC_MoveParent,
/* 97390*/              OPC_MoveChild1,
/* 97391*/              OPC_CheckValueType, MVT::i8,
/* 97393*/              OPC_MoveParent,
/* 97394*/              OPC_CheckType, MVT::i32,
/* 97396*/              OPC_MoveParent,
/* 97397*/              OPC_MoveChild1,
/* 97398*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97401*/              OPC_MoveChild0,
/* 97402*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97405*/              OPC_CheckChild0Same, 0,
/* 97407*/              OPC_CheckChild1Integer, 7, 
/* 97409*/              OPC_MoveParent,
/* 97410*/              OPC_MoveChild1,
/* 97411*/              OPC_CheckValueType, MVT::i8,
/* 97413*/              OPC_MoveParent,
/* 97414*/              OPC_CheckType, MVT::i32,
/* 97416*/              OPC_MoveParent,
/* 97417*/              OPC_MoveChild2,
/* 97418*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97421*/              OPC_MoveChild0,
/* 97422*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97425*/              OPC_CheckChild0Same, 0,
/* 97427*/              OPC_CheckChild1Integer, 11, 
/* 97429*/              OPC_MoveParent,
/* 97430*/              OPC_MoveChild1,
/* 97431*/              OPC_CheckValueType, MVT::i8,
/* 97433*/              OPC_MoveParent,
/* 97434*/              OPC_CheckType, MVT::i32,
/* 97436*/              OPC_MoveParent,
/* 97437*/              OPC_MoveChild3,
/* 97438*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97441*/              OPC_MoveChild0,
/* 97442*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97445*/              OPC_CheckChild0Same, 0,
/* 97447*/              OPC_CheckChild1Integer, 15, 
/* 97449*/              OPC_MoveParent,
/* 97450*/              OPC_MoveChild1,
/* 97451*/              OPC_CheckValueType, MVT::i8,
/* 97453*/              OPC_MoveParent,
/* 97454*/              OPC_CheckType, MVT::i32,
/* 97456*/              OPC_MoveParent,
/* 97457*/              OPC_CheckType, MVT::v4i32,
/* 97459*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 97461*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSB2W), 0,
                            MVT::v4i32, 1/*#Ops*/, 0, 
                        // Src: (build_vector:{ *:[v4i32] } (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 3:{ *:[iPTR] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 7:{ *:[iPTR] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 11:{ *:[iPTR] }), i8:{ *:[Other] }), (sext_inreg:{ *:[i32] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 15:{ *:[iPTR] }), i8:{ *:[Other] })) - Complexity = 447
                        // Dst: (VEXTSB2W:{ *:[v4i32] } ?:{ *:[v16i8] }:$A)
/* 97468*/            0, /*End of Scope*/
/* 97469*/          0, /*End of Scope*/
/* 97470*/        /*SwitchOpcode*/ 91|128,1/*219*/, TARGET_VAL(ISD::ANY_EXTEND),// ->97693
/* 97474*/          OPC_MoveChild0,
/* 97475*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97478*/          OPC_RecordChild0, // #0 = $A
/* 97479*/          OPC_CheckType, MVT::i32,
/* 97481*/          OPC_Scope, 104, /*->97587*/ // 2 children in Scope
/* 97483*/            OPC_CheckChild0Type, MVT::v8i16,
/* 97485*/            OPC_Scope, 49, /*->97536*/ // 2 children in Scope
/* 97487*/              OPC_CheckChild1Integer, 0, 
/* 97489*/              OPC_MoveParent,
/* 97490*/              OPC_MoveParent,
/* 97491*/              OPC_MoveChild1,
/* 97492*/              OPC_CheckValueType, MVT::i16,
/* 97494*/              OPC_MoveParent,
/* 97495*/              OPC_CheckType, MVT::i64,
/* 97497*/              OPC_MoveParent,
/* 97498*/              OPC_MoveChild1,
/* 97499*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97502*/              OPC_MoveChild0,
/* 97503*/              OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/* 97506*/              OPC_MoveChild0,
/* 97507*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97510*/              OPC_CheckChild0Same, 0,
/* 97512*/              OPC_CheckChild1Integer, 4, 
/* 97514*/              OPC_CheckType, MVT::i32,
/* 97516*/              OPC_MoveParent,
/* 97517*/              OPC_MoveParent,
/* 97518*/              OPC_MoveChild1,
/* 97519*/              OPC_CheckValueType, MVT::i16,
/* 97521*/              OPC_MoveParent,
/* 97522*/              OPC_CheckType, MVT::i64,
/* 97524*/              OPC_MoveParent,
/* 97525*/              OPC_CheckType, MVT::v2i64,
/* 97527*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 97529*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (build_vector:{ *:[v2i64] } (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 0:{ *:[iPTR] })), i16:{ *:[Other] }), (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 4:{ *:[iPTR] })), i16:{ *:[Other] })) - Complexity = 431
                        // Dst: (VEXTSH2D:{ *:[v2i64] } ?:{ *:[v8i16] }:$A)
/* 97536*/            /*Scope*/ 49, /*->97586*/
/* 97537*/              OPC_CheckChild1Integer, 3, 
/* 97539*/              OPC_MoveParent,
/* 97540*/              OPC_MoveParent,
/* 97541*/              OPC_MoveChild1,
/* 97542*/              OPC_CheckValueType, MVT::i16,
/* 97544*/              OPC_MoveParent,
/* 97545*/              OPC_CheckType, MVT::i64,
/* 97547*/              OPC_MoveParent,
/* 97548*/              OPC_MoveChild1,
/* 97549*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97552*/              OPC_MoveChild0,
/* 97553*/              OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/* 97556*/              OPC_MoveChild0,
/* 97557*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97560*/              OPC_CheckChild0Same, 0,
/* 97562*/              OPC_CheckChild1Integer, 7, 
/* 97564*/              OPC_CheckType, MVT::i32,
/* 97566*/              OPC_MoveParent,
/* 97567*/              OPC_MoveParent,
/* 97568*/              OPC_MoveChild1,
/* 97569*/              OPC_CheckValueType, MVT::i16,
/* 97571*/              OPC_MoveParent,
/* 97572*/              OPC_CheckType, MVT::i64,
/* 97574*/              OPC_MoveParent,
/* 97575*/              OPC_CheckType, MVT::v2i64,
/* 97577*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 97579*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (build_vector:{ *:[v2i64] } (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 3:{ *:[iPTR] })), i16:{ *:[Other] }), (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v8i16:{ *:[v8i16] }:$A, 7:{ *:[iPTR] })), i16:{ *:[Other] })) - Complexity = 431
                        // Dst: (VEXTSH2D:{ *:[v2i64] } ?:{ *:[v8i16] }:$A)
/* 97586*/            0, /*End of Scope*/
/* 97587*/          /*Scope*/ 104, /*->97692*/
/* 97588*/            OPC_CheckChild0Type, MVT::v16i8,
/* 97590*/            OPC_Scope, 49, /*->97641*/ // 2 children in Scope
/* 97592*/              OPC_CheckChild1Integer, 0, 
/* 97594*/              OPC_MoveParent,
/* 97595*/              OPC_MoveParent,
/* 97596*/              OPC_MoveChild1,
/* 97597*/              OPC_CheckValueType, MVT::i8,
/* 97599*/              OPC_MoveParent,
/* 97600*/              OPC_CheckType, MVT::i64,
/* 97602*/              OPC_MoveParent,
/* 97603*/              OPC_MoveChild1,
/* 97604*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97607*/              OPC_MoveChild0,
/* 97608*/              OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/* 97611*/              OPC_MoveChild0,
/* 97612*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97615*/              OPC_CheckChild0Same, 0,
/* 97617*/              OPC_CheckChild1Integer, 8, 
/* 97619*/              OPC_CheckType, MVT::i32,
/* 97621*/              OPC_MoveParent,
/* 97622*/              OPC_MoveParent,
/* 97623*/              OPC_MoveChild1,
/* 97624*/              OPC_CheckValueType, MVT::i8,
/* 97626*/              OPC_MoveParent,
/* 97627*/              OPC_CheckType, MVT::i64,
/* 97629*/              OPC_MoveParent,
/* 97630*/              OPC_CheckType, MVT::v2i64,
/* 97632*/              OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 97634*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (build_vector:{ *:[v2i64] } (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 0:{ *:[iPTR] })), i8:{ *:[Other] }), (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 8:{ *:[iPTR] })), i8:{ *:[Other] })) - Complexity = 431
                        // Dst: (VEXTSB2D:{ *:[v2i64] } ?:{ *:[v16i8] }:$A)
/* 97641*/            /*Scope*/ 49, /*->97691*/
/* 97642*/              OPC_CheckChild1Integer, 7, 
/* 97644*/              OPC_MoveParent,
/* 97645*/              OPC_MoveParent,
/* 97646*/              OPC_MoveChild1,
/* 97647*/              OPC_CheckValueType, MVT::i8,
/* 97649*/              OPC_MoveParent,
/* 97650*/              OPC_CheckType, MVT::i64,
/* 97652*/              OPC_MoveParent,
/* 97653*/              OPC_MoveChild1,
/* 97654*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 97657*/              OPC_MoveChild0,
/* 97658*/              OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/* 97661*/              OPC_MoveChild0,
/* 97662*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97665*/              OPC_CheckChild0Same, 0,
/* 97667*/              OPC_CheckChild1Integer, 15, 
/* 97669*/              OPC_CheckType, MVT::i32,
/* 97671*/              OPC_MoveParent,
/* 97672*/              OPC_MoveParent,
/* 97673*/              OPC_MoveChild1,
/* 97674*/              OPC_CheckValueType, MVT::i8,
/* 97676*/              OPC_MoveParent,
/* 97677*/              OPC_CheckType, MVT::i64,
/* 97679*/              OPC_MoveParent,
/* 97680*/              OPC_CheckType, MVT::v2i64,
/* 97682*/              OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 97684*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::v2i64, 1/*#Ops*/, 0, 
                        // Src: (build_vector:{ *:[v2i64] } (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 7:{ *:[iPTR] })), i8:{ *:[Other] }), (sext_inreg:{ *:[i64] } (anyext:{ *:[i64] } (vector_extract:{ *:[i32] } v16i8:{ *:[v16i8] }:$A, 15:{ *:[iPTR] })), i8:{ *:[Other] })) - Complexity = 431
                        // Dst: (VEXTSB2D:{ *:[v2i64] } ?:{ *:[v16i8] }:$A)
/* 97691*/            0, /*End of Scope*/
/* 97692*/          0, /*End of Scope*/
/* 97693*/        0, // EndSwitchOpcode
/* 97694*/      /*SwitchOpcode*/ 83, TARGET_VAL(ISD::SIGN_EXTEND),// ->97780
/* 97697*/        OPC_MoveChild0,
/* 97698*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97701*/        OPC_RecordChild0, // #0 = $A
/* 97702*/        OPC_CheckChild0Type, MVT::v4i32,
/* 97704*/        OPC_CheckType, MVT::i32,
/* 97706*/        OPC_Scope, 35, /*->97743*/ // 2 children in Scope
/* 97708*/          OPC_CheckChild1Integer, 0, 
/* 97710*/          OPC_MoveParent,
/* 97711*/          OPC_CheckType, MVT::i64,
/* 97713*/          OPC_MoveParent,
/* 97714*/          OPC_MoveChild1,
/* 97715*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 97718*/          OPC_MoveChild0,
/* 97719*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97722*/          OPC_CheckChild0Same, 0,
/* 97724*/          OPC_CheckChild1Integer, 2, 
/* 97726*/          OPC_CheckType, MVT::i32,
/* 97728*/          OPC_MoveParent,
/* 97729*/          OPC_CheckType, MVT::i64,
/* 97731*/          OPC_MoveParent,
/* 97732*/          OPC_CheckType, MVT::v2i64,
/* 97734*/          OPC_CheckPatternPredicate, 15, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 97736*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSW2D), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (build_vector:{ *:[v2i64] } (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] })), (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }))) - Complexity = 425
                    // Dst: (VEXTSW2D:{ *:[v2i64] } ?:{ *:[v4i32] }:$A)
/* 97743*/        /*Scope*/ 35, /*->97779*/
/* 97744*/          OPC_CheckChild1Integer, 1, 
/* 97746*/          OPC_MoveParent,
/* 97747*/          OPC_CheckType, MVT::i64,
/* 97749*/          OPC_MoveParent,
/* 97750*/          OPC_MoveChild1,
/* 97751*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 97754*/          OPC_MoveChild0,
/* 97755*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 97758*/          OPC_CheckChild0Same, 0,
/* 97760*/          OPC_CheckChild1Integer, 3, 
/* 97762*/          OPC_CheckType, MVT::i32,
/* 97764*/          OPC_MoveParent,
/* 97765*/          OPC_CheckType, MVT::i64,
/* 97767*/          OPC_MoveParent,
/* 97768*/          OPC_CheckType, MVT::v2i64,
/* 97770*/          OPC_CheckPatternPredicate, 16, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 97772*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSW2D), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (build_vector:{ *:[v2i64] } (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] })), (sext:{ *:[i64] } (vector_extract:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }))) - Complexity = 425
                    // Dst: (VEXTSW2D:{ *:[v2i64] } ?:{ *:[v4i32] }:$A)
/* 97779*/        0, /*End of Scope*/
/* 97780*/      0, // EndSwitchOpcode
/* 97781*/    /*Scope*/ 29, /*->97811*/
/* 97782*/      OPC_RecordChild0, // #0 = $A
/* 97783*/      OPC_MoveChild0,
/* 97784*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97787*/      OPC_CheckPredicate, 43, // Predicate_immSExt5NonZero
/* 97789*/      OPC_CheckType, MVT::i32,
/* 97791*/      OPC_MoveParent,
/* 97792*/      OPC_CheckChild1Same, 0,
/* 97794*/      OPC_CheckChild2Same, 0,
/* 97796*/      OPC_CheckChild3Same, 0,
/* 97798*/      OPC_CheckType, MVT::v4i32,
/* 97800*/      OPC_CheckPatternPredicate, 29, // (PPCSubTarget->hasDirectMove())
/* 97802*/      OPC_EmitConvertToTarget, 0,
/* 97804*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTISW), 0,
                    MVT::v4i32, 1/*#Ops*/, 1, 
                // Src: (build_vector:{ *:[v4i32] } (imm:{ *:[i32] })<<P:Predicate_immSExt5NonZero>>:$A, (imm:{ *:[i32] })<<P:Predicate_immSExt5NonZero>>:$A, (imm:{ *:[i32] })<<P:Predicate_immSExt5NonZero>>:$A, (imm:{ *:[i32] })<<P:Predicate_immSExt5NonZero>>:$A) - Complexity = 419
                // Dst: (VSPLTISW:{ *:[v4i32] } (imm:{ *:[i32] }):$A)
/* 97811*/    /*Scope*/ 35|128,1/*163*/, /*->97976*/
/* 97813*/      OPC_MoveChild0,
/* 97814*/      OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 97817*/      OPC_MoveChild0,
/* 97818*/      OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(PPCISD::FCTIDZ),// ->97897
/* 97822*/        OPC_RecordChild0, // #0 = $A
/* 97823*/        OPC_CheckType, MVT::f64,
/* 97825*/        OPC_MoveParent,
/* 97826*/        OPC_CheckType, MVT::i64,
/* 97828*/        OPC_MoveParent,
/* 97829*/        OPC_MoveChild1,
/* 97830*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 97833*/        OPC_MoveChild0,
/* 97834*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIDZ),
/* 97837*/        OPC_CheckChild0Same, 0,
/* 97839*/        OPC_CheckType, MVT::f64,
/* 97841*/        OPC_MoveParent,
/* 97842*/        OPC_CheckType, MVT::i64,
/* 97844*/        OPC_MoveParent,
/* 97845*/        OPC_CheckType, MVT::v2i64,
/* 97847*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 97849*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 97856*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 97859*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 97867*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0,  // Results = #4
/* 97874*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 97877*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 4, 5,  // Results = #6
/* 97885*/        OPC_EmitInteger, MVT::i32, 0, 
/* 97888*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v2i64, 3/*#Ops*/, 3, 6, 7, 
                  // Src: (build_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctidz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i64] } (PPCfctidz:{ *:[f64] } f64:{ *:[f64] }:$A))) - Complexity = 415
                  // Dst: (XXPERMDI:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPSXDS:{ *:[f64] } ?:{ *:[f64] }:$A), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPSXDS:{ *:[f64] } ?:{ *:[f64] }:$A), VSRC:{ *:[i32] }), 0:{ *:[i32] })
/* 97897*/      /*SwitchOpcode*/ 75, TARGET_VAL(PPCISD::FCTIDUZ),// ->97975
/* 97900*/        OPC_RecordChild0, // #0 = $A
/* 97901*/        OPC_CheckType, MVT::f64,
/* 97903*/        OPC_MoveParent,
/* 97904*/        OPC_CheckType, MVT::i64,
/* 97906*/        OPC_MoveParent,
/* 97907*/        OPC_MoveChild1,
/* 97908*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 97911*/        OPC_MoveChild0,
/* 97912*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIDUZ),
/* 97915*/        OPC_CheckChild0Same, 0,
/* 97917*/        OPC_CheckType, MVT::f64,
/* 97919*/        OPC_MoveParent,
/* 97920*/        OPC_CheckType, MVT::i64,
/* 97922*/        OPC_MoveParent,
/* 97923*/        OPC_CheckType, MVT::v2i64,
/* 97925*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 97927*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 97934*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 97937*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 97945*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0,  // Results = #4
/* 97952*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 97955*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 4, 5,  // Results = #6
/* 97963*/        OPC_EmitInteger, MVT::i32, 0, 
/* 97966*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v2i64, 3/*#Ops*/, 3, 6, 7, 
                  // Src: (build_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctiduz:{ *:[f64] } f64:{ *:[f64] }:$A)), (PPCmfvsr:{ *:[i64] } (PPCfctiduz:{ *:[f64] } f64:{ *:[f64] }:$A))) - Complexity = 415
                  // Dst: (XXPERMDI:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPUXDS:{ *:[f64] } ?:{ *:[f64] }:$A), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPUXDS:{ *:[f64] } ?:{ *:[f64] }:$A), VSRC:{ *:[i32] }), 0:{ *:[i32] })
/* 97975*/      0, // EndSwitchOpcode
/* 97976*/    /*Scope*/ 22, /*->97999*/
/* 97977*/      OPC_CheckPredicate, 38, // Predicate_immAllZerosV
/* 97979*/      OPC_SwitchType /*2 cases */, 8, MVT::v4i32,// ->97990
/* 97982*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 97984*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXORz), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>> - Complexity = 404
                  // Dst: (XXLXORz:{ *:[v4i32] })
/* 97990*/      /*SwitchType*/ 6, MVT::v2i64,// ->97998
/* 97992*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXORz), 0,
                      MVT::v2i64, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v2i64] })<<P:Predicate_immAllZerosV>> - Complexity = 404
                  // Dst: (XXLXORz:{ *:[v2i64] })
/* 97998*/      0, // EndSwitchType
/* 97999*/    /*Scope*/ 86, /*->98086*/
/* 98000*/      OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 98002*/      OPC_SwitchType /*4 cases */, 13, MVT::v4i32,// ->98018
/* 98005*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 98007*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 98011*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTIB), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>> - Complexity = 404
                  // Dst: (XXSPLTIB:{ *:[v4i32] } 255:{ *:[i32] })
/* 98018*/      /*SwitchType*/ 13, MVT::v2i64,// ->98033
/* 98020*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 98022*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 98026*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTIB), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (build_vector:{ *:[v2i64] })<<P:Predicate_immAllOnesV>> - Complexity = 404
                  // Dst: (XXSPLTIB:{ *:[v2i64] } 255:{ *:[i32] })
/* 98033*/      /*SwitchType*/ 24, MVT::v16i8,// ->98059
/* 98035*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 98037*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 98041*/        OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTIB), 0,
                      MVT::v4i32, 1/*#Ops*/, 0,  // Results = #1
/* 98048*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98051*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 2, 
                  // Src: (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>> - Complexity = 404
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } (XXSPLTIB:{ *:[v4i32] } 255:{ *:[i32] }), VSRC:{ *:[i32] })
/* 98059*/      /*SwitchType*/ 24, MVT::v8i16,// ->98085
/* 98061*/        OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 98063*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/* 98067*/        OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTIB), 0,
                      MVT::v4i32, 1/*#Ops*/, 0,  // Results = #1
/* 98074*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98077*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>> - Complexity = 404
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } (XXSPLTIB:{ *:[v4i32] } 255:{ *:[i32] }), VSRC:{ *:[i32] })
/* 98085*/      0, // EndSwitchType
/* 98086*/    /*Scope*/ 56|128,5/*696*/, /*->98784*/
/* 98088*/      OPC_RecordChild0, // #0 = $A
/* 98089*/      OPC_SwitchType /*2 cases */, 44|128,4/*556*/, MVT::v4i32,// ->98649
/* 98093*/        OPC_CheckChild0Type, MVT::i32,
/* 98095*/        OPC_Scope, 82, /*->98179*/ // 2 children in Scope
/* 98097*/          OPC_CheckChild1Same, 0,
/* 98099*/          OPC_CheckChild2Same, 0,
/* 98101*/          OPC_CheckChild3Same, 0,
/* 98103*/          OPC_Scope, 9, /*->98114*/ // 3 children in Scope
/* 98105*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 98107*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRWS), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (MTVSRWS:{ *:[v4i32] } ?:{ *:[i32] }:$A)
/* 98114*/          /*Scope*/ 31, /*->98146*/
/* 98115*/            OPC_CheckPatternPredicate, 42, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/* 98117*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 98124*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98127*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 98135*/            OPC_EmitInteger, MVT::i32, 1, 
/* 98138*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 3, 4, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$A), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/* 98146*/          /*Scope*/ 31, /*->98178*/
/* 98147*/            OPC_CheckPatternPredicate, 43, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/* 98149*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 98156*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98159*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 98167*/            OPC_EmitInteger, MVT::i32, 1, 
/* 98170*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 3, 4, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$A), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/* 98178*/          0, /*End of Scope*/
/* 98179*/        /*Scope*/ 83|128,3/*467*/, /*->98648*/
/* 98181*/          OPC_RecordChild1, // #1 = $B
/* 98182*/          OPC_CheckChild1Type, MVT::i32,
/* 98184*/          OPC_RecordChild2, // #2 = $C
/* 98185*/          OPC_CheckChild2Type, MVT::i32,
/* 98187*/          OPC_RecordChild3, // #3 = $D
/* 98188*/          OPC_CheckChild3Type, MVT::i32,
/* 98190*/          OPC_Scope, 106, /*->98298*/ // 4 children in Scope
/* 98192*/            OPC_CheckPatternPredicate, 42, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/* 98194*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 0,  // Results = #4
/* 98201*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98204*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 5,  // Results = #6
/* 98212*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 2,  // Results = #7
/* 98219*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98222*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 98230*/            OPC_EmitInteger, MVT::i32, 0, 
/* 98233*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 6, 9, 10,  // Results = #11
/* 98242*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #12
/* 98249*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98252*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 12, 13,  // Results = #14
/* 98260*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 3,  // Results = #15
/* 98267*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98270*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 15, 16,  // Results = #17
/* 98278*/            OPC_EmitInteger, MVT::i32, 0, 
/* 98281*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 14, 17, 18,  // Results = #19
/* 98290*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGOW), 0,
                          MVT::v4i32, 2/*#Ops*/, 11, 19, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$B, i32:{ *:[i32] }:$C, i32:{ *:[i32] }:$D) - Complexity = 403
                      // Dst: (VMRGOW:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$A), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$C), VSRC:{ *:[i32] }), 0:{ *:[i32] }), (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$D), VSRC:{ *:[i32] }), 0:{ *:[i32] }))
/* 98298*/          /*Scope*/ 106, /*->98405*/
/* 98299*/            OPC_CheckPatternPredicate, 43, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/* 98301*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 3,  // Results = #4
/* 98308*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98311*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 4, 5,  // Results = #6
/* 98319*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #7
/* 98326*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98329*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 98337*/            OPC_EmitInteger, MVT::i32, 0, 
/* 98340*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 6, 9, 10,  // Results = #11
/* 98349*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 2,  // Results = #12
/* 98356*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98359*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 12, 13,  // Results = #14
/* 98367*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 0,  // Results = #15
/* 98374*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98377*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 15, 16,  // Results = #17
/* 98385*/            OPC_EmitInteger, MVT::i32, 0, 
/* 98388*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 14, 17, 18,  // Results = #19
/* 98397*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGOW), 0,
                          MVT::v4i32, 2/*#Ops*/, 11, 19, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$B, i32:{ *:[i32] }:$C, i32:{ *:[i32] }:$D) - Complexity = 403
                      // Dst: (VMRGOW:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$D), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 0:{ *:[i32] }), (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$C), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$A), VSRC:{ *:[i32] }), 0:{ *:[i32] }))
/* 98405*/          /*Scope*/ 120, /*->98526*/
/* 98406*/            OPC_CheckPatternPredicate, 17, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0())
/* 98408*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #4
/* 98414*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 98417*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/* 98426*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #7
/* 98432*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 98435*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 7, 2, 8,  // Results = #9
/* 98444*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRDD), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 9,  // Results = #10
/* 98452*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98455*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 10, 11,  // Results = #12
/* 98463*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #13
/* 98469*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 98472*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 13, 1, 14,  // Results = #15
/* 98481*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #16
/* 98487*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 98490*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 16, 3, 17,  // Results = #18
/* 98499*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRDD), 0,
                          MVT::v4i32, 2/*#Ops*/, 15, 18,  // Results = #19
/* 98507*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98510*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 19, 20,  // Results = #21
/* 98518*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGOW), 0,
                          MVT::v4i32, 2/*#Ops*/, 12, 21, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$B, i32:{ *:[i32] }:$C, i32:{ *:[i32] }:$D) - Complexity = 403
                      // Dst: (VMRGOW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRDD:{ *:[v4i32] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$C, sub_32:{ *:[i32] })), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRDD:{ *:[v4i32] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$B, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$D, sub_32:{ *:[i32] })), VSRC:{ *:[i32] }))
/* 98526*/          /*Scope*/ 120, /*->98647*/
/* 98527*/            OPC_CheckPatternPredicate, 22, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian())
/* 98529*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #4
/* 98535*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 98538*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 4, 3, 5,  // Results = #6
/* 98547*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #7
/* 98553*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 98556*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 7, 1, 8,  // Results = #9
/* 98565*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRDD), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 9,  // Results = #10
/* 98573*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98576*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 10, 11,  // Results = #12
/* 98584*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #13
/* 98590*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 98593*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 13, 2, 14,  // Results = #15
/* 98602*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #16
/* 98608*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 98611*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 16, 0, 17,  // Results = #18
/* 98620*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRDD), 0,
                          MVT::v4i32, 2/*#Ops*/, 15, 18,  // Results = #19
/* 98628*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98631*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 19, 20,  // Results = #21
/* 98639*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGOW), 0,
                          MVT::v4i32, 2/*#Ops*/, 12, 21, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$B, i32:{ *:[i32] }:$C, i32:{ *:[i32] }:$D) - Complexity = 403
                      // Dst: (VMRGOW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRDD:{ *:[v4i32] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$D, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$B, sub_32:{ *:[i32] })), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRDD:{ *:[v4i32] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$C, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), VSRC:{ *:[i32] }))
/* 98647*/          0, /*End of Scope*/
/* 98648*/        0, /*End of Scope*/
/* 98649*/      /*SwitchType*/ 3|128,1/*131*/, MVT::v2i64,// ->98783
/* 98652*/        OPC_CheckChild0Type, MVT::i64,
/* 98654*/        OPC_RecordChild1, // #1 = $rA
/* 98655*/        OPC_CheckChild1Type, MVT::i64,
/* 98657*/        OPC_Scope, 10, /*->98669*/ // 4 children in Scope
/* 98659*/          OPC_CheckPatternPredicate, 17, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0())
/* 98661*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRDD), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (build_vector:{ *:[v2i64] } i64:{ *:[i64] }:$rB, i64:{ *:[i64] }:$rA) - Complexity = 403
                    // Dst: (MTVSRDD:{ *:[v2i64] } ?:{ *:[i64] }:$rB, ?:{ *:[i64] }:$rA)
/* 98669*/        /*Scope*/ 10, /*->98680*/
/* 98670*/          OPC_CheckPatternPredicate, 22, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian())
/* 98672*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRDD), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 0, 
                    // Src: (build_vector:{ *:[v2i64] } i64:{ *:[i64] }:$rA, i64:{ *:[i64] }:$rB) - Complexity = 403
                    // Dst: (MTVSRDD:{ *:[v2i64] } ?:{ *:[i64] }:$rB, ?:{ *:[i64] }:$rA)
/* 98680*/        /*Scope*/ 50, /*->98731*/
/* 98681*/          OPC_CheckPatternPredicate, 42, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/* 98683*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/* 98690*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98693*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 98701*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/* 98708*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98711*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/* 98719*/          OPC_EmitInteger, MVT::i32, 0, 
/* 98722*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v2i64, 3/*#Ops*/, 4, 7, 8, 
                    // Src: (build_vector:{ *:[v2i64] } i64:{ *:[i64] }:$A, i64:{ *:[i64] }:$B) - Complexity = 403
                    // Dst: (XXPERMDI:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$A), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$B), VSRC:{ *:[i32] }), 0:{ *:[i32] })
/* 98731*/        /*Scope*/ 50, /*->98782*/
/* 98732*/          OPC_CheckPatternPredicate, 43, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/* 98734*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/* 98741*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98744*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 98752*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #5
/* 98759*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 98762*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/* 98770*/          OPC_EmitInteger, MVT::i32, 0, 
/* 98773*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v2i64, 3/*#Ops*/, 4, 7, 8, 
                    // Src: (build_vector:{ *:[v2i64] } i64:{ *:[i64] }:$A, i64:{ *:[i64] }:$B) - Complexity = 403
                    // Dst: (XXPERMDI:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$B), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$A), VSRC:{ *:[i32] }), 0:{ *:[i32] })
/* 98782*/        0, /*End of Scope*/
/* 98783*/      0, // EndSwitchType
/* 98784*/    /*Scope*/ 51, /*->98836*/
/* 98785*/      OPC_RecordNode, // #0 = $SIMM
/* 98786*/      OPC_SwitchType /*3 cases */, 14, MVT::v16i8,// ->98803
/* 98789*/        OPC_CheckPredicate, 44, // Predicate_vecspltisb
/* 98791*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98793*/        OPC_EmitNodeXForm, 10, 0, // VSPLTISB_get_imm
/* 98796*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTISB), 0,
                      MVT::v16i8, 1/*#Ops*/, 1, 
                  // Src: (build_vector:{ *:[v16i8] })<<P:Predicate_vecspltisb>><<X:VSPLTISB_get_imm>>:$SIMM - Complexity = 4
                  // Dst: (VSPLTISB:{ *:[v16i8] } (VSPLTISB_get_imm:{ *:[i32] } (build_vector:{ *:[v16i8] }):$SIMM))
/* 98803*/      /*SwitchType*/ 14, MVT::v8i16,// ->98819
/* 98805*/        OPC_CheckPredicate, 45, // Predicate_vecspltish
/* 98807*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98809*/        OPC_EmitNodeXForm, 11, 0, // VSPLTISH_get_imm
/* 98812*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTISH), 0,
                      MVT::v8i16, 1/*#Ops*/, 1, 
                  // Src: (build_vector:{ *:[v8i16] })<<P:Predicate_vecspltish>><<X:VSPLTISH_get_imm>>:$SIMM - Complexity = 4
                  // Dst: (VSPLTISH:{ *:[v8i16] } (VSPLTISH_get_imm:{ *:[i32] } (build_vector:{ *:[v8i16] }):$SIMM))
/* 98819*/      /*SwitchType*/ 14, MVT::v4i32,// ->98835
/* 98821*/        OPC_CheckPredicate, 46, // Predicate_vecspltisw
/* 98823*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98825*/        OPC_EmitNodeXForm, 12, 0, // VSPLTISW_get_imm
/* 98828*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTISW), 0,
                      MVT::v4i32, 1/*#Ops*/, 1, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_vecspltisw>><<X:VSPLTISW_get_imm>>:$SIMM - Complexity = 4
                  // Dst: (VSPLTISW:{ *:[v4i32] } (VSPLTISW_get_imm:{ *:[i32] } (build_vector:{ *:[v4i32] }):$SIMM))
/* 98835*/      0, // EndSwitchType
/* 98836*/    /*Scope*/ 34, /*->98871*/
/* 98837*/      OPC_CheckPredicate, 38, // Predicate_immAllZerosV
/* 98839*/      OPC_SwitchType /*3 cases */, 8, MVT::v16i8,// ->98850
/* 98842*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98844*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SET0B), 0,
                      MVT::v16i8, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v16i8] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (V_SET0B:{ *:[v16i8] })
/* 98850*/      /*SwitchType*/ 8, MVT::v8i16,// ->98860
/* 98852*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98854*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SET0H), 0,
                      MVT::v8i16, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v8i16] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (V_SET0H:{ *:[v8i16] })
/* 98860*/      /*SwitchType*/ 8, MVT::v4i32,// ->98870
/* 98862*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98864*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SET0), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllZerosV>> - Complexity = 4
                  // Dst: (V_SET0:{ *:[v4i32] })
/* 98870*/      0, // EndSwitchType
/* 98871*/    /*Scope*/ 34, /*->98906*/
/* 98872*/      OPC_CheckPredicate, 17, // Predicate_immAllOnesV
/* 98874*/      OPC_SwitchType /*3 cases */, 8, MVT::v16i8,// ->98885
/* 98877*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98879*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SETALLONESB), 0,
                      MVT::v16i8, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v16i8] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (V_SETALLONESB:{ *:[v16i8] })
/* 98885*/      /*SwitchType*/ 8, MVT::v8i16,// ->98895
/* 98887*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98889*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SETALLONESH), 0,
                      MVT::v8i16, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v8i16] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (V_SETALLONESH:{ *:[v8i16] })
/* 98895*/      /*SwitchType*/ 8, MVT::v4i32,// ->98905
/* 98897*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/* 98899*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SETALLONES), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (build_vector:{ *:[v4i32] })<<P:Predicate_immAllOnesV>> - Complexity = 4
                  // Dst: (V_SETALLONES:{ *:[v4i32] })
/* 98905*/      0, // EndSwitchType
/* 98906*/    /*Scope*/ 32|128,1/*160*/, /*->99068*/
/* 98908*/      OPC_MoveChild0,
/* 98909*/      OPC_CheckOpcode, TARGET_VAL(ISD::FP_ROUND),
/* 98912*/      OPC_MoveChild0,
/* 98913*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 98916*/      OPC_RecordChild0, // #0 = $A
/* 98917*/      OPC_CheckChild0Type, MVT::v2f64,
/* 98919*/      OPC_CheckChild1Integer, 0, 
/* 98921*/      OPC_MoveParent,
/* 98922*/      OPC_MoveParent,
/* 98923*/      OPC_MoveChild1,
/* 98924*/      OPC_CheckOpcode, TARGET_VAL(ISD::FP_ROUND),
/* 98927*/      OPC_MoveChild0,
/* 98928*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 98931*/      OPC_CheckChild0Same, 0,
/* 98933*/      OPC_CheckChild1Integer, 1, 
/* 98935*/      OPC_MoveParent,
/* 98936*/      OPC_MoveParent,
/* 98937*/      OPC_MoveChild2,
/* 98938*/      OPC_CheckOpcode, TARGET_VAL(ISD::FP_ROUND),
/* 98941*/      OPC_MoveChild0,
/* 98942*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 98945*/      OPC_RecordChild0, // #1 = $B
/* 98946*/      OPC_CheckChild0Type, MVT::v2f64,
/* 98948*/      OPC_CheckChild1Integer, 0, 
/* 98950*/      OPC_MoveParent,
/* 98951*/      OPC_MoveParent,
/* 98952*/      OPC_MoveChild3,
/* 98953*/      OPC_CheckOpcode, TARGET_VAL(ISD::FP_ROUND),
/* 98956*/      OPC_MoveChild0,
/* 98957*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 98960*/      OPC_CheckChild0Same, 1,
/* 98962*/      OPC_CheckChild1Integer, 1, 
/* 98964*/      OPC_MoveParent,
/* 98965*/      OPC_MoveParent,
/* 98966*/      OPC_CheckType, MVT::v4f32,
/* 98968*/      OPC_Scope, 48, /*->99018*/ // 2 children in Scope
/* 98970*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 98972*/        OPC_EmitInteger, MVT::i32, 0, 
/* 98975*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 98984*/        OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                      MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/* 98991*/        OPC_EmitInteger, MVT::i32, 3, 
/* 98994*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 5,  // Results = #6
/* 99003*/        OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                      MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/* 99010*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                      MVT::v4f32, 2/*#Ops*/, 4, 7, 
                  // Src: (build_vector:{ *:[v4f32] } (fpround:{ *:[f32] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] })), (fpround:{ *:[f32] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] })), (fpround:{ *:[f32] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 0:{ *:[iPTR] })), (fpround:{ *:[f32] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 1:{ *:[iPTR] }))) - Complexity = 447
                  // Dst: (VMRGEW:{ *:[v4f32] } (XVCVDPSP:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$B, 0:{ *:[i32] })), (XVCVDPSP:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$B, 3:{ *:[i32] })))
/* 99018*/      /*Scope*/ 48, /*->99067*/
/* 99019*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 99021*/        OPC_EmitInteger, MVT::i32, 0, 
/* 99024*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 99033*/        OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                      MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/* 99040*/        OPC_EmitInteger, MVT::i32, 3, 
/* 99043*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 0, 5,  // Results = #6
/* 99052*/        OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                      MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/* 99059*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                      MVT::v4f32, 2/*#Ops*/, 4, 7, 
                  // Src: (build_vector:{ *:[v4f32] } (fpround:{ *:[f32] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] })), (fpround:{ *:[f32] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] })), (fpround:{ *:[f32] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 0:{ *:[iPTR] })), (fpround:{ *:[f32] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$B, 1:{ *:[iPTR] }))) - Complexity = 447
                  // Dst: (VMRGEW:{ *:[v4f32] } (XVCVDPSP:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$B, ?:{ *:[v2f64] }:$A, 0:{ *:[i32] })), (XVCVDPSP:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$B, ?:{ *:[v2f64] }:$A, 3:{ *:[i32] })))
/* 99067*/      0, /*End of Scope*/
/* 99068*/    /*Scope*/ 63|128,2/*319*/, /*->99389*/
/* 99070*/      OPC_RecordChild0, // #0 = $A
/* 99071*/      OPC_SwitchType /*2 cases */, 102|128,1/*230*/, MVT::v4f32,// ->99305
/* 99075*/        OPC_CheckChild0Type, MVT::f32,
/* 99077*/        OPC_Scope, 26, /*->99105*/ // 2 children in Scope
/* 99079*/          OPC_CheckChild1Same, 0,
/* 99081*/          OPC_CheckChild2Same, 0,
/* 99083*/          OPC_CheckChild3Same, 0,
/* 99085*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 99087*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4f32, 1/*#Ops*/, 0,  // Results = #1
/* 99094*/          OPC_EmitInteger, MVT::i32, 0, 
/* 99097*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (build_vector:{ *:[v4f32] } f32:{ *:[f32] }:$A, f32:{ *:[f32] }:$A, f32:{ *:[f32] }:$A, f32:{ *:[f32] }:$A) - Complexity = 403
                    // Dst: (XXSPLTW:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4f32] } ?:{ *:[f32] }:$A), 0:{ *:[i32] })
/* 99105*/        /*Scope*/ 69|128,1/*197*/, /*->99304*/
/* 99107*/          OPC_RecordChild1, // #1 = $B
/* 99108*/          OPC_CheckChild1Type, MVT::f32,
/* 99110*/          OPC_RecordChild2, // #2 = $C
/* 99111*/          OPC_CheckChild2Type, MVT::f32,
/* 99113*/          OPC_RecordChild3, // #3 = $D
/* 99114*/          OPC_CheckChild3Type, MVT::f32,
/* 99116*/          OPC_Scope, 92, /*->99210*/ // 2 children in Scope
/* 99118*/            OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 99120*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99123*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 99131*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99134*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 2, 6,  // Results = #7
/* 99142*/            OPC_EmitInteger, MVT::i32, 0, 
/* 99145*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/* 99154*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/* 99161*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99164*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 11,  // Results = #12
/* 99172*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99175*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 3, 13,  // Results = #14
/* 99183*/            OPC_EmitInteger, MVT::i32, 0, 
/* 99186*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/* 99195*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/* 99202*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                          MVT::v4f32, 2/*#Ops*/, 10, 17, 
                      // Src: (build_vector:{ *:[v4f32] } f32:{ *:[f32] }:$A, f32:{ *:[f32] }:$B, f32:{ *:[f32] }:$C, f32:{ *:[f32] }:$D) - Complexity = 403
                      // Dst: (VMRGEW:{ *:[v4f32] } (XVCVDPSP:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f32] }:$A, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f32] }:$C, VSRC:{ *:[i32] }), 0:{ *:[i32] })), (XVCVDPSP:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f32] }:$B, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f32] }:$D, VSRC:{ *:[i32] }), 0:{ *:[i32] })))
/* 99210*/          /*Scope*/ 92, /*->99303*/
/* 99211*/            OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 99213*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99216*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 3, 4,  // Results = #5
/* 99224*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99227*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 6,  // Results = #7
/* 99235*/            OPC_EmitInteger, MVT::i32, 0, 
/* 99238*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/* 99247*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/* 99254*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99257*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 2, 11,  // Results = #12
/* 99265*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99268*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 13,  // Results = #14
/* 99276*/            OPC_EmitInteger, MVT::i32, 0, 
/* 99279*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/* 99288*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/* 99295*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                          MVT::v4f32, 2/*#Ops*/, 10, 17, 
                      // Src: (build_vector:{ *:[v4f32] } f32:{ *:[f32] }:$D, f32:{ *:[f32] }:$C, f32:{ *:[f32] }:$B, f32:{ *:[f32] }:$A) - Complexity = 403
                      // Dst: (VMRGEW:{ *:[v4f32] } (XVCVDPSP:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f32] }:$A, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f32] }:$C, VSRC:{ *:[i32] }), 0:{ *:[i32] })), (XVCVDPSP:{ *:[v4i32] } (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f32] }:$B, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f32] }:$D, VSRC:{ *:[i32] }), 0:{ *:[i32] })))
/* 99303*/          0, /*End of Scope*/
/* 99304*/        0, /*End of Scope*/
/* 99305*/      /*SwitchType*/ 81, MVT::v2f64,// ->99388
/* 99307*/        OPC_CheckChild0Type, MVT::f64,
/* 99309*/        OPC_RecordChild1, // #1 = $B
/* 99310*/        OPC_CheckChild1Type, MVT::f64,
/* 99312*/        OPC_Scope, 36, /*->99350*/ // 2 children in Scope
/* 99314*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 99316*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99319*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 99327*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99330*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 99338*/          OPC_EmitInteger, MVT::i32, 0, 
/* 99341*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v2f64, 3/*#Ops*/, 3, 5, 6, 
                    // Src: (build_vector:{ *:[v2f64] } f64:{ *:[f64] }:$A, f64:{ *:[f64] }:$B) - Complexity = 403
                    // Dst: (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f64] }:$A, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f64] }:$B, VSRC:{ *:[i32] }), 0:{ *:[i32] })
/* 99350*/        /*Scope*/ 36, /*->99387*/
/* 99351*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 99353*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99356*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 99364*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99367*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 99375*/          OPC_EmitInteger, MVT::i32, 0, 
/* 99378*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v2f64, 3/*#Ops*/, 3, 5, 6, 
                    // Src: (build_vector:{ *:[v2f64] } f64:{ *:[f64] }:$A, f64:{ *:[f64] }:$B) - Complexity = 403
                    // Dst: (XXPERMDI:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f64] }:$B, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f64] }:$A, VSRC:{ *:[i32] }), 0:{ *:[i32] })
/* 99387*/        0, /*End of Scope*/
/* 99388*/      0, // EndSwitchType
/* 99389*/    0, /*End of Scope*/
/* 99390*/  /*SwitchOpcode*/ 37|128,20/*2597*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->101991
/* 99394*/    OPC_Scope, 27|128,12/*1563*/, /*->100960*/ // 4 children in Scope
/* 99397*/      OPC_MoveChild0,
/* 99398*/      OPC_SwitchOpcode /*3 cases */, 105|128,5/*745*/, TARGET_VAL(PPCISD::MFVSR),// ->100148
/* 99403*/        OPC_MoveChild0,
/* 99404*/        OPC_SwitchOpcode /*4 cases */, 21|128,1/*149*/, TARGET_VAL(PPCISD::FCTIDZ),// ->99558
/* 99409*/          OPC_MoveChild0,
/* 99410*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 99413*/          OPC_RecordMemRef,
/* 99414*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 99415*/          OPC_CheckFoldableChainNode,
/* 99416*/          OPC_RecordChild1, // #1 = $A
/* 99417*/          OPC_CheckPredicate, 19, // Predicate_unindexedload
/* 99419*/          OPC_Scope, 32, /*->99453*/ // 2 children in Scope
/* 99421*/            OPC_CheckPredicate, 24, // Predicate_load
/* 99423*/            OPC_MoveParent,
/* 99424*/            OPC_CheckType, MVT::f64,
/* 99426*/            OPC_MoveParent,
/* 99427*/            OPC_CheckType, MVT::i64,
/* 99429*/            OPC_MoveParent,
/* 99430*/            OPC_CheckType, MVT::v2i64,
/* 99432*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 99434*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/* 99437*/            OPC_EmitMergeInputChains1_0,
/* 99438*/            OPC_EmitNode1, TARGET_VAL(PPC::LXVDSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99446*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPSXDS), 0,
                          MVT::v2i64, 1/*#Ops*/, 4, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctidz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 422
                      // Dst: (XVCVDPSXDS:{ *:[v2i64] } (LXVDSX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$A))
/* 99453*/          /*Scope*/ 103, /*->99557*/
/* 99454*/            OPC_CheckPredicate, 26, // Predicate_extload
/* 99456*/            OPC_CheckPredicate, 30, // Predicate_extloadf32
/* 99458*/            OPC_MoveParent,
/* 99459*/            OPC_CheckType, MVT::f64,
/* 99461*/            OPC_MoveParent,
/* 99462*/            OPC_CheckType, MVT::i64,
/* 99464*/            OPC_MoveParent,
/* 99465*/            OPC_CheckType, MVT::v2i64,
/* 99467*/            OPC_Scope, 43, /*->99512*/ // 2 children in Scope
/* 99469*/              OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 99471*/              OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$A #2 #3
/* 99474*/              OPC_EmitMergeInputChains1_0,
/* 99475*/              OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99483*/              OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 99486*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/* 99494*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                            MVT::f64, 1/*#Ops*/, 6,  // Results = #7
/* 99501*/              OPC_EmitInteger, MVT::i32, 0, 
/* 99504*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                            MVT::v2i64, 2/*#Ops*/, 7, 8, 
                        // Src: (scalar_to_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctidz:{ *:[f64] } (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                        // Dst: (XXPERMDIs:{ *:[v2i64] } (XSCVDPSXDS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf32:{ *:[f32] } ixaddr:{ *:[iPTR] }:$A), VSFRC:{ *:[i32] })), 0:{ *:[i32] })
/* 99512*/            /*Scope*/ 43, /*->99556*/
/* 99513*/              OPC_CheckPatternPredicate, 44, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector())
/* 99515*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/* 99518*/              OPC_EmitMergeInputChains1_0,
/* 99519*/              OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99527*/              OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 99530*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/* 99538*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                            MVT::f64, 1/*#Ops*/, 6,  // Results = #7
/* 99545*/              OPC_EmitInteger, MVT::i32, 0, 
/* 99548*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                            MVT::v2i64, 2/*#Ops*/, 7, 8, 
                        // Src: (scalar_to_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctidz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                        // Dst: (XXPERMDIs:{ *:[v2i64] } (XSCVDPSXDS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (XFLOADf32:{ *:[f32] } xoaddr:{ *:[iPTR] }:$A), VSFRC:{ *:[i32] })), 0:{ *:[i32] })
/* 99556*/            0, /*End of Scope*/
/* 99557*/          0, /*End of Scope*/
/* 99558*/        /*SwitchOpcode*/ 21|128,1/*149*/, TARGET_VAL(PPCISD::FCTIDUZ),// ->99711
/* 99562*/          OPC_MoveChild0,
/* 99563*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 99566*/          OPC_RecordMemRef,
/* 99567*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 99568*/          OPC_CheckFoldableChainNode,
/* 99569*/          OPC_RecordChild1, // #1 = $A
/* 99570*/          OPC_CheckPredicate, 19, // Predicate_unindexedload
/* 99572*/          OPC_Scope, 32, /*->99606*/ // 2 children in Scope
/* 99574*/            OPC_CheckPredicate, 24, // Predicate_load
/* 99576*/            OPC_MoveParent,
/* 99577*/            OPC_CheckType, MVT::f64,
/* 99579*/            OPC_MoveParent,
/* 99580*/            OPC_CheckType, MVT::i64,
/* 99582*/            OPC_MoveParent,
/* 99583*/            OPC_CheckType, MVT::v2i64,
/* 99585*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 99587*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/* 99590*/            OPC_EmitMergeInputChains1_0,
/* 99591*/            OPC_EmitNode1, TARGET_VAL(PPC::LXVDSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99599*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPUXDS), 0,
                          MVT::v2i64, 1/*#Ops*/, 4, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctiduz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 422
                      // Dst: (XVCVDPUXDS:{ *:[v2i64] } (LXVDSX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$A))
/* 99606*/          /*Scope*/ 103, /*->99710*/
/* 99607*/            OPC_CheckPredicate, 26, // Predicate_extload
/* 99609*/            OPC_CheckPredicate, 30, // Predicate_extloadf32
/* 99611*/            OPC_MoveParent,
/* 99612*/            OPC_CheckType, MVT::f64,
/* 99614*/            OPC_MoveParent,
/* 99615*/            OPC_CheckType, MVT::i64,
/* 99617*/            OPC_MoveParent,
/* 99618*/            OPC_CheckType, MVT::v2i64,
/* 99620*/            OPC_Scope, 43, /*->99665*/ // 2 children in Scope
/* 99622*/              OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 99624*/              OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$A #2 #3
/* 99627*/              OPC_EmitMergeInputChains1_0,
/* 99628*/              OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99636*/              OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 99639*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/* 99647*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                            MVT::f64, 1/*#Ops*/, 6,  // Results = #7
/* 99654*/              OPC_EmitInteger, MVT::i32, 0, 
/* 99657*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                            MVT::v2i64, 2/*#Ops*/, 7, 8, 
                        // Src: (scalar_to_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctiduz:{ *:[f64] } (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                        // Dst: (XXPERMDIs:{ *:[v2i64] } (XSCVDPUXDS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf32:{ *:[f32] } ixaddr:{ *:[iPTR] }:$A), VSFRC:{ *:[i32] })), 0:{ *:[i32] })
/* 99665*/            /*Scope*/ 43, /*->99709*/
/* 99666*/              OPC_CheckPatternPredicate, 44, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector())
/* 99668*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/* 99671*/              OPC_EmitMergeInputChains1_0,
/* 99672*/              OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99680*/              OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 99683*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/* 99691*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                            MVT::f64, 1/*#Ops*/, 6,  // Results = #7
/* 99698*/              OPC_EmitInteger, MVT::i32, 0, 
/* 99701*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                            MVT::v2i64, 2/*#Ops*/, 7, 8, 
                        // Src: (scalar_to_vector:{ *:[v2i64] } (PPCmfvsr:{ *:[i64] } (PPCfctiduz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                        // Dst: (XXPERMDIs:{ *:[v2i64] } (XSCVDPUXDS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (XFLOADf32:{ *:[f32] } xoaddr:{ *:[iPTR] }:$A), VSFRC:{ *:[i32] })), 0:{ *:[i32] })
/* 99709*/            0, /*End of Scope*/
/* 99710*/          0, /*End of Scope*/
/* 99711*/        /*SwitchOpcode*/ 86|128,1/*214*/, TARGET_VAL(PPCISD::FCTIWZ),// ->99929
/* 99715*/          OPC_MoveChild0,
/* 99716*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 99719*/          OPC_RecordMemRef,
/* 99720*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 99721*/          OPC_CheckFoldableChainNode,
/* 99722*/          OPC_RecordChild1, // #1 = $A
/* 99723*/          OPC_CheckPredicate, 19, // Predicate_unindexedload
/* 99725*/          OPC_Scope, 34, /*->99761*/ // 4 children in Scope
/* 99727*/            OPC_CheckPredicate, 26, // Predicate_extload
/* 99729*/            OPC_CheckPredicate, 30, // Predicate_extloadf32
/* 99731*/            OPC_MoveParent,
/* 99732*/            OPC_CheckType, MVT::f64,
/* 99734*/            OPC_MoveParent,
/* 99735*/            OPC_CheckType, MVT::i32,
/* 99737*/            OPC_MoveParent,
/* 99738*/            OPC_CheckType, MVT::v4i32,
/* 99740*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 99742*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/* 99745*/            OPC_EmitMergeInputChains1_0,
/* 99746*/            OPC_EmitNode1, TARGET_VAL(PPC::LXVWSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99754*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPSXWS), 0,
                          MVT::v4i32, 1/*#Ops*/, 4, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                      // Dst: (XVCVSPSXWS:{ *:[v4i32] } (LXVWSX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$A))
/* 99761*/          /*Scope*/ 54, /*->99816*/
/* 99762*/            OPC_CheckPredicate, 24, // Predicate_load
/* 99764*/            OPC_MoveParent,
/* 99765*/            OPC_CheckType, MVT::f64,
/* 99767*/            OPC_MoveParent,
/* 99768*/            OPC_CheckType, MVT::i32,
/* 99770*/            OPC_MoveParent,
/* 99771*/            OPC_CheckType, MVT::v4i32,
/* 99773*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 99775*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$A #2 #3
/* 99778*/            OPC_EmitMergeInputChains1_0,
/* 99779*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99787*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/* 99794*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99797*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/* 99805*/            OPC_EmitInteger, MVT::i32, 1, 
/* 99808*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 422
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPSXWS:{ *:[f64] } (DFLOADf64:{ *:[f64] } ixaddr:{ *:[iPTR] }:$A)), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/* 99816*/          /*Scope*/ 56, /*->99873*/
/* 99817*/            OPC_CheckPredicate, 26, // Predicate_extload
/* 99819*/            OPC_CheckPredicate, 30, // Predicate_extloadf32
/* 99821*/            OPC_MoveParent,
/* 99822*/            OPC_CheckType, MVT::f64,
/* 99824*/            OPC_MoveParent,
/* 99825*/            OPC_CheckType, MVT::i32,
/* 99827*/            OPC_MoveParent,
/* 99828*/            OPC_CheckType, MVT::v4i32,
/* 99830*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/* 99832*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/* 99835*/            OPC_EmitMergeInputChains1_0,
/* 99836*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99844*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWSs), 0,
                          MVT::f32, 1/*#Ops*/, 4,  // Results = #5
/* 99851*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99854*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/* 99862*/            OPC_EmitInteger, MVT::i32, 1, 
/* 99865*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPSXWSs:{ *:[f32] } (XFLOADf32:{ *:[f32] } xoaddr:{ *:[iPTR] }:$A)), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/* 99873*/          /*Scope*/ 54, /*->99928*/
/* 99874*/            OPC_CheckPredicate, 24, // Predicate_load
/* 99876*/            OPC_MoveParent,
/* 99877*/            OPC_CheckType, MVT::f64,
/* 99879*/            OPC_MoveParent,
/* 99880*/            OPC_CheckType, MVT::i32,
/* 99882*/            OPC_MoveParent,
/* 99883*/            OPC_CheckType, MVT::v4i32,
/* 99885*/            OPC_CheckPatternPredicate, 44, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector())
/* 99887*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/* 99890*/            OPC_EmitMergeInputChains1_0,
/* 99891*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99899*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/* 99906*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99909*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/* 99917*/            OPC_EmitInteger, MVT::i32, 1, 
/* 99920*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 422
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPSXWS:{ *:[f64] } (XFLOADf64:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/* 99928*/          0, /*End of Scope*/
/* 99929*/        /*SwitchOpcode*/ 86|128,1/*214*/, TARGET_VAL(PPCISD::FCTIWUZ),// ->100147
/* 99933*/          OPC_MoveChild0,
/* 99934*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 99937*/          OPC_RecordMemRef,
/* 99938*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 99939*/          OPC_CheckFoldableChainNode,
/* 99940*/          OPC_RecordChild1, // #1 = $A
/* 99941*/          OPC_CheckPredicate, 19, // Predicate_unindexedload
/* 99943*/          OPC_Scope, 34, /*->99979*/ // 4 children in Scope
/* 99945*/            OPC_CheckPredicate, 26, // Predicate_extload
/* 99947*/            OPC_CheckPredicate, 30, // Predicate_extloadf32
/* 99949*/            OPC_MoveParent,
/* 99950*/            OPC_CheckType, MVT::f64,
/* 99952*/            OPC_MoveParent,
/* 99953*/            OPC_CheckType, MVT::i32,
/* 99955*/            OPC_MoveParent,
/* 99956*/            OPC_CheckType, MVT::v4i32,
/* 99958*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 99960*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/* 99963*/            OPC_EmitMergeInputChains1_0,
/* 99964*/            OPC_EmitNode1, TARGET_VAL(PPC::LXVWSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 99972*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPUXWS), 0,
                          MVT::v4i32, 1/*#Ops*/, 4, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                      // Dst: (XVCVSPUXWS:{ *:[v4i32] } (LXVWSX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$A))
/* 99979*/          /*Scope*/ 54, /*->100034*/
/* 99980*/            OPC_CheckPredicate, 24, // Predicate_load
/* 99982*/            OPC_MoveParent,
/* 99983*/            OPC_CheckType, MVT::f64,
/* 99985*/            OPC_MoveParent,
/* 99986*/            OPC_CheckType, MVT::i32,
/* 99988*/            OPC_MoveParent,
/* 99989*/            OPC_CheckType, MVT::v4i32,
/* 99991*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/* 99993*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$A #2 #3
/* 99996*/            OPC_EmitMergeInputChains1_0,
/* 99997*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100005*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*100012*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100015*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*100023*/            OPC_EmitInteger, MVT::i32, 1, 
/*100026*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 422
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPUXWS:{ *:[f64] } (DFLOADf64:{ *:[f64] } ixaddr:{ *:[iPTR] }:$A)), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/*100034*/          /*Scope*/ 56, /*->100091*/
/*100035*/            OPC_CheckPredicate, 26, // Predicate_extload
/*100037*/            OPC_CheckPredicate, 30, // Predicate_extloadf32
/*100039*/            OPC_MoveParent,
/*100040*/            OPC_CheckType, MVT::f64,
/*100042*/            OPC_MoveParent,
/*100043*/            OPC_CheckType, MVT::i32,
/*100045*/            OPC_MoveParent,
/*100046*/            OPC_CheckType, MVT::v4i32,
/*100048*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*100050*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*100053*/            OPC_EmitMergeInputChains1_0,
/*100054*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*100062*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWSs), 0,
                          MVT::f32, 1/*#Ops*/, 4,  // Results = #5
/*100069*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100072*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*100080*/            OPC_EmitInteger, MVT::i32, 1, 
/*100083*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPUXWSs:{ *:[f32] } (XFLOADf32:{ *:[f32] } xoaddr:{ *:[iPTR] }:$A)), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/*100091*/          /*Scope*/ 54, /*->100146*/
/*100092*/            OPC_CheckPredicate, 24, // Predicate_load
/*100094*/            OPC_MoveParent,
/*100095*/            OPC_CheckType, MVT::f64,
/*100097*/            OPC_MoveParent,
/*100098*/            OPC_CheckType, MVT::i32,
/*100100*/            OPC_MoveParent,
/*100101*/            OPC_CheckType, MVT::v4i32,
/*100103*/            OPC_CheckPatternPredicate, 44, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector())
/*100105*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*100108*/            OPC_EmitMergeInputChains1_0,
/*100109*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100117*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*100124*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100127*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*100135*/            OPC_EmitInteger, MVT::i32, 1, 
/*100138*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (ld:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 422
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPUXWS:{ *:[f64] } (XFLOADf64:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A)), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/*100146*/          0, /*End of Scope*/
/*100147*/        0, // EndSwitchOpcode
/*100148*/      /*SwitchOpcode*/ 95, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->100246
/*100151*/        OPC_MoveChild0,
/*100152*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*100155*/        OPC_RecordMemRef,
/*100156*/        OPC_RecordNode, // #0 = 'ld' chained node
/*100157*/        OPC_CheckFoldableChainNode,
/*100158*/        OPC_RecordChild1, // #1 = $src
/*100159*/        OPC_CheckPredicate, 19, // Predicate_unindexedload
/*100161*/        OPC_CheckPredicate, 26, // Predicate_extload
/*100163*/        OPC_CheckPredicate, 21, // Predicate_extloadi8
/*100165*/        OPC_MoveParent,
/*100166*/        OPC_MoveChild1,
/*100167*/        OPC_CheckValueType, MVT::i8,
/*100169*/        OPC_MoveParent,
/*100170*/        OPC_SwitchType /*2 cases */, 35, MVT::i32,// ->100208
/*100173*/          OPC_MoveParent,
/*100174*/          OPC_CheckType, MVT::v4i32,
/*100176*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100181*/          OPC_EmitMergeInputChains1_0,
/*100182*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100190*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2Ws), 0|OPFL_Chain,
                        MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*100197*/          OPC_EmitInteger, MVT::i32, 1, 
/*100200*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTWs), 0|OPFL_Chain,
                        MVT::v4i32, 2/*#Ops*/, 5, 6, 
                    // Src: (scalar_to_vector:{ *:[v4i32] } (sext_inreg:{ *:[i32] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, i8:{ *:[Other] })) - Complexity = 419
                    // Dst: (XXSPLTWs:{ *:[v4i32] } (VEXTSB2Ws:{ *:[f64] } (LXSIBZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)), 1:{ *:[i32] })
/*100208*/        /*SwitchType*/ 35, MVT::i64,// ->100245
/*100210*/          OPC_MoveParent,
/*100211*/          OPC_CheckType, MVT::v2i64,
/*100213*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100215*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100218*/          OPC_EmitMergeInputChains1_0,
/*100219*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100227*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2Ds), 0|OPFL_Chain,
                        MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*100234*/          OPC_EmitInteger, MVT::i32, 0, 
/*100237*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                        MVT::v2i64, 2/*#Ops*/, 5, 6, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } (sext_inreg:{ *:[i64] } (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, i8:{ *:[Other] })) - Complexity = 419
                    // Dst: (XXPERMDIs:{ *:[v2i64] } (VEXTSB2Ds:{ *:[f64] } (LXSIBZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)), 0:{ *:[i32] })
/*100245*/        0, // EndSwitchType
/*100246*/      /*SwitchOpcode*/ 69|128,5/*709*/, TARGET_VAL(ISD::LOAD),// ->100959
/*100250*/        OPC_RecordMemRef,
/*100251*/        OPC_RecordNode, // #0 = 'ld' chained node
/*100252*/        OPC_RecordChild1, // #1 = $src
/*100253*/        OPC_CheckPredicate, 19, // Predicate_unindexedload
/*100255*/        OPC_Scope, 34, /*->100291*/ // 12 children in Scope
/*100257*/          OPC_CheckPredicate, 22, // Predicate_sextload
/*100259*/          OPC_CheckPredicate, 27, // Predicate_sextloadi32
/*100261*/          OPC_CheckType, MVT::i64,
/*100263*/          OPC_MoveParent,
/*100264*/          OPC_CheckType, MVT::v2i64,
/*100266*/          OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/*100268*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100271*/          OPC_EmitMergeInputChains1_0,
/*100272*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWAX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100280*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100283*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i64, 2/*#Ops*/, 4, 5, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>>) - Complexity = 416
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (LIWAX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*100291*/        /*Scope*/ 34, /*->100326*/
/*100292*/          OPC_CheckPredicate, 20, // Predicate_zextload
/*100294*/          OPC_CheckPredicate, 27, // Predicate_zextloadi32
/*100296*/          OPC_CheckType, MVT::i64,
/*100298*/          OPC_MoveParent,
/*100299*/          OPC_CheckType, MVT::v2i64,
/*100301*/          OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/*100303*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100306*/          OPC_EmitMergeInputChains1_0,
/*100307*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100315*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100318*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i64, 2/*#Ops*/, 4, 5, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>>) - Complexity = 416
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*100326*/        /*Scope*/ 34, /*->100361*/
/*100327*/          OPC_CheckPredicate, 26, // Predicate_extload
/*100329*/          OPC_CheckPredicate, 21, // Predicate_extloadi8
/*100331*/          OPC_CheckType, MVT::i32,
/*100333*/          OPC_MoveParent,
/*100334*/          OPC_CheckType, MVT::v16i8,
/*100336*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100338*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100341*/          OPC_EmitMergeInputChains1_0,
/*100342*/          OPC_EmitInteger, MVT::i32, 7, 
/*100345*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #5
/*100353*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTBs), 0|OPFL_Chain,
                        MVT::v16i8, 2/*#Ops*/, 4, 5, 
                    // Src: (scalar_to_vector:{ *:[v16i8] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 416
                    // Dst: (VSPLTBs:{ *:[v16i8] } 7:{ *:[i32] }, (LXSIBZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src))
/*100361*/        /*Scope*/ 95, /*->100457*/
/*100362*/          OPC_CheckPredicate, 20, // Predicate_zextload
/*100364*/          OPC_CheckPredicate, 21, // Predicate_zextloadi8
/*100366*/          OPC_SwitchType /*2 cases */, 57, MVT::i32,// ->100426
/*100369*/            OPC_MoveParent,
/*100370*/            OPC_SwitchType /*2 cases */, 25, MVT::v8i16,// ->100398
/*100373*/              OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100375*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100378*/              OPC_EmitMergeInputChains1_0,
/*100379*/              OPC_EmitInteger, MVT::i32, 3, 
/*100382*/              OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #5
/*100390*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTHs), 0|OPFL_Chain,
                            MVT::v8i16, 2/*#Ops*/, 4, 5, 
                        // Src: (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 416
                        // Dst: (VSPLTHs:{ *:[v8i16] } 3:{ *:[i32] }, (LXSIBZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src))
/*100398*/            /*SwitchType*/ 25, MVT::v4i32,// ->100425
/*100400*/              OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100402*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100405*/              OPC_EmitMergeInputChains1_0,
/*100406*/              OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100414*/              OPC_EmitInteger, MVT::i32, 1, 
/*100417*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTWs), 0|OPFL_Chain,
                            MVT::v4i32, 2/*#Ops*/, 4, 5, 
                        // Src: (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 416
                        // Dst: (XXSPLTWs:{ *:[v4i32] } (LXSIBZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), 1:{ *:[i32] })
/*100425*/            0, // EndSwitchType
/*100426*/          /*SwitchType*/ 28, MVT::i64,// ->100456
/*100428*/            OPC_MoveParent,
/*100429*/            OPC_CheckType, MVT::v2i64,
/*100431*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100433*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100436*/            OPC_EmitMergeInputChains1_0,
/*100437*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100445*/            OPC_EmitInteger, MVT::i32, 0, 
/*100448*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2i64] } (LXSIBZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), 0:{ *:[i32] })
/*100456*/          0, // EndSwitchType
/*100457*/        /*Scope*/ 34, /*->100492*/
/*100458*/          OPC_CheckPredicate, 26, // Predicate_extload
/*100460*/          OPC_CheckPredicate, 23, // Predicate_extloadi16
/*100462*/          OPC_CheckType, MVT::i32,
/*100464*/          OPC_MoveParent,
/*100465*/          OPC_CheckType, MVT::v8i16,
/*100467*/          OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100469*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100472*/          OPC_EmitMergeInputChains1_0,
/*100473*/          OPC_EmitInteger, MVT::i32, 3, 
/*100476*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #5
/*100484*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTHs), 0|OPFL_Chain,
                        MVT::v8i16, 2/*#Ops*/, 4, 5, 
                    // Src: (scalar_to_vector:{ *:[v8i16] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 416
                    // Dst: (VSPLTHs:{ *:[v8i16] } 3:{ *:[i32] }, (LXSIHZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src))
/*100492*/        /*Scope*/ 66, /*->100559*/
/*100493*/          OPC_CheckPredicate, 20, // Predicate_zextload
/*100495*/          OPC_CheckPredicate, 23, // Predicate_zextloadi16
/*100497*/          OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->100528
/*100500*/            OPC_MoveParent,
/*100501*/            OPC_CheckType, MVT::v4i32,
/*100503*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100505*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100508*/            OPC_EmitMergeInputChains1_0,
/*100509*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100517*/            OPC_EmitInteger, MVT::i32, 1, 
/*100520*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTWs), 0|OPFL_Chain,
                          MVT::v4i32, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 416
                      // Dst: (XXSPLTWs:{ *:[v4i32] } (LXSIHZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), 1:{ *:[i32] })
/*100528*/          /*SwitchType*/ 28, MVT::i64,// ->100558
/*100530*/            OPC_MoveParent,
/*100531*/            OPC_CheckType, MVT::v2i64,
/*100533*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100535*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100538*/            OPC_EmitMergeInputChains1_0,
/*100539*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100547*/            OPC_EmitInteger, MVT::i32, 0, 
/*100550*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2i64] } (LXSIHZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), 0:{ *:[i32] })
/*100558*/          0, // EndSwitchType
/*100559*/        /*Scope*/ 59, /*->100619*/
/*100560*/          OPC_CheckPredicate, 24, // Predicate_load
/*100562*/          OPC_CheckType, MVT::i64,
/*100564*/          OPC_MoveParent,
/*100565*/          OPC_CheckType, MVT::v2i64,
/*100567*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*100569*/          OPC_Scope, 23, /*->100594*/ // 2 children in Scope
/*100571*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*100574*/            OPC_EmitMergeInputChains1_0,
/*100575*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100583*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100586*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (DFLOADf64:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*100594*/          /*Scope*/ 23, /*->100618*/
/*100595*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/*100598*/            OPC_EmitMergeInputChains1_0,
/*100599*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100607*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100610*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (XFLOADf64:{ *:[f64] } xaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*100618*/          0, /*End of Scope*/
/*100619*/        /*Scope*/ 45, /*->100665*/
/*100620*/          OPC_CheckPredicate, 22, // Predicate_sextload
/*100622*/          OPC_CheckPredicate, 27, // Predicate_sextloadi32
/*100624*/          OPC_CheckType, MVT::i64,
/*100626*/          OPC_MoveParent,
/*100627*/          OPC_CheckType, MVT::v2i64,
/*100629*/          OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/*100631*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100634*/          OPC_EmitMergeInputChains1_0,
/*100635*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWAX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100643*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100646*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*100654*/          OPC_EmitInteger, MVT::i32, 2, 
/*100657*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                        MVT::v2i64, 2/*#Ops*/, 6, 7, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>>) - Complexity = 416
                    // Dst: (XXPERMDIs:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f64] } (LIWAX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*100665*/        /*Scope*/ 45, /*->100711*/
/*100666*/          OPC_CheckPredicate, 20, // Predicate_zextload
/*100668*/          OPC_CheckPredicate, 27, // Predicate_zextloadi32
/*100670*/          OPC_CheckType, MVT::i64,
/*100672*/          OPC_MoveParent,
/*100673*/          OPC_CheckType, MVT::v2i64,
/*100675*/          OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/*100677*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100680*/          OPC_EmitMergeInputChains1_0,
/*100681*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100689*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100692*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*100700*/          OPC_EmitInteger, MVT::i32, 2, 
/*100703*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                        MVT::v2i64, 2/*#Ops*/, 6, 7, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>>) - Complexity = 416
                    // Dst: (XXPERMDIs:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f64] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*100711*/        /*Scope*/ 83, /*->100795*/
/*100712*/          OPC_CheckPredicate, 24, // Predicate_load
/*100714*/          OPC_CheckType, MVT::i32,
/*100716*/          OPC_MoveParent,
/*100717*/          OPC_CheckType, MVT::v4i32,
/*100719*/          OPC_Scope, 36, /*->100757*/ // 2 children in Scope
/*100721*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/*100723*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100726*/            OPC_EmitMergeInputChains1_0,
/*100727*/            OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100735*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100738*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*100746*/            OPC_EmitInteger, MVT::i32, 2, 
/*100749*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v4i32, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[f64] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*100757*/          /*Scope*/ 36, /*->100794*/
/*100758*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/*100760*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100763*/            OPC_EmitMergeInputChains1_0,
/*100764*/            OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100772*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100775*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*100783*/            OPC_EmitInteger, MVT::i32, 1, 
/*100786*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSLDWIs), 0|OPFL_Chain,
                          MVT::v4i32, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXSLDWIs:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[f64] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/*100794*/          0, /*End of Scope*/
/*100795*/        /*Scope*/ 80, /*->100876*/
/*100796*/          OPC_CheckPredicate, 22, // Predicate_sextload
/*100798*/          OPC_CheckPredicate, 23, // Predicate_sextloadi16
/*100800*/          OPC_SwitchType /*2 cases */, 35, MVT::i32,// ->100838
/*100803*/            OPC_MoveParent,
/*100804*/            OPC_CheckType, MVT::v4i32,
/*100806*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100808*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100811*/            OPC_EmitMergeInputChains1_0,
/*100812*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100820*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2Ws), 0|OPFL_Chain,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*100827*/            OPC_EmitInteger, MVT::i32, 1, 
/*100830*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTWs), 0|OPFL_Chain,
                          MVT::v4i32, 2/*#Ops*/, 5, 6, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 416
                      // Dst: (XXSPLTWs:{ *:[v4i32] } (VEXTSH2Ws:{ *:[f64] } (LXSIHZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)), 1:{ *:[i32] })
/*100838*/          /*SwitchType*/ 35, MVT::i64,// ->100875
/*100840*/            OPC_MoveParent,
/*100841*/            OPC_CheckType, MVT::v2i64,
/*100843*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100845*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*100848*/            OPC_EmitMergeInputChains1_0,
/*100849*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100857*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2Ds), 0|OPFL_Chain,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*100864*/            OPC_EmitInteger, MVT::i32, 0, 
/*100867*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 5, 6, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2i64] } (VEXTSH2Ds:{ *:[f64] } (LXSIHZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src)), 0:{ *:[i32] })
/*100875*/          0, // EndSwitchType
/*100876*/        /*Scope*/ 81, /*->100958*/
/*100877*/          OPC_CheckPredicate, 24, // Predicate_load
/*100879*/          OPC_CheckType, MVT::i64,
/*100881*/          OPC_MoveParent,
/*100882*/          OPC_CheckType, MVT::v2i64,
/*100884*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*100886*/          OPC_Scope, 34, /*->100922*/ // 2 children in Scope
/*100888*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*100891*/            OPC_EmitMergeInputChains1_0,
/*100892*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100900*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100903*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*100911*/            OPC_EmitInteger, MVT::i32, 2, 
/*100914*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf64:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*100922*/          /*Scope*/ 34, /*->100957*/
/*100923*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/*100926*/            OPC_EmitMergeInputChains1_0,
/*100927*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*100935*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100938*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*100946*/            OPC_EmitInteger, MVT::i32, 2, 
/*100949*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f64] } (XFLOADf64:{ *:[f64] } xaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*100957*/          0, /*End of Scope*/
/*100958*/        0, /*End of Scope*/
/*100959*/      0, // EndSwitchOpcode
/*100960*/    /*Scope*/ 118|128,4/*630*/, /*->101592*/
/*100962*/      OPC_RecordChild0, // #0 = $A
/*100963*/      OPC_Scope, 16|128,4/*528*/, /*->101494*/ // 2 children in Scope
/*100966*/        OPC_CheckChild0Type, MVT::i32,
/*100968*/        OPC_SwitchType /*3 cases */, 43|128,1/*171*/, MVT::v4i32,// ->101143
/*100972*/          OPC_Scope, 9, /*->100983*/ // 3 children in Scope
/*100974*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*100976*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRWS), 0,
                          MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (MTVSRWS:{ *:[v4i32] } ?:{ *:[i32] }:$A)
/*100983*/          /*Scope*/ 57, /*->101041*/
/*100984*/            OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/*100986*/            OPC_EmitInteger, MVT::i64, 1, 
/*100989*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*100995*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*100998*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101007*/            OPC_EmitInteger, MVT::i32, 32, 
/*101010*/            OPC_EmitInteger, MVT::i32, 31, 
/*101013*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                          MVT::i64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/*101022*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 7,  // Results = #8
/*101029*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101032*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 8, 9, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (SUBREG_TO_REG:{ *:[v4i32] } 1:{ *:[i64] }, (MTVSRD:{ *:[f64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 31:{ *:[i32] })), sub_64:{ *:[i32] })
/*101041*/          /*Scope*/ 100, /*->101142*/
/*101042*/            OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/*101044*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*101050*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*101056*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*101059*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101068*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*101075*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101078*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*101087*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #8
/*101093*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #9
/*101099*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*101102*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*101111*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 11,  // Results = #12
/*101118*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101121*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 8, 12, 13,  // Results = #14
/*101130*/            OPC_EmitInteger, MVT::i32, 2, 
/*101133*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 7, 14, 15, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (XXPERMDI:{ *:[v4i32] } (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), sub_64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), sub_64:{ *:[i32] }), 2:{ *:[i32] })
/*101142*/          0, /*End of Scope*/
/*101143*/        /*SwitchType*/ 44|128,1/*172*/, MVT::v16i8,// ->101318
/*101146*/          OPC_Scope, 57, /*->101205*/ // 2 children in Scope
/*101148*/            OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/*101150*/            OPC_EmitInteger, MVT::i64, 1, 
/*101153*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*101159*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*101162*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101171*/            OPC_EmitInteger, MVT::i32, 56, 
/*101174*/            OPC_EmitInteger, MVT::i32, 7, 
/*101177*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                          MVT::i64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/*101186*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 7,  // Results = #8
/*101193*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101196*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 8, 9, 
                      // Src: (scalar_to_vector:{ *:[v16i8] } i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (SUBREG_TO_REG:{ *:[v16i8] } 1:{ *:[i64] }, (MTVSRD:{ *:[f64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] }), 56:{ *:[i32] }, 7:{ *:[i32] })), sub_64:{ *:[i32] })
/*101205*/          /*Scope*/ 111, /*->101317*/
/*101206*/            OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/*101208*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*101214*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*101220*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*101223*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101232*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*101239*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101242*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*101251*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #8
/*101257*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #9
/*101263*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*101266*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*101275*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 11,  // Results = #12
/*101282*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101285*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 8, 12, 13,  // Results = #14
/*101294*/            OPC_EmitInteger, MVT::i32, 2, 
/*101297*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 7, 14, 15,  // Results = #16
/*101306*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101309*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i8, 2/*#Ops*/, 16, 17, 
                      // Src: (scalar_to_vector:{ *:[v16i8] } i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } (XXPERMDI:{ *:[v4i32] } (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), sub_64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), sub_64:{ *:[i32] }), 2:{ *:[i32] }), VSRC:{ *:[i32] })
/*101317*/          0, /*End of Scope*/
/*101318*/        /*SwitchType*/ 44|128,1/*172*/, MVT::v8i16,// ->101493
/*101321*/          OPC_Scope, 57, /*->101380*/ // 2 children in Scope
/*101323*/            OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/*101325*/            OPC_EmitInteger, MVT::i64, 1, 
/*101328*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*101334*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*101337*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101346*/            OPC_EmitInteger, MVT::i32, 48, 
/*101349*/            OPC_EmitInteger, MVT::i32, 15, 
/*101352*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                          MVT::i64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/*101361*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 7,  // Results = #8
/*101368*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101371*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v8i16, 3/*#Ops*/, 1, 8, 9, 
                      // Src: (scalar_to_vector:{ *:[v8i16] } i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (SUBREG_TO_REG:{ *:[v8i16] } 1:{ *:[i64] }, (MTVSRD:{ *:[f64] } (RLDICR:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] }), 48:{ *:[i32] }, 15:{ *:[i32] })), sub_64:{ *:[i32] })
/*101380*/          /*Scope*/ 111, /*->101492*/
/*101381*/            OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/*101383*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*101389*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*101395*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*101398*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101407*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*101414*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101417*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*101426*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #8
/*101432*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #9
/*101438*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*101441*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*101450*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 11,  // Results = #12
/*101457*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101460*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 8, 12, 13,  // Results = #14
/*101469*/            OPC_EmitInteger, MVT::i32, 2, 
/*101472*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 7, 14, 15,  // Results = #16
/*101481*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101484*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i16, 2/*#Ops*/, 16, 17, 
                      // Src: (scalar_to_vector:{ *:[v8i16] } i32:{ *:[i32] }:$A) - Complexity = 403
                      // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } (XXPERMDI:{ *:[v4i32] } (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), sub_64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] })), sub_64:{ *:[i32] }), 2:{ *:[i32] }), VSRC:{ *:[i32] })
/*101492*/          0, /*End of Scope*/
/*101493*/        0, // EndSwitchType
/*101494*/      /*Scope*/ 96, /*->101591*/
/*101495*/        OPC_CheckChild0Type, MVT::i64,
/*101497*/        OPC_CheckType, MVT::v2i64,
/*101499*/        OPC_Scope, 24, /*->101525*/ // 2 children in Scope
/*101501*/          OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/*101503*/          OPC_EmitInteger, MVT::i64, 1, 
/*101506*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/*101513*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101516*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v2i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } i64:{ *:[i64] }:$A) - Complexity = 403
                    // Dst: (SUBREG_TO_REG:{ *:[v2i64] } 1:{ *:[i64] }, (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$A), sub_64:{ *:[i32] })
/*101525*/        /*Scope*/ 64, /*->101590*/
/*101526*/          OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/*101528*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*101534*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/*101541*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101544*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/*101553*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #5
/*101559*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #6
/*101566*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101569*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/*101578*/          OPC_EmitInteger, MVT::i32, 2, 
/*101581*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v2i64, 3/*#Ops*/, 4, 8, 9, 
                    // Src: (scalar_to_vector:{ *:[v2i64] } i64:{ *:[i64] }:$A) - Complexity = 403
                    // Dst: (XXPERMDI:{ *:[v2i64] } (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$A), sub_64:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2i64] } (IMPLICIT_DEF:{ *:[v2i64] }), (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$A), sub_64:{ *:[i32] }), 2:{ *:[i32] })
/*101590*/        0, /*End of Scope*/
/*101591*/      0, /*End of Scope*/
/*101592*/    /*Scope*/ 102|128,1/*230*/, /*->101824*/
/*101594*/      OPC_MoveChild0,
/*101595*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*101598*/      OPC_RecordMemRef,
/*101599*/      OPC_RecordNode, // #0 = 'ld' chained node
/*101600*/      OPC_RecordChild1, // #1 = $src
/*101601*/      OPC_CheckPredicate, 19, // Predicate_unindexedload
/*101603*/      OPC_CheckPredicate, 24, // Predicate_load
/*101605*/      OPC_SwitchType /*2 cases */, 5|128,1/*133*/, MVT::f64,// ->101742
/*101609*/        OPC_MoveParent,
/*101610*/        OPC_CheckType, MVT::v2f64,
/*101612*/        OPC_Scope, 52, /*->101666*/ // 2 children in Scope
/*101614*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*101616*/          OPC_Scope, 23, /*->101641*/ // 2 children in Scope
/*101618*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*101621*/            OPC_EmitMergeInputChains1_0,
/*101622*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*101630*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101633*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (DFLOADf64:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*101641*/          /*Scope*/ 23, /*->101665*/
/*101642*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/*101645*/            OPC_EmitMergeInputChains1_0,
/*101646*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*101654*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101657*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (XFLOADf64:{ *:[f64] } xaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*101665*/          0, /*End of Scope*/
/*101666*/        /*Scope*/ 74, /*->101741*/
/*101667*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*101669*/          OPC_Scope, 34, /*->101705*/ // 2 children in Scope
/*101671*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*101674*/            OPC_EmitMergeInputChains1_0,
/*101675*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*101683*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101686*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*101694*/            OPC_EmitInteger, MVT::i32, 2, 
/*101697*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf64:{ *:[f64] } ixaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*101705*/          /*Scope*/ 34, /*->101740*/
/*101706*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrIdx:$src #2 #3
/*101709*/            OPC_EmitMergeInputChains1_0,
/*101710*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*101718*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101721*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*101729*/            OPC_EmitInteger, MVT::i32, 2, 
/*101732*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } xaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[f64] } (XFLOADf64:{ *:[f64] } xaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*101740*/          0, /*End of Scope*/
/*101741*/        0, /*End of Scope*/
/*101742*/      /*SwitchType*/ 79, MVT::f32,// ->101823
/*101744*/        OPC_MoveParent,
/*101745*/        OPC_CheckType, MVT::v4f32,
/*101747*/        OPC_Scope, 36, /*->101785*/ // 2 children in Scope
/*101749*/          OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/*101751*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*101754*/          OPC_EmitMergeInputChains1_0,
/*101755*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*101763*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101766*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*101774*/          OPC_EmitInteger, MVT::i32, 2, 
/*101777*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 6, 7, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                    // Dst: (XXPERMDIs:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[f64] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*101785*/        /*Scope*/ 36, /*->101822*/
/*101786*/          OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/*101788*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*101791*/          OPC_EmitMergeInputChains1_0,
/*101792*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*101800*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101803*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*101811*/          OPC_EmitInteger, MVT::i32, 1, 
/*101814*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSLDWIs), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 6, 7, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                    // Dst: (XXSLDWIs:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[f64] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/*101822*/        0, /*End of Scope*/
/*101823*/      0, // EndSwitchType
/*101824*/    /*Scope*/ 36|128,1/*164*/, /*->101990*/
/*101826*/      OPC_RecordChild0, // #0 = $A
/*101827*/      OPC_Scope, 93, /*->101922*/ // 2 children in Scope
/*101829*/        OPC_CheckChild0Type, MVT::f64,
/*101831*/        OPC_SwitchType /*2 cases */, 65, MVT::v2f64,// ->101899
/*101834*/          OPC_Scope, 17, /*->101853*/ // 2 children in Scope
/*101836*/            OPC_CheckPatternPredicate, 23, // (!PPCSubTarget->isLittleEndian())
/*101838*/            OPC_EmitInteger, MVT::i64, 1, 
/*101841*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101844*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } f64:{ *:[f64] }:$A) - Complexity = 403
                      // Dst: (SUBREG_TO_REG:{ *:[v2f64] } 1:{ *:[i64] }, ?:{ *:[f64] }:$A, sub_64:{ *:[i32] })
/*101853*/          /*Scope*/ 44, /*->101898*/
/*101854*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->isLittleEndian())
/*101856*/            OPC_EmitInteger, MVT::i64, 1, 
/*101859*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101862*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*101871*/            OPC_EmitInteger, MVT::i64, 1, 
/*101874*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101877*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*101886*/            OPC_EmitInteger, MVT::i32, 0, 
/*101889*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v2f64, 3/*#Ops*/, 3, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } f64:{ *:[f64] }:$A) - Complexity = 403
                      // Dst: (XXPERMDI:{ *:[v2f64] } (SUBREG_TO_REG:{ *:[v4i32] } 1:{ *:[i64] }, ?:{ *:[f64] }:$A, sub_64:{ *:[i32] }), (SUBREG_TO_REG:{ *:[v4i32] } 1:{ *:[i64] }, ?:{ *:[f64] }:$A, sub_64:{ *:[i32] }), 0:{ *:[i32] })
/*101898*/          0, /*End of Scope*/
/*101899*/        /*SwitchType*/ 20, MVT::v4f64,// ->101921
/*101901*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*101903*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*101909*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101912*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v4f64] } f64:{ *:[f64] }:$A) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v4f64] } (IMPLICIT_DEF:{ *:[v4f64] }), ?:{ *:[f64] }:$A, sub_64:{ *:[i32] })
/*101921*/        0, // EndSwitchType
/*101922*/      /*Scope*/ 66, /*->101989*/
/*101923*/        OPC_CheckChild0Type, MVT::f32,
/*101925*/        OPC_CheckType, MVT::v4f32,
/*101927*/        OPC_Scope, 9, /*->101938*/ // 3 children in Scope
/*101929*/          OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*101931*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } f32:{ *:[f32] }:$A) - Complexity = 403
                    // Dst: (XSCVDPSPN:{ *:[v4f32] } ?:{ *:[f32] }:$A)
/*101938*/        /*Scope*/ 28, /*->101967*/
/*101939*/          OPC_CheckPatternPredicate, 28, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*101941*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #1
/*101948*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*101955*/          OPC_EmitInteger, MVT::i32, 1, 
/*101958*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } f32:{ *:[f32] }:$A) - Complexity = 403
                    // Dst: (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$A), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$A), 1:{ *:[i32] })
/*101967*/        /*Scope*/ 20, /*->101988*/
/*101968*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*101970*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*101976*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*101979*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } f32:{ *:[f32] }:$A) - Complexity = 3
                    // Dst: (INSERT_SUBREG:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), ?:{ *:[f32] }:$A, sub_64:{ *:[i32] })
/*101988*/        0, /*End of Scope*/
/*101989*/      0, /*End of Scope*/
/*101990*/    0, /*End of Scope*/
/*101991*/  /*SwitchOpcode*/ 89, TARGET_VAL(PPCISD::VECSHL),// ->102083
/*101994*/    OPC_RecordChild0, // #0 = $src
/*101995*/    OPC_Scope, 54, /*->102051*/ // 2 children in Scope
/*101997*/      OPC_CheckChild0Type, MVT::v4i32,
/*101999*/      OPC_Scope, 20, /*->102021*/ // 2 children in Scope
/*102001*/        OPC_CheckChild1Same, 0,
/*102003*/        OPC_CheckChild2Integer, 2, 
/*102005*/        OPC_CheckType, MVT::v4i32,
/*102007*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*102009*/        OPC_EmitInteger, MVT::i32, 2, 
/*102012*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 0, 1, 
                  // Src: (PPCvecshl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src, v4i32:{ *:[v4i32] }:$src, 2:{ *:[iPTR] }) - Complexity = 408
                  // Dst: (XXPERMDI:{ *:[v4i32] } ?:{ *:[v4i32] }:$src, ?:{ *:[v4i32] }:$src, 2:{ *:[i32] })
/*102021*/      /*Scope*/ 28, /*->102050*/
/*102022*/        OPC_RecordChild1, // #1 = $XB
/*102023*/        OPC_CheckChild1Type, MVT::v4i32,
/*102025*/        OPC_RecordChild2, // #2 = $SHW
/*102026*/        OPC_MoveChild2,
/*102027*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102030*/        OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*102032*/        OPC_CheckType, MVT::i32,
/*102034*/        OPC_MoveParent,
/*102035*/        OPC_CheckType, MVT::v4i32,
/*102037*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*102039*/        OPC_EmitConvertToTarget, 2,
/*102041*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSLDWI), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (PPCvecshl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$SHW) - Complexity = 407
                  // Dst: (XXSLDWI:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB, (imm:{ *:[i32] }):$SHW)
/*102050*/      0, /*End of Scope*/
/*102051*/    /*Scope*/ 30, /*->102082*/
/*102052*/      OPC_CheckChild0Type, MVT::v16i8,
/*102054*/      OPC_RecordChild1, // #1 = $vB
/*102055*/      OPC_CheckChild1Type, MVT::v16i8,
/*102057*/      OPC_RecordChild2, // #2 = $SH
/*102058*/      OPC_MoveChild2,
/*102059*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102062*/      OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*102064*/      OPC_CheckType, MVT::i32,
/*102066*/      OPC_MoveParent,
/*102067*/      OPC_CheckType, MVT::v16i8,
/*102069*/      OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*102071*/      OPC_EmitConvertToTarget, 2,
/*102073*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLDOI), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                // Src: (PPCvecshl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$SH) - Complexity = 7
                // Dst: (VSLDOI:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, (imm:{ *:[i32] }):$SH)
/*102082*/    0, /*End of Scope*/
/*102083*/  /*SwitchOpcode*/ 12|128,5/*652*/, TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->102739
/*102087*/    OPC_RecordChild0, // #0 = $A
/*102088*/    OPC_RecordChild1, // #1 = $B
/*102089*/    OPC_Scope, 32|128,1/*160*/, /*->102252*/ // 4 children in Scope
/*102092*/      OPC_CheckChild2Integer, 0, 
/*102094*/      OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->102165
/*102097*/        OPC_Scope, 32, /*->102131*/ // 2 children in Scope
/*102099*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*102101*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102108*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102111*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102119*/          OPC_EmitInteger, MVT::i32, 12, 
/*102122*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, i32:{ *:[i32] }:$B, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 12:{ *:[i32] })
/*102131*/        /*Scope*/ 32, /*->102164*/
/*102132*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*102134*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102141*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102144*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102152*/          OPC_EmitInteger, MVT::i32, 0, 
/*102155*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, i32:{ *:[i32] }:$B, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 0:{ *:[i32] })
/*102164*/        0, /*End of Scope*/
/*102165*/      /*SwitchType*/ 84, MVT::v4f32,// ->102251
/*102167*/        OPC_Scope, 40, /*->102209*/ // 2 children in Scope
/*102169*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*102171*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*102178*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*102185*/          OPC_EmitInteger, MVT::i32, 3, 
/*102188*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*102197*/          OPC_EmitInteger, MVT::i32, 12, 
/*102200*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 5, 6, 
                    // Src: (insertelt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, f32:{ *:[f32] }:$B, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), 3:{ *:[i32] }), 12:{ *:[i32] })
/*102209*/        /*Scope*/ 40, /*->102250*/
/*102210*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*102212*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*102219*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*102226*/          OPC_EmitInteger, MVT::i32, 3, 
/*102229*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*102238*/          OPC_EmitInteger, MVT::i32, 0, 
/*102241*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 5, 6, 
                    // Src: (insertelt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, f32:{ *:[f32] }:$B, 0:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), 3:{ *:[i32] }), 0:{ *:[i32] })
/*102250*/        0, /*End of Scope*/
/*102251*/      0, // EndSwitchType
/*102252*/    /*Scope*/ 32|128,1/*160*/, /*->102414*/
/*102254*/      OPC_CheckChild2Integer, 1, 
/*102256*/      OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->102327
/*102259*/        OPC_Scope, 32, /*->102293*/ // 2 children in Scope
/*102261*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*102263*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102270*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102273*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102281*/          OPC_EmitInteger, MVT::i32, 8, 
/*102284*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, i32:{ *:[i32] }:$B, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 8:{ *:[i32] })
/*102293*/        /*Scope*/ 32, /*->102326*/
/*102294*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*102296*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102303*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102306*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102314*/          OPC_EmitInteger, MVT::i32, 4, 
/*102317*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, i32:{ *:[i32] }:$B, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 4:{ *:[i32] })
/*102326*/        0, /*End of Scope*/
/*102327*/      /*SwitchType*/ 84, MVT::v4f32,// ->102413
/*102329*/        OPC_Scope, 40, /*->102371*/ // 2 children in Scope
/*102331*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*102333*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*102340*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*102347*/          OPC_EmitInteger, MVT::i32, 3, 
/*102350*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*102359*/          OPC_EmitInteger, MVT::i32, 8, 
/*102362*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 5, 6, 
                    // Src: (insertelt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, f32:{ *:[f32] }:$B, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), 3:{ *:[i32] }), 8:{ *:[i32] })
/*102371*/        /*Scope*/ 40, /*->102412*/
/*102372*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*102374*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*102381*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*102388*/          OPC_EmitInteger, MVT::i32, 3, 
/*102391*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*102400*/          OPC_EmitInteger, MVT::i32, 4, 
/*102403*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 5, 6, 
                    // Src: (insertelt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, f32:{ *:[f32] }:$B, 1:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), 3:{ *:[i32] }), 4:{ *:[i32] })
/*102412*/        0, /*End of Scope*/
/*102413*/      0, // EndSwitchType
/*102414*/    /*Scope*/ 32|128,1/*160*/, /*->102576*/
/*102416*/      OPC_CheckChild2Integer, 2, 
/*102418*/      OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->102489
/*102421*/        OPC_Scope, 32, /*->102455*/ // 2 children in Scope
/*102423*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*102425*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102432*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102435*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102443*/          OPC_EmitInteger, MVT::i32, 4, 
/*102446*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, i32:{ *:[i32] }:$B, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 4:{ *:[i32] })
/*102455*/        /*Scope*/ 32, /*->102488*/
/*102456*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*102458*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102465*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102468*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102476*/          OPC_EmitInteger, MVT::i32, 8, 
/*102479*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, i32:{ *:[i32] }:$B, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 8:{ *:[i32] })
/*102488*/        0, /*End of Scope*/
/*102489*/      /*SwitchType*/ 84, MVT::v4f32,// ->102575
/*102491*/        OPC_Scope, 40, /*->102533*/ // 2 children in Scope
/*102493*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*102495*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*102502*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*102509*/          OPC_EmitInteger, MVT::i32, 3, 
/*102512*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*102521*/          OPC_EmitInteger, MVT::i32, 4, 
/*102524*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 5, 6, 
                    // Src: (insertelt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, f32:{ *:[f32] }:$B, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), 3:{ *:[i32] }), 4:{ *:[i32] })
/*102533*/        /*Scope*/ 40, /*->102574*/
/*102534*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*102536*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*102543*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*102550*/          OPC_EmitInteger, MVT::i32, 3, 
/*102553*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*102562*/          OPC_EmitInteger, MVT::i32, 8, 
/*102565*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 5, 6, 
                    // Src: (insertelt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, f32:{ *:[f32] }:$B, 2:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), 3:{ *:[i32] }), 8:{ *:[i32] })
/*102574*/        0, /*End of Scope*/
/*102575*/      0, // EndSwitchType
/*102576*/    /*Scope*/ 32|128,1/*160*/, /*->102738*/
/*102578*/      OPC_CheckChild2Integer, 3, 
/*102580*/      OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->102651
/*102583*/        OPC_Scope, 32, /*->102617*/ // 2 children in Scope
/*102585*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*102587*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102594*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102597*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102605*/          OPC_EmitInteger, MVT::i32, 0, 
/*102608*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, i32:{ *:[i32] }:$B, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 0:{ *:[i32] })
/*102617*/        /*Scope*/ 32, /*->102650*/
/*102618*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*102620*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102627*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102630*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102638*/          OPC_EmitInteger, MVT::i32, 12, 
/*102641*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, i32:{ *:[i32] }:$B, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRWZ:{ *:[f64] } ?:{ *:[i32] }:$B), VSRC:{ *:[i32] }), 12:{ *:[i32] })
/*102650*/        0, /*End of Scope*/
/*102651*/      /*SwitchType*/ 84, MVT::v4f32,// ->102737
/*102653*/        OPC_Scope, 40, /*->102695*/ // 2 children in Scope
/*102655*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*102657*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*102664*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*102671*/          OPC_EmitInteger, MVT::i32, 3, 
/*102674*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*102683*/          OPC_EmitInteger, MVT::i32, 0, 
/*102686*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 5, 6, 
                    // Src: (insertelt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, f32:{ *:[f32] }:$B, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), 3:{ *:[i32] }), 0:{ *:[i32] })
/*102695*/        /*Scope*/ 40, /*->102736*/
/*102696*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*102698*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*102705*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*102712*/          OPC_EmitInteger, MVT::i32, 3, 
/*102715*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*102724*/          OPC_EmitInteger, MVT::i32, 12, 
/*102727*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 5, 6, 
                    // Src: (insertelt:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, f32:{ *:[f32] }:$B, 3:{ *:[iPTR] }) - Complexity = 408
                    // Dst: (XXINSERTW:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (XXSLDWI:{ *:[v4f32] } (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), (XSCVDPSPN:{ *:[v4i32] } ?:{ *:[f32] }:$B), 3:{ *:[i32] }), 12:{ *:[i32] })
/*102736*/        0, /*End of Scope*/
/*102737*/      0, // EndSwitchType
/*102738*/    0, /*End of Scope*/
/*102739*/  /*SwitchOpcode*/ 31, TARGET_VAL(PPCISD::XXPERMDI),// ->102773
/*102742*/    OPC_RecordChild0, // #0 = $XA
/*102743*/    OPC_CheckChild0Type, MVT::v2i64,
/*102745*/    OPC_RecordChild1, // #1 = $XB
/*102746*/    OPC_CheckChild1Type, MVT::v2i64,
/*102748*/    OPC_RecordChild2, // #2 = $DM
/*102749*/    OPC_MoveChild2,
/*102750*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102753*/    OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*102755*/    OPC_CheckType, MVT::i32,
/*102757*/    OPC_MoveParent,
/*102758*/    OPC_CheckType, MVT::v2i64,
/*102760*/    OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*102762*/    OPC_EmitConvertToTarget, 2,
/*102764*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                  MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
              // Src: (PPCxxpermdi:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$XA, v2i64:{ *:[v2i64] }:$XB, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$DM) - Complexity = 407
              // Dst: (XXPERMDI:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$XA, v2i64:{ *:[v2i64] }:$XB, (imm:{ *:[i32] }):$DM)
/*102773*/  /*SwitchOpcode*/ 27, TARGET_VAL(PPCISD::XXSPLT),// ->102803
/*102776*/    OPC_RecordChild0, // #0 = $XB
/*102777*/    OPC_CheckChild0Type, MVT::v4i32,
/*102779*/    OPC_RecordChild1, // #1 = $UIM
/*102780*/    OPC_MoveChild1,
/*102781*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102784*/    OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*102786*/    OPC_CheckType, MVT::i32,
/*102788*/    OPC_MoveParent,
/*102789*/    OPC_CheckType, MVT::v4i32,
/*102791*/    OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*102793*/    OPC_EmitConvertToTarget, 1,
/*102795*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                  MVT::v4i32, 2/*#Ops*/, 0, 2, 
              // Src: (PPCxxsplt:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$UIM) - Complexity = 407
              // Dst: (XXSPLTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (imm:{ *:[i32] }):$UIM)
/*102803*/  /*SwitchOpcode*/ 96, TARGET_VAL(PPCISD::VECINSERT),// ->102902
/*102806*/    OPC_RecordChild0, // #0 = $XTi
/*102807*/    OPC_Scope, 30, /*->102839*/ // 3 children in Scope
/*102809*/      OPC_CheckChild0Type, MVT::v4i32,
/*102811*/      OPC_RecordChild1, // #1 = $XB
/*102812*/      OPC_CheckChild1Type, MVT::v4i32,
/*102814*/      OPC_RecordChild2, // #2 = $UIM
/*102815*/      OPC_MoveChild2,
/*102816*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102819*/      OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*102821*/      OPC_CheckType, MVT::i32,
/*102823*/      OPC_MoveParent,
/*102824*/      OPC_CheckType, MVT::v4i32,
/*102826*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*102828*/      OPC_EmitConvertToTarget, 2,
/*102830*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (PPCvecinsert:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XTi, v4i32:{ *:[v4i32] }:$XB, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$UIM) - Complexity = 407
                // Dst: (XXINSERTW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XTi, v4i32:{ *:[v4i32] }:$XB, (imm:{ *:[i32] }):$UIM)
/*102839*/    /*Scope*/ 30, /*->102870*/
/*102840*/      OPC_CheckChild0Type, MVT::v16i8,
/*102842*/      OPC_RecordChild1, // #1 = $vB
/*102843*/      OPC_CheckChild1Type, MVT::v16i8,
/*102845*/      OPC_RecordChild2, // #2 = $UIM
/*102846*/      OPC_MoveChild2,
/*102847*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102850*/      OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*102852*/      OPC_CheckType, MVT::i32,
/*102854*/      OPC_MoveParent,
/*102855*/      OPC_CheckType, MVT::v16i8,
/*102857*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*102859*/      OPC_EmitConvertToTarget, 2,
/*102861*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VINSERTB), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 3, 1, 
                // Src: (PPCvecinsert:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vDi, v16i8:{ *:[v16i8] }:$vB, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$UIM) - Complexity = 7
                // Dst: (VINSERTB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vDi, (imm:{ *:[i32] }):$UIM, v16i8:{ *:[v16i8] }:$vB)
/*102870*/    /*Scope*/ 30, /*->102901*/
/*102871*/      OPC_CheckChild0Type, MVT::v8i16,
/*102873*/      OPC_RecordChild1, // #1 = $vB
/*102874*/      OPC_CheckChild1Type, MVT::v8i16,
/*102876*/      OPC_RecordChild2, // #2 = $UIM
/*102877*/      OPC_MoveChild2,
/*102878*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102881*/      OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*102883*/      OPC_CheckType, MVT::i32,
/*102885*/      OPC_MoveParent,
/*102886*/      OPC_CheckType, MVT::v8i16,
/*102888*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*102890*/      OPC_EmitConvertToTarget, 2,
/*102892*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VINSERTH), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 3, 1, 
                // Src: (PPCvecinsert:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vDi, v8i16:{ *:[v8i16] }:$vB, (imm:{ *:[i32] })<<P:Predicate_imm32SExt16>>:$UIM) - Complexity = 7
                // Dst: (VINSERTH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vDi, (imm:{ *:[i32] }):$UIM, v8i16:{ *:[v8i16] }:$vB)
/*102901*/    0, /*End of Scope*/
/*102902*/  /*SwitchOpcode*/ 84, TARGET_VAL(PPCISD::XXSWAPD),// ->102989
/*102905*/    OPC_RecordNode, // #0 = 'PPCxxswapd' chained node
/*102906*/    OPC_RecordChild1, // #1 = $src
/*102907*/    OPC_SwitchType /*4 cases */, 18, MVT::v2i64,// ->102928
/*102910*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*102912*/      OPC_EmitMergeInputChains1_0,
/*102913*/      OPC_EmitInteger, MVT::i32, 2, 
/*102916*/      OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                    MVT::v2i64, 3/*#Ops*/, 1, 1, 2,  // Results = #3
/*102925*/      OPC_CompleteMatch, 1, 3, 
                 // Src: (PPCxxswapd:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$src) - Complexity = 403
                 // Dst: (XXPERMDI:{ *:[v2i64] } ?:{ *:[v2i64] }:$src, ?:{ *:[v2i64] }:$src, 2:{ *:[i32] })
/*102928*/    /*SwitchType*/ 18, MVT::v4i32,// ->102948
/*102930*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*102932*/      OPC_EmitMergeInputChains1_0,
/*102933*/      OPC_EmitInteger, MVT::i32, 2, 
/*102936*/      OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 1, 2,  // Results = #3
/*102945*/      OPC_CompleteMatch, 1, 3, 
                 // Src: (PPCxxswapd:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src) - Complexity = 403
                 // Dst: (XXPERMDI:{ *:[v4i32] } ?:{ *:[v4i32] }:$src, ?:{ *:[v4i32] }:$src, 2:{ *:[i32] })
/*102948*/    /*SwitchType*/ 18, MVT::v2f64,// ->102968
/*102950*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*102952*/      OPC_EmitMergeInputChains1_0,
/*102953*/      OPC_EmitInteger, MVT::i32, 2, 
/*102956*/      OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                    MVT::v2f64, 3/*#Ops*/, 1, 1, 2,  // Results = #3
/*102965*/      OPC_CompleteMatch, 1, 3, 
                 // Src: (PPCxxswapd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src) - Complexity = 403
                 // Dst: (XXPERMDI:{ *:[v2f64] } ?:{ *:[v2f64] }:$src, ?:{ *:[v2f64] }:$src, 2:{ *:[i32] })
/*102968*/    /*SwitchType*/ 18, MVT::v4f32,// ->102988
/*102970*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*102972*/      OPC_EmitMergeInputChains1_0,
/*102973*/      OPC_EmitInteger, MVT::i32, 2, 
/*102976*/      OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                    MVT::v4f32, 3/*#Ops*/, 1, 1, 2,  // Results = #3
/*102985*/      OPC_CompleteMatch, 1, 3, 
                 // Src: (PPCxxswapd:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src) - Complexity = 403
                 // Dst: (XXPERMDI:{ *:[v4f32] } ?:{ *:[v4f32] }:$src, ?:{ *:[v4f32] }:$src, 2:{ *:[i32] })
/*102988*/    0, // EndSwitchType
/*102989*/  /*SwitchOpcode*/ 99, TARGET_VAL(PPCISD::XXREVERSE),// ->103091
/*102992*/    OPC_RecordChild0, // #0 = $A
/*102993*/    OPC_SwitchType /*4 cases */, 11, MVT::v4i32,// ->103007
/*102996*/      OPC_CheckChild0Type, MVT::v4i32,
/*102998*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*103000*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXBRW), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (PPCxxreverse:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A) - Complexity = 403
                // Dst: (XXBRW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A)
/*103007*/    /*SwitchType*/ 11, MVT::v2i64,// ->103020
/*103009*/      OPC_CheckChild0Type, MVT::v2i64,
/*103011*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*103013*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXBRD), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (PPCxxreverse:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$A) - Complexity = 403
                // Dst: (XXBRD:{ *:[v2i64] } ?:{ *:[v2i64] }:$A)
/*103020*/    /*SwitchType*/ 33, MVT::v8i16,// ->103055
/*103022*/      OPC_CheckChild0Type, MVT::v8i16,
/*103024*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*103026*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103029*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*103037*/      OPC_EmitNode1, TARGET_VAL(PPC::XXBRH), 0,
                    MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/*103044*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*103047*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v8i16, 2/*#Ops*/, 3, 4, 
                // Src: (PPCxxreverse:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$A) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } (XXBRH:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$A, VSRC:{ *:[i32] })), VRRC:{ *:[i32] })
/*103055*/    /*SwitchType*/ 33, MVT::v1i128,// ->103090
/*103057*/      OPC_CheckChild0Type, MVT::v1i128,
/*103059*/      OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP9Vector())
/*103061*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103064*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*103072*/      OPC_EmitNode1, TARGET_VAL(PPC::XXBRQ), 0,
                    MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/*103079*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*103082*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v1i128, 2/*#Ops*/, 3, 4, 
                // Src: (PPCxxreverse:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$A) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[v1i128] } (XXBRQ:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v1i128] }:$A, VSRC:{ *:[i32] })), VRRC:{ *:[i32] })
/*103090*/    0, // EndSwitchType
/*103091*/  /*SwitchOpcode*/ 71, TARGET_VAL(PPCISD::SExtVElems),// ->103165
/*103094*/    OPC_RecordChild0, // #0 = $A
/*103095*/    OPC_Scope, 26, /*->103123*/ // 3 children in Scope
/*103097*/      OPC_CheckChild0Type, MVT::v16i8,
/*103099*/      OPC_SwitchType /*2 cases */, 9, MVT::v2i64,// ->103111
/*103102*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103104*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSB2D), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (PPCSExtVElems:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$A) - Complexity = 403
                  // Dst: (VEXTSB2D:{ *:[v2i64] } ?:{ *:[v16i8] }:$A)
/*103111*/      /*SwitchType*/ 9, MVT::v4i32,// ->103122
/*103113*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103115*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSB2W), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (PPCSExtVElems:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$A) - Complexity = 403
                  // Dst: (VEXTSB2W:{ *:[v4i32] } ?:{ *:[v16i8] }:$A)
/*103122*/      0, // EndSwitchType
/*103123*/    /*Scope*/ 26, /*->103150*/
/*103124*/      OPC_CheckChild0Type, MVT::v8i16,
/*103126*/      OPC_SwitchType /*2 cases */, 9, MVT::v2i64,// ->103138
/*103129*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103131*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSH2D), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (PPCSExtVElems:{ *:[v2i64] } v8i16:{ *:[v8i16] }:$A) - Complexity = 403
                  // Dst: (VEXTSH2D:{ *:[v2i64] } ?:{ *:[v8i16] }:$A)
/*103138*/      /*SwitchType*/ 9, MVT::v4i32,// ->103149
/*103140*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103142*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSH2W), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (PPCSExtVElems:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$A) - Complexity = 403
                  // Dst: (VEXTSH2W:{ *:[v4i32] } ?:{ *:[v8i16] }:$A)
/*103149*/      0, // EndSwitchType
/*103150*/    /*Scope*/ 13, /*->103164*/
/*103151*/      OPC_CheckChild0Type, MVT::v4i32,
/*103153*/      OPC_CheckType, MVT::v2i64,
/*103155*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103157*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSW2D), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (PPCSExtVElems:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$A) - Complexity = 403
                // Dst: (VEXTSW2D:{ *:[v2i64] } ?:{ *:[v4i32] }:$A)
/*103164*/    0, /*End of Scope*/
/*103165*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::QVLFSb),// ->103186
/*103168*/    OPC_RecordNode, // #0 = 'PPCqvlfsb' chained node
/*103169*/    OPC_RecordChild1, // #1 = $src
/*103170*/    OPC_CheckType, MVT::v4i1,
/*103172*/    OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*103174*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*103177*/    OPC_EmitMergeInputChains1_0,
/*103178*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFSXb), 0|OPFL_Chain,
                  MVT::v4i1, 2/*#Ops*/, 2, 3, 
              // Src: (PPCqvlfsb:{ *:[v4i1] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 12
              // Dst: (QVLFSXb:{ *:[v4i1] } xoaddr:{ *:[iPTR] }:$src)
/*103186*/  /*SwitchOpcode*/ 72|128,2/*328*/, TARGET_VAL(PPCISD::VCMP),// ->103518
/*103190*/    OPC_RecordChild0, // #0 = $vA
/*103191*/    OPC_RecordChild1, // #1 = $vB
/*103192*/    OPC_SwitchType /*5 cases */, 70, MVT::v16i8,// ->103265
/*103195*/      OPC_Scope, 12, /*->103209*/ // 5 children in Scope
/*103197*/        OPC_CheckChild2Integer, 6, 
/*103199*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103201*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPEQUB), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 6:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103209*/      /*Scope*/ 13, /*->103223*/
/*103210*/        OPC_CheckChild2Integer, 6|128,6/*774*/, 
/*103213*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103215*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTSB), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 774:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTSB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103223*/      /*Scope*/ 13, /*->103237*/
/*103224*/        OPC_CheckChild2Integer, 6|128,4/*518*/, 
/*103227*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103229*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTUB), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 518:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103237*/      /*Scope*/ 12, /*->103250*/
/*103238*/        OPC_CheckChild2Integer, 7, 
/*103240*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103242*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPNEB), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 7:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103250*/      /*Scope*/ 13, /*->103264*/
/*103251*/        OPC_CheckChild2Integer, 7|128,2/*263*/, 
/*103254*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103256*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPNEZB), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 263:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEZB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103264*/      0, /*End of Scope*/
/*103265*/    /*SwitchType*/ 70, MVT::v8i16,// ->103337
/*103267*/      OPC_Scope, 12, /*->103281*/ // 5 children in Scope
/*103269*/        OPC_CheckChild2Integer, 70, 
/*103271*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103273*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPEQUH), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 70:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103281*/      /*Scope*/ 13, /*->103295*/
/*103282*/        OPC_CheckChild2Integer, 70|128,6/*838*/, 
/*103285*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103287*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTSH), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 838:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTSH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103295*/      /*Scope*/ 13, /*->103309*/
/*103296*/        OPC_CheckChild2Integer, 70|128,4/*582*/, 
/*103299*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103301*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTUH), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 582:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103309*/      /*Scope*/ 12, /*->103322*/
/*103310*/        OPC_CheckChild2Integer, 71, 
/*103312*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103314*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPNEH), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 71:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103322*/      /*Scope*/ 13, /*->103336*/
/*103323*/        OPC_CheckChild2Integer, 71|128,2/*327*/, 
/*103326*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103328*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPNEZH), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 327:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEZH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103336*/      0, /*End of Scope*/
/*103337*/    /*SwitchType*/ 72, MVT::v4i32,// ->103411
/*103339*/      OPC_Scope, 13, /*->103354*/ // 5 children in Scope
/*103341*/        OPC_CheckChild2Integer, 6|128,1/*134*/, 
/*103344*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103346*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPEQUW), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 134:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103354*/      /*Scope*/ 13, /*->103368*/
/*103355*/        OPC_CheckChild2Integer, 6|128,7/*902*/, 
/*103358*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103360*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTSW), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 902:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTSW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103368*/      /*Scope*/ 13, /*->103382*/
/*103369*/        OPC_CheckChild2Integer, 6|128,5/*646*/, 
/*103372*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103374*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTUW), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 646:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103382*/      /*Scope*/ 13, /*->103396*/
/*103383*/        OPC_CheckChild2Integer, 7|128,1/*135*/, 
/*103386*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103388*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPNEW), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 135:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103396*/      /*Scope*/ 13, /*->103410*/
/*103397*/        OPC_CheckChild2Integer, 7|128,3/*391*/, 
/*103400*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103402*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPNEZW), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 391:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEZW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103410*/      0, /*End of Scope*/
/*103411*/    /*SwitchType*/ 44, MVT::v2i64,// ->103457
/*103413*/      OPC_Scope, 13, /*->103428*/ // 3 children in Scope
/*103415*/        OPC_CheckChild2Integer, 71|128,1/*199*/, 
/*103418*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*103420*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPEQUD), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, 199:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQUD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*103428*/      /*Scope*/ 13, /*->103442*/
/*103429*/        OPC_CheckChild2Integer, 71|128,7/*967*/, 
/*103432*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*103434*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTSD), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, 967:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTSD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*103442*/      /*Scope*/ 13, /*->103456*/
/*103443*/        OPC_CheckChild2Integer, 71|128,5/*711*/, 
/*103446*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*103448*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTUD), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, 711:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTUD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*103456*/      0, /*End of Scope*/
/*103457*/    /*SwitchType*/ 58, MVT::v4f32,// ->103517
/*103459*/      OPC_Scope, 13, /*->103474*/ // 4 children in Scope
/*103461*/        OPC_CheckChild2Integer, 70|128,7/*966*/, 
/*103464*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103466*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPBFP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB, 966:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPBFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*103474*/      /*Scope*/ 13, /*->103488*/
/*103475*/        OPC_CheckChild2Integer, 70|128,1/*198*/, 
/*103478*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103480*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPEQFP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB, 198:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*103488*/      /*Scope*/ 13, /*->103502*/
/*103489*/        OPC_CheckChild2Integer, 70|128,3/*454*/, 
/*103492*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103494*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGEFP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB, 454:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGEFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*103502*/      /*Scope*/ 13, /*->103516*/
/*103503*/        OPC_CheckChild2Integer, 70|128,5/*710*/, 
/*103506*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103508*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCMPGTFP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB, 710:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*103516*/      0, /*End of Scope*/
/*103517*/    0, // EndSwitchType
/*103518*/  /*SwitchOpcode*/ 54|128,3/*438*/, TARGET_VAL(PPCISD::VCMPo),// ->103960
/*103522*/    OPC_RecordChild0, // #0 = $vA
/*103523*/    OPC_RecordChild1, // #1 = $vB
/*103524*/    OPC_SwitchType /*6 cases */, 75, MVT::v16i8,// ->103602
/*103527*/      OPC_Scope, 13, /*->103542*/ // 5 children in Scope
/*103529*/        OPC_CheckChild2Integer, 6, 
/*103531*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103533*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQUBo), 0|OPFL_GlueOutput,
                      MVT::v16i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 6:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQUBo:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103542*/      /*Scope*/ 14, /*->103557*/
/*103543*/        OPC_CheckChild2Integer, 6|128,6/*774*/, 
/*103546*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103548*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTSBo), 0|OPFL_GlueOutput,
                      MVT::v16i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 774:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTSBo:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103557*/      /*Scope*/ 14, /*->103572*/
/*103558*/        OPC_CheckChild2Integer, 6|128,4/*518*/, 
/*103561*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103563*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTUBo), 0|OPFL_GlueOutput,
                      MVT::v16i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 518:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTUBo:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103572*/      /*Scope*/ 13, /*->103586*/
/*103573*/        OPC_CheckChild2Integer, 7, 
/*103575*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103577*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEBo), 0|OPFL_GlueOutput,
                      MVT::v16i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 7:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEBo:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103586*/      /*Scope*/ 14, /*->103601*/
/*103587*/        OPC_CheckChild2Integer, 7|128,2/*263*/, 
/*103590*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103592*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEZBo), 0|OPFL_GlueOutput,
                      MVT::v16i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, 263:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEZBo:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*103601*/      0, /*End of Scope*/
/*103602*/    /*SwitchType*/ 75, MVT::v8i16,// ->103679
/*103604*/      OPC_Scope, 13, /*->103619*/ // 5 children in Scope
/*103606*/        OPC_CheckChild2Integer, 70, 
/*103608*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103610*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQUHo), 0|OPFL_GlueOutput,
                      MVT::v8i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 70:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQUHo:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103619*/      /*Scope*/ 14, /*->103634*/
/*103620*/        OPC_CheckChild2Integer, 70|128,6/*838*/, 
/*103623*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103625*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTSHo), 0|OPFL_GlueOutput,
                      MVT::v8i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 838:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTSHo:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103634*/      /*Scope*/ 14, /*->103649*/
/*103635*/        OPC_CheckChild2Integer, 70|128,4/*582*/, 
/*103638*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103640*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTUHo), 0|OPFL_GlueOutput,
                      MVT::v8i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 582:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTUHo:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103649*/      /*Scope*/ 13, /*->103663*/
/*103650*/        OPC_CheckChild2Integer, 71, 
/*103652*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103654*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEHo), 0|OPFL_GlueOutput,
                      MVT::v8i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 71:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEHo:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103663*/      /*Scope*/ 14, /*->103678*/
/*103664*/        OPC_CheckChild2Integer, 71|128,2/*327*/, 
/*103667*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103669*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEZHo), 0|OPFL_GlueOutput,
                      MVT::v8i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, 327:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEZHo:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*103678*/      0, /*End of Scope*/
/*103679*/    /*SwitchType*/ 77, MVT::v4i32,// ->103758
/*103681*/      OPC_Scope, 14, /*->103697*/ // 5 children in Scope
/*103683*/        OPC_CheckChild2Integer, 6|128,1/*134*/, 
/*103686*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103688*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQUWo), 0|OPFL_GlueOutput,
                      MVT::v4i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 134:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQUWo:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103697*/      /*Scope*/ 14, /*->103712*/
/*103698*/        OPC_CheckChild2Integer, 6|128,7/*902*/, 
/*103701*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103703*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTSWo), 0|OPFL_GlueOutput,
                      MVT::v4i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 902:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTSWo:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103712*/      /*Scope*/ 14, /*->103727*/
/*103713*/        OPC_CheckChild2Integer, 6|128,5/*646*/, 
/*103716*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103718*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTUWo), 0|OPFL_GlueOutput,
                      MVT::v4i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 646:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTUWo:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103727*/      /*Scope*/ 14, /*->103742*/
/*103728*/        OPC_CheckChild2Integer, 7|128,1/*135*/, 
/*103731*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103733*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEWo), 0|OPFL_GlueOutput,
                      MVT::v4i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 135:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEWo:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103742*/      /*Scope*/ 14, /*->103757*/
/*103743*/        OPC_CheckChild2Integer, 7|128,3/*391*/, 
/*103746*/        OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasP9Altivec())
/*103748*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEZWo), 0|OPFL_GlueOutput,
                      MVT::v4i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, 391:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPNEZWo:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*103757*/      0, /*End of Scope*/
/*103758*/    /*SwitchType*/ 47, MVT::v2i64,// ->103807
/*103760*/      OPC_Scope, 14, /*->103776*/ // 3 children in Scope
/*103762*/        OPC_CheckChild2Integer, 71|128,1/*199*/, 
/*103765*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*103767*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQUDo), 0|OPFL_GlueOutput,
                      MVT::v2i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, 199:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQUDo:{ *:[v2i64] }:{ *:[i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*103776*/      /*Scope*/ 14, /*->103791*/
/*103777*/        OPC_CheckChild2Integer, 71|128,7/*967*/, 
/*103780*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*103782*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTSDo), 0|OPFL_GlueOutput,
                      MVT::v2i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, 967:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTSDo:{ *:[v2i64] }:{ *:[i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*103791*/      /*Scope*/ 14, /*->103806*/
/*103792*/        OPC_CheckChild2Integer, 71|128,5/*711*/, 
/*103795*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*103797*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTUDo), 0|OPFL_GlueOutput,
                      MVT::v2i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, 711:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTUDo:{ *:[v2i64] }:{ *:[i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*103806*/      0, /*End of Scope*/
/*103807*/    /*SwitchType*/ 44, MVT::v2f64,// ->103853
/*103809*/      OPC_Scope, 13, /*->103824*/ // 3 children in Scope
/*103811*/        OPC_CheckChild2Integer, 99, 
/*103813*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*103815*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPEQDPo), 0|OPFL_GlueOutput,
                      MVT::v2f64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB, 99:{ *:[i32] }) - Complexity = 408
                  // Dst: (XVCMPEQDPo:{ *:[v2f64] }:{ *:[i32] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/*103824*/      /*Scope*/ 13, /*->103838*/
/*103825*/        OPC_CheckChild2Integer, 115, 
/*103827*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*103829*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPGEDPo), 0|OPFL_GlueOutput,
                      MVT::v2f64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB, 115:{ *:[i32] }) - Complexity = 408
                  // Dst: (XVCMPGEDPo:{ *:[v2f64] }:{ *:[i32] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/*103838*/      /*Scope*/ 13, /*->103852*/
/*103839*/        OPC_CheckChild2Integer, 107, 
/*103841*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*103843*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPGTDPo), 0|OPFL_GlueOutput,
                      MVT::v2f64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB, 107:{ *:[i32] }) - Complexity = 408
                  // Dst: (XVCMPGTDPo:{ *:[v2f64] }:{ *:[i32] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/*103852*/      0, /*End of Scope*/
/*103853*/    /*SwitchType*/ 104, MVT::v4f32,// ->103959
/*103855*/      OPC_Scope, 13, /*->103870*/ // 7 children in Scope
/*103857*/        OPC_CheckChild2Integer, 67, 
/*103859*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*103861*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPEQSPo), 0|OPFL_GlueOutput,
                      MVT::v4f32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB, 67:{ *:[i32] }) - Complexity = 408
                  // Dst: (XVCMPEQSPo:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/*103870*/      /*Scope*/ 13, /*->103884*/
/*103871*/        OPC_CheckChild2Integer, 83, 
/*103873*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*103875*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPGESPo), 0|OPFL_GlueOutput,
                      MVT::v4f32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB, 83:{ *:[i32] }) - Complexity = 408
                  // Dst: (XVCMPGESPo:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/*103884*/      /*Scope*/ 13, /*->103898*/
/*103885*/        OPC_CheckChild2Integer, 75, 
/*103887*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*103889*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPGTSPo), 0|OPFL_GlueOutput,
                      MVT::v4f32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB, 75:{ *:[i32] }) - Complexity = 408
                  // Dst: (XVCMPGTSPo:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/*103898*/      /*Scope*/ 14, /*->103913*/
/*103899*/        OPC_CheckChild2Integer, 70|128,7/*966*/, 
/*103902*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103904*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPBFPo), 0|OPFL_GlueOutput,
                      MVT::v4f32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB, 966:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPBFPo:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*103913*/      /*Scope*/ 14, /*->103928*/
/*103914*/        OPC_CheckChild2Integer, 70|128,1/*198*/, 
/*103917*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103919*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQFPo), 0|OPFL_GlueOutput,
                      MVT::v4f32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB, 198:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPEQFPo:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*103928*/      /*Scope*/ 14, /*->103943*/
/*103929*/        OPC_CheckChild2Integer, 70|128,3/*454*/, 
/*103932*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103934*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGEFPo), 0|OPFL_GlueOutput,
                      MVT::v4f32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB, 454:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGEFPo:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*103943*/      /*Scope*/ 14, /*->103958*/
/*103944*/        OPC_CheckChild2Integer, 70|128,5/*710*/, 
/*103947*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103949*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTFPo), 0|OPFL_GlueOutput,
                      MVT::v4f32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvcmp_o:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB, 710:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCMPGTFPo:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*103958*/      0, /*End of Scope*/
/*103959*/    0, // EndSwitchType
/*103960*/  /*SwitchOpcode*/ 68|128,4/*580*/, TARGET_VAL(ISD::VECTOR_SHUFFLE),// ->104544
/*103964*/    OPC_Scope, 76, /*->104042*/ // 4 children in Scope
/*103966*/      OPC_RecordNode, // #0 = $UIMM
/*103967*/      OPC_RecordChild0, // #1 = $vB
/*103968*/      OPC_MoveChild1,
/*103969*/      OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*103972*/      OPC_MoveParent,
/*103973*/      OPC_CheckType, MVT::v16i8,
/*103975*/      OPC_Scope, 15, /*->103992*/ // 4 children in Scope
/*103977*/        OPC_CheckPredicate, 47, // Predicate_vspltb_shuffle
/*103979*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103981*/        OPC_EmitNodeXForm, 13, 0, // VSPLTB_get_imm
/*103984*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTB), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 1, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB, (undef:{ *:[v16i8] }))<<P:Predicate_vspltb_shuffle>><<X:VSPLTB_get_imm>>:$UIMM - Complexity = 7
                  // Dst: (VSPLTB:{ *:[v16i8] } (VSPLTB_get_imm:{ *:[i32] } (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB, (undef:{ *:[v16i8] })):$UIMM), v16i8:{ *:[v16i8] }:$vB)
/*103992*/      /*Scope*/ 15, /*->104008*/
/*103993*/        OPC_CheckPredicate, 48, // Predicate_vsplth_shuffle
/*103995*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*103997*/        OPC_EmitNodeXForm, 14, 0, // VSPLTH_get_imm
/*104000*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTH), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 1, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB, (undef:{ *:[v16i8] }))<<P:Predicate_vsplth_shuffle>><<X:VSPLTH_get_imm>>:$UIMM - Complexity = 7
                  // Dst: (VSPLTH:{ *:[v16i8] } (VSPLTH_get_imm:{ *:[i32] } (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB, (undef:{ *:[v16i8] })):$UIMM), v16i8:{ *:[v16i8] }:$vB)
/*104008*/      /*Scope*/ 15, /*->104024*/
/*104009*/        OPC_CheckPredicate, 49, // Predicate_vspltw_shuffle
/*104011*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104013*/        OPC_EmitNodeXForm, 15, 0, // VSPLTW_get_imm
/*104016*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSPLTW), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 1, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB, (undef:{ *:[v16i8] }))<<P:Predicate_vspltw_shuffle>><<X:VSPLTW_get_imm>>:$UIMM - Complexity = 7
                  // Dst: (VSPLTW:{ *:[v16i8] } (VSPLTW_get_imm:{ *:[i32] } (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB, (undef:{ *:[v16i8] })):$UIMM), v16i8:{ *:[v16i8] }:$vB)
/*104024*/      /*Scope*/ 16, /*->104041*/
/*104025*/        OPC_CheckPredicate, 50, // Predicate_vsldoi_unary_shuffle
/*104027*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104029*/        OPC_EmitNodeXForm, 16, 0, // VSLDOI_unary_get_imm
/*104032*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLDOI), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 1, 2, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vsldoi_unary_shuffle>><<X:VSLDOI_unary_get_imm>>:$in - Complexity = 7
                  // Dst: (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA, (VSLDOI_unary_get_imm:{ *:[i32] } ?:{ *:[v16i8] }:$in))
/*104041*/      0, /*End of Scope*/
/*104042*/    /*Scope*/ 11|128,2/*267*/, /*->104311*/
/*104044*/      OPC_RecordChild0, // #0 = $vA
/*104045*/      OPC_Scope, 24|128,1/*152*/, /*->104200*/ // 2 children in Scope
/*104048*/        OPC_MoveChild1,
/*104049*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*104052*/        OPC_MoveParent,
/*104053*/        OPC_CheckType, MVT::v16i8,
/*104055*/        OPC_Scope, 12, /*->104069*/ // 11 children in Scope
/*104057*/          OPC_CheckPredicate, 51, // Predicate_vpkuwum_unary_shuffle
/*104059*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104061*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUWUM), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vpkuwum_unary_shuffle>> - Complexity = 7
                    // Dst: (VPKUWUM:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104069*/        /*Scope*/ 12, /*->104082*/
/*104070*/          OPC_CheckPredicate, 52, // Predicate_vpkuhum_unary_shuffle
/*104072*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104074*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUHUM), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vpkuhum_unary_shuffle>> - Complexity = 7
                    // Dst: (VPKUHUM:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104082*/        /*Scope*/ 12, /*->104095*/
/*104083*/          OPC_CheckPredicate, 53, // Predicate_vmrglb_unary_shuffle
/*104085*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104087*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLB), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vmrglb_unary_shuffle>> - Complexity = 7
                    // Dst: (VMRGLB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104095*/        /*Scope*/ 12, /*->104108*/
/*104096*/          OPC_CheckPredicate, 54, // Predicate_vmrglh_unary_shuffle
/*104098*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104100*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLH), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vmrglh_unary_shuffle>> - Complexity = 7
                    // Dst: (VMRGLH:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104108*/        /*Scope*/ 12, /*->104121*/
/*104109*/          OPC_CheckPredicate, 55, // Predicate_vmrglw_unary_shuffle
/*104111*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104113*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLW), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vmrglw_unary_shuffle>> - Complexity = 7
                    // Dst: (VMRGLW:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104121*/        /*Scope*/ 12, /*->104134*/
/*104122*/          OPC_CheckPredicate, 56, // Predicate_vmrghb_unary_shuffle
/*104124*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104126*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHB), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vmrghb_unary_shuffle>> - Complexity = 7
                    // Dst: (VMRGHB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104134*/        /*Scope*/ 12, /*->104147*/
/*104135*/          OPC_CheckPredicate, 57, // Predicate_vmrghh_unary_shuffle
/*104137*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104139*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHH), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vmrghh_unary_shuffle>> - Complexity = 7
                    // Dst: (VMRGHH:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104147*/        /*Scope*/ 12, /*->104160*/
/*104148*/          OPC_CheckPredicate, 58, // Predicate_vmrghw_unary_shuffle
/*104150*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104152*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHW), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vmrghw_unary_shuffle>> - Complexity = 7
                    // Dst: (VMRGHW:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104160*/        /*Scope*/ 12, /*->104173*/
/*104161*/          OPC_CheckPredicate, 59, // Predicate_vmrgew_unary_shuffle
/*104163*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104165*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vmrgew_unary_shuffle>> - Complexity = 7
                    // Dst: (VMRGEW:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104173*/        /*Scope*/ 12, /*->104186*/
/*104174*/          OPC_CheckPredicate, 60, // Predicate_vmrgow_unary_shuffle
/*104176*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104178*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGOW), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vmrgow_unary_shuffle>> - Complexity = 7
                    // Dst: (VMRGOW:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104186*/        /*Scope*/ 12, /*->104199*/
/*104187*/          OPC_CheckPredicate, 61, // Predicate_vpkudum_unary_shuffle
/*104189*/          OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104191*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUM), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 0, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (undef:{ *:[v16i8] }))<<P:Predicate_vpkudum_unary_shuffle>> - Complexity = 7
                    // Dst: (VPKUDUM:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vA)
/*104199*/        0, /*End of Scope*/
/*104200*/      /*Scope*/ 109, /*->104310*/
/*104201*/        OPC_RecordChild1, // #1 = $vB
/*104202*/        OPC_CheckType, MVT::v16i8,
/*104204*/        OPC_Scope, 12, /*->104218*/ // 8 children in Scope
/*104206*/          OPC_CheckPredicate, 62, // Predicate_vmrghb_shuffle
/*104208*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104210*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHB), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrghb_shuffle>> - Complexity = 4
                    // Dst: (VMRGHB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104218*/        /*Scope*/ 12, /*->104231*/
/*104219*/          OPC_CheckPredicate, 63, // Predicate_vmrghh_shuffle
/*104221*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104223*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHH), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrghh_shuffle>> - Complexity = 4
                    // Dst: (VMRGHH:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104231*/        /*Scope*/ 12, /*->104244*/
/*104232*/          OPC_CheckPredicate, 64, // Predicate_vmrghw_shuffle
/*104234*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104236*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHW), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrghw_shuffle>> - Complexity = 4
                    // Dst: (VMRGHW:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104244*/        /*Scope*/ 12, /*->104257*/
/*104245*/          OPC_CheckPredicate, 65, // Predicate_vmrglb_shuffle
/*104247*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104249*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLB), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrglb_shuffle>> - Complexity = 4
                    // Dst: (VMRGLB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104257*/        /*Scope*/ 12, /*->104270*/
/*104258*/          OPC_CheckPredicate, 66, // Predicate_vmrglh_shuffle
/*104260*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104262*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLH), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrglh_shuffle>> - Complexity = 4
                    // Dst: (VMRGLH:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104270*/        /*Scope*/ 12, /*->104283*/
/*104271*/          OPC_CheckPredicate, 67, // Predicate_vmrglw_shuffle
/*104273*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104275*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLW), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrglw_shuffle>> - Complexity = 4
                    // Dst: (VMRGLW:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104283*/        /*Scope*/ 12, /*->104296*/
/*104284*/          OPC_CheckPredicate, 68, // Predicate_vpkuhum_shuffle
/*104286*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104288*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUHUM), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vpkuhum_shuffle>> - Complexity = 4
                    // Dst: (VPKUHUM:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104296*/        /*Scope*/ 12, /*->104309*/
/*104297*/          OPC_CheckPredicate, 69, // Predicate_vpkuwum_shuffle
/*104299*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104301*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUWUM), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vpkuwum_shuffle>> - Complexity = 4
                    // Dst: (VPKUWUM:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104309*/        0, /*End of Scope*/
/*104310*/      0, /*End of Scope*/
/*104311*/    /*Scope*/ 41, /*->104353*/
/*104312*/      OPC_RecordNode, // #0 = $SH
/*104313*/      OPC_RecordChild0, // #1 = $vA
/*104314*/      OPC_RecordChild1, // #2 = $vB
/*104315*/      OPC_CheckType, MVT::v16i8,
/*104317*/      OPC_Scope, 16, /*->104335*/ // 2 children in Scope
/*104319*/        OPC_CheckPredicate, 70, // Predicate_vsldoi_shuffle
/*104321*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104323*/        OPC_EmitNodeXForm, 17, 0, // VSLDOI_get_imm
/*104326*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLDOI), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vsldoi_shuffle>><<X:VSLDOI_get_imm>>:$SH - Complexity = 4
                  // Dst: (VSLDOI:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, (VSLDOI_get_imm:{ *:[i32] } ?:{ *:[v16i8] }:$SH))
/*104335*/      /*Scope*/ 16, /*->104352*/
/*104336*/        OPC_CheckPredicate, 71, // Predicate_vsldoi_swapped_shuffle
/*104338*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104340*/        OPC_EmitNodeXForm, 18, 0, // VSLDOI_swapped_get_imm
/*104343*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLDOI), 0,
                      MVT::v16i8, 3/*#Ops*/, 2, 1, 3, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vsldoi_swapped_shuffle>><<X:VSLDOI_get_imm>>:$in - Complexity = 4
                  // Dst: (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA, (VSLDOI_swapped_get_imm:{ *:[i32] } ?:{ *:[v16i8] }:$in))
/*104352*/      0, /*End of Scope*/
/*104353*/    /*Scope*/ 60|128,1/*188*/, /*->104543*/
/*104355*/      OPC_RecordChild0, // #0 = $vA
/*104356*/      OPC_RecordChild1, // #1 = $vB
/*104357*/      OPC_CheckType, MVT::v16i8,
/*104359*/      OPC_Scope, 12, /*->104373*/ // 14 children in Scope
/*104361*/        OPC_CheckPredicate, 72, // Predicate_vpkuwum_swapped_shuffle
/*104363*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104365*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUWUM), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vpkuwum_swapped_shuffle>> - Complexity = 4
                  // Dst: (VPKUWUM:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104373*/      /*Scope*/ 12, /*->104386*/
/*104374*/        OPC_CheckPredicate, 73, // Predicate_vpkuhum_swapped_shuffle
/*104376*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104378*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUHUM), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vpkuhum_swapped_shuffle>> - Complexity = 4
                  // Dst: (VPKUHUM:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104386*/      /*Scope*/ 12, /*->104399*/
/*104387*/        OPC_CheckPredicate, 74, // Predicate_vmrglb_swapped_shuffle
/*104389*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104391*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLB), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrglb_swapped_shuffle>> - Complexity = 4
                  // Dst: (VMRGLB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104399*/      /*Scope*/ 12, /*->104412*/
/*104400*/        OPC_CheckPredicate, 75, // Predicate_vmrglh_swapped_shuffle
/*104402*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104404*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLH), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrglh_swapped_shuffle>> - Complexity = 4
                  // Dst: (VMRGLH:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104412*/      /*Scope*/ 12, /*->104425*/
/*104413*/        OPC_CheckPredicate, 76, // Predicate_vmrglw_swapped_shuffle
/*104415*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104417*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGLW), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrglw_swapped_shuffle>> - Complexity = 4
                  // Dst: (VMRGLW:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104425*/      /*Scope*/ 12, /*->104438*/
/*104426*/        OPC_CheckPredicate, 77, // Predicate_vmrghb_swapped_shuffle
/*104428*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104430*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHB), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrghb_swapped_shuffle>> - Complexity = 4
                  // Dst: (VMRGHB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104438*/      /*Scope*/ 12, /*->104451*/
/*104439*/        OPC_CheckPredicate, 78, // Predicate_vmrghh_swapped_shuffle
/*104441*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104443*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHH), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrghh_swapped_shuffle>> - Complexity = 4
                  // Dst: (VMRGHH:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104451*/      /*Scope*/ 12, /*->104464*/
/*104452*/        OPC_CheckPredicate, 79, // Predicate_vmrghw_swapped_shuffle
/*104454*/        OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104456*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGHW), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrghw_swapped_shuffle>> - Complexity = 4
                  // Dst: (VMRGHW:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104464*/      /*Scope*/ 12, /*->104477*/
/*104465*/        OPC_CheckPredicate, 80, // Predicate_vmrgew_shuffle
/*104467*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104469*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrgew_shuffle>> - Complexity = 4
                  // Dst: (VMRGEW:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104477*/      /*Scope*/ 12, /*->104490*/
/*104478*/        OPC_CheckPredicate, 81, // Predicate_vmrgow_shuffle
/*104480*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104482*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGOW), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrgow_shuffle>> - Complexity = 4
                  // Dst: (VMRGOW:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104490*/      /*Scope*/ 12, /*->104503*/
/*104491*/        OPC_CheckPredicate, 82, // Predicate_vmrgew_swapped_shuffle
/*104493*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104495*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGEW), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrgew_swapped_shuffle>> - Complexity = 4
                  // Dst: (VMRGEW:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104503*/      /*Scope*/ 12, /*->104516*/
/*104504*/        OPC_CheckPredicate, 83, // Predicate_vmrgow_swapped_shuffle
/*104506*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104508*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VMRGOW), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vmrgow_swapped_shuffle>> - Complexity = 4
                  // Dst: (VMRGOW:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104516*/      /*Scope*/ 12, /*->104529*/
/*104517*/        OPC_CheckPredicate, 84, // Predicate_vpkudum_shuffle
/*104519*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104521*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUM), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vpkudum_shuffle>> - Complexity = 4
                  // Dst: (VPKUDUM:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*104529*/      /*Scope*/ 12, /*->104542*/
/*104530*/        OPC_CheckPredicate, 85, // Predicate_vpkudum_swapped_shuffle
/*104532*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP8Altivec())
/*104534*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUM), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (vector_shuffle:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)<<P:Predicate_vpkudum_swapped_shuffle>> - Complexity = 4
                  // Dst: (VPKUDUM:{ *:[v16i8] } ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*104542*/      0, /*End of Scope*/
/*104543*/    0, /*End of Scope*/
/*104544*/  /*SwitchOpcode*/ 57, TARGET_VAL(PPCISD::QVALIGNI),// ->104604
/*104547*/    OPC_RecordChild0, // #0 = $FRA
/*104548*/    OPC_RecordChild1, // #1 = $FRB
/*104549*/    OPC_RecordChild2, // #2 = $idx
/*104550*/    OPC_MoveChild2,
/*104551*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*104554*/    OPC_CheckType, MVT::i32,
/*104556*/    OPC_MoveParent,
/*104557*/    OPC_SwitchType /*3 cases */, 13, MVT::v4i1,// ->104573
/*104560*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104562*/      OPC_EmitConvertToTarget, 2,
/*104564*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVALIGNIb), 0,
                    MVT::v4i1, 3/*#Ops*/, 0, 1, 3, 
                // Src: (PPCqvaligni:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB, (imm:{ *:[i32] }):$idx) - Complexity = 6
                // Dst: (QVALIGNIb:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB, (imm:{ *:[i32] }):$idx)
/*104573*/    /*SwitchType*/ 13, MVT::v4f64,// ->104588
/*104575*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104577*/      OPC_EmitConvertToTarget, 2,
/*104579*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVALIGNI), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (PPCqvaligni:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, (imm:{ *:[i32] }):$idx) - Complexity = 6
                // Dst: (QVALIGNI:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, (imm:{ *:[i32] }):$idx)
/*104588*/    /*SwitchType*/ 13, MVT::v4f32,// ->104603
/*104590*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104592*/      OPC_EmitConvertToTarget, 2,
/*104594*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVALIGNIs), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (PPCqvaligni:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, (imm:{ *:[i32] }):$idx) - Complexity = 6
                // Dst: (QVALIGNIs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, (imm:{ *:[i32] }):$idx)
/*104603*/    0, // EndSwitchType
/*104604*/  /*SwitchOpcode*/ 53, TARGET_VAL(PPCISD::QVESPLATI),// ->104660
/*104607*/    OPC_RecordChild0, // #0 = $FRA
/*104608*/    OPC_RecordChild1, // #1 = $idx
/*104609*/    OPC_MoveChild1,
/*104610*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*104613*/    OPC_CheckType, MVT::i32,
/*104615*/    OPC_MoveParent,
/*104616*/    OPC_SwitchType /*3 cases */, 12, MVT::v4i1,// ->104631
/*104619*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104621*/      OPC_EmitConvertToTarget, 1,
/*104623*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVESPLATIb), 0,
                    MVT::v4i1, 2/*#Ops*/, 0, 2, 
                // Src: (PPCqvesplati:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, (imm:{ *:[i32] }):$idx) - Complexity = 6
                // Dst: (QVESPLATIb:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, (imm:{ *:[i32] }):$idx)
/*104631*/    /*SwitchType*/ 12, MVT::v4f64,// ->104645
/*104633*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104635*/      OPC_EmitConvertToTarget, 1,
/*104637*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVESPLATI), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 2, 
                // Src: (PPCqvesplati:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, (imm:{ *:[i32] }):$idx) - Complexity = 6
                // Dst: (QVESPLATI:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, (imm:{ *:[i32] }):$idx)
/*104645*/    /*SwitchType*/ 12, MVT::v4f32,// ->104659
/*104647*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104649*/      OPC_EmitConvertToTarget, 1,
/*104651*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVESPLATIs), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 2, 
                // Src: (PPCqvesplati:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, (imm:{ *:[i32] }):$idx) - Complexity = 6
                // Dst: (QVESPLATIs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, (imm:{ *:[i32] }):$idx)
/*104659*/    0, // EndSwitchType
/*104660*/  /*SwitchOpcode*/ 16, TARGET_VAL(PPCISD::VPERM),// ->104679
/*104663*/    OPC_RecordChild0, // #0 = $vA
/*104664*/    OPC_RecordChild1, // #1 = $vB
/*104665*/    OPC_RecordChild2, // #2 = $vC
/*104666*/    OPC_CheckType, MVT::v16i8,
/*104668*/    OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104670*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::VPERM), 0,
                  MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
              // Src: (PPCvperm:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v16i8:{ *:[v16i8] }:$vC) - Complexity = 3
              // Dst: (VPERM:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vC)
/*104679*/  /*SwitchOpcode*/ 46, TARGET_VAL(ISD::VSELECT),// ->104728
/*104682*/    OPC_RecordChild0, // #0 = $FRA
/*104683*/    OPC_CheckChild0Type, MVT::v4i1,
/*104685*/    OPC_RecordChild1, // #1 = $FRC
/*104686*/    OPC_RecordChild2, // #2 = $FRB
/*104687*/    OPC_SwitchType /*3 cases */, 11, MVT::v4i1,// ->104701
/*104690*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104692*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELbb), 0,
                    MVT::v4i1, 3/*#Ops*/, 0, 2, 1, 
                // Src: (vselect:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRC, v4i1:{ *:[v4i1] }:$FRB) - Complexity = 3
                // Dst: (QVFSELbb:{ *:[v4i1] } v4i1:{ *:[v4i1] }:$FRA, v4i1:{ *:[v4i1] }:$FRB, v4i1:{ *:[v4i1] }:$FRC)
/*104701*/    /*SwitchType*/ 11, MVT::v4f64,// ->104714
/*104703*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104705*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELb), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 2, 1, 
                // Src: (vselect:{ *:[v4f64] } v4i1:{ *:[v4i1] }:$FRA, v4f64:{ *:[v4f64] }:$FRC, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                // Dst: (QVFSELb:{ *:[v4f64] } v4i1:{ *:[v4i1] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/*104714*/    /*SwitchType*/ 11, MVT::v4f32,// ->104727
/*104716*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104718*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELbs), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 2, 1, 
                // Src: (vselect:{ *:[v4f32] } v4i1:{ *:[v4i1] }:$FRA, v4f32:{ *:[v4f32] }:$FRC, v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                // Dst: (QVFSELbs:{ *:[v4f32] } v4i1:{ *:[v4i1] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, v4f32:{ *:[v4f32] }:$FRC)
/*104727*/    0, // EndSwitchType
/*104728*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::LXVD2X),// ->104748
/*104731*/    OPC_RecordMemRef,
/*104732*/    OPC_RecordNode, // #0 = 'PPClxvd2x' chained node
/*104733*/    OPC_RecordChild1, // #1 = $src
/*104734*/    OPC_CheckPatternPredicate, 11, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/*104736*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*104739*/    OPC_EmitMergeInputChains1_0,
/*104740*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain|OPFL_MemRefs,
                  MVT::v2f64, 2/*#Ops*/, 2, 3, 
              // Src: (PPClxvd2x:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
              // Dst: (LXVD2X:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/*104748*/  /*SwitchOpcode*/ 47, TARGET_VAL(PPCISD::SINT_VEC_TO_FP),// ->104798
/*104751*/    OPC_RecordChild0, // #0 = $C
/*104752*/    OPC_CheckChild0Type, MVT::v4i32,
/*104754*/    OPC_CheckType, MVT::v2f64,
/*104756*/    OPC_Scope, 19, /*->104777*/ // 2 children in Scope
/*104758*/      OPC_CheckChild1Integer, 0, 
/*104760*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*104762*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*104770*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 1, 
                // Src: (PPCsvec2fp:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$C, 0:{ *:[iPTR] }) - Complexity = 408
                // Dst: (XVCVSXWDP:{ *:[v2f64] } (XXMRGHW:{ *:[v2i64] } ?:{ *:[v4i32] }:$C, ?:{ *:[v4i32] }:$C))
/*104777*/    /*Scope*/ 19, /*->104797*/
/*104778*/      OPC_CheckChild1Integer, 1, 
/*104780*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*104782*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGLW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*104790*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 1, 
                // Src: (PPCsvec2fp:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$C, 1:{ *:[iPTR] }) - Complexity = 408
                // Dst: (XVCVSXWDP:{ *:[v2f64] } (XXMRGLW:{ *:[v2i64] } ?:{ *:[v4i32] }:$C, ?:{ *:[v4i32] }:$C))
/*104797*/    0, /*End of Scope*/
/*104798*/  /*SwitchOpcode*/ 47, TARGET_VAL(PPCISD::UINT_VEC_TO_FP),// ->104848
/*104801*/    OPC_RecordChild0, // #0 = $C
/*104802*/    OPC_CheckChild0Type, MVT::v4i32,
/*104804*/    OPC_CheckType, MVT::v2f64,
/*104806*/    OPC_Scope, 19, /*->104827*/ // 2 children in Scope
/*104808*/      OPC_CheckChild1Integer, 0, 
/*104810*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*104812*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*104820*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVUXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 1, 
                // Src: (PPCuvec2fp:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$C, 0:{ *:[iPTR] }) - Complexity = 408
                // Dst: (XVCVUXWDP:{ *:[v2f64] } (XXMRGHW:{ *:[v2i64] } ?:{ *:[v4i32] }:$C, ?:{ *:[v4i32] }:$C))
/*104827*/    /*Scope*/ 19, /*->104847*/
/*104828*/      OPC_CheckChild1Integer, 1, 
/*104830*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*104832*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGLW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*104840*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVUXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 1, 
                // Src: (PPCuvec2fp:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$C, 1:{ *:[iPTR] }) - Complexity = 408
                // Dst: (XVCVUXWDP:{ *:[v2f64] } (XXMRGLW:{ *:[v2i64] } ?:{ *:[v4i32] }:$C, ?:{ *:[v4i32] }:$C))
/*104847*/    0, /*End of Scope*/
/*104848*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::SWAP_NO_CHAIN),// ->104868
/*104851*/    OPC_RecordChild0, // #0 = $src
/*104852*/    OPC_CheckType, MVT::v2f64,
/*104854*/    OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasVSX())
/*104856*/    OPC_EmitInteger, MVT::i32, 2, 
/*104859*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                  MVT::v2f64, 3/*#Ops*/, 0, 0, 1, 
              // Src: (PPCswapNoChain:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src) - Complexity = 403
              // Dst: (XXPERMDI:{ *:[v2f64] } ?:{ *:[v2f64] }:$src, ?:{ *:[v2f64] }:$src, 2:{ *:[i32] })
/*104868*/  /*SwitchOpcode*/ 23, TARGET_VAL(PPCISD::QVGPCI),// ->104894
/*104871*/    OPC_RecordChild0, // #0 = $idx
/*104872*/    OPC_MoveChild0,
/*104873*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*104876*/    OPC_CheckPredicate, 37, // Predicate_u12
/*104878*/    OPC_CheckType, MVT::i32,
/*104880*/    OPC_MoveParent,
/*104881*/    OPC_CheckType, MVT::v4f64,
/*104883*/    OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104885*/    OPC_EmitConvertToTarget, 0,
/*104887*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::QVGPCI), 0,
                  MVT::v4f64, 1/*#Ops*/, 1, 
              // Src: (PPCqvgpci:{ *:[v4f64] } (imm:{ *:[i32] })<<P:Predicate_u12>>:$idx) - Complexity = 7
              // Dst: (QVGPCI:{ *:[v4f64] } (imm:{ *:[i32] }):$idx)
/*104894*/  /*SwitchOpcode*/ 16, TARGET_VAL(PPCISD::VMADDFP),// ->104913
/*104897*/    OPC_RecordChild0, // #0 = $A
/*104898*/    OPC_RecordChild1, // #1 = $B
/*104899*/    OPC_RecordChild2, // #2 = $C
/*104900*/    OPC_CheckType, MVT::v4f32,
/*104902*/    OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104904*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::VMADDFP), 0,
                  MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
              // Src: (PPCvmaddfp:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, v4f32:{ *:[v4f32] }:$B, v4f32:{ *:[v4f32] }:$C) - Complexity = 3
              // Dst: (VMADDFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C)
/*104913*/  /*SwitchOpcode*/ 16, TARGET_VAL(PPCISD::VNMSUBFP),// ->104932
/*104916*/    OPC_RecordChild0, // #0 = $A
/*104917*/    OPC_RecordChild1, // #1 = $B
/*104918*/    OPC_RecordChild2, // #2 = $C
/*104919*/    OPC_CheckType, MVT::v4f32,
/*104921*/    OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasAltivec())
/*104923*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::VNMSUBFP), 0,
                  MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
              // Src: (PPCvnmsubfp:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, v4f32:{ *:[v4f32] }:$B, v4f32:{ *:[v4f32] }:$C) - Complexity = 3
              // Dst: (VNMSUBFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C)
/*104932*/  /*SwitchOpcode*/ 33, TARGET_VAL(PPCISD::QVFPERM),// ->104968
/*104935*/    OPC_RecordChild0, // #0 = $FRA
/*104936*/    OPC_RecordChild1, // #1 = $FRB
/*104937*/    OPC_RecordChild2, // #2 = $FRC
/*104938*/    OPC_CheckChild2Type, MVT::v4f64,
/*104940*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->104954
/*104943*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104945*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFPERM), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (PPCqvfperm:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 3
                // Dst: (QVFPERM:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/*104954*/    /*SwitchType*/ 11, MVT::v4f32,// ->104967
/*104956*/      OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104958*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFPERMs), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (PPCqvfperm:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 3
                // Dst: (QVFPERMs:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/*104967*/    0, // EndSwitchType
/*104968*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::QBFLT),// ->104989
/*104971*/    OPC_RecordChild0, // #0 = $src
/*104972*/    OPC_CheckChild0Type, MVT::v4i1,
/*104974*/    OPC_CheckType, MVT::v4f64,
/*104976*/    OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasQPX())
/*104978*/    OPC_EmitInteger, MVT::i32, PPC::QFRCRegClassID,
/*104981*/    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                  MVT::v4f64, 2/*#Ops*/, 0, 1, 
              // Src: (PPCqbflt:{ *:[v4f64] } v4i1:{ *:[v4i1] }:$src) - Complexity = 3
              // Dst: (COPY_TO_REGCLASS:{ *:[v4f64] } ?:{ *:[v4i1] }:$src, QFRC:{ *:[i32] })
/*104989*/  /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(ISD::FMINNUM),// ->105125
/*104993*/    OPC_RecordChild0, // #0 = $FRA
/*104994*/    OPC_RecordChild1, // #1 = $FRB
/*104995*/    OPC_SwitchType /*2 cases */, 62, MVT::v4f64,// ->105060
/*104998*/      OPC_Scope, 19, /*->105019*/ // 2 children in Scope
/*105000*/        OPC_CheckPatternPredicate, 45, // (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath)
/*105002*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*105010*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELb), 0,
                      MVT::v4f64, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (fminnum:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                  // Dst: (QVFSELb:{ *:[v4f64] } (QVFCMPLTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), ?:{ *:[v4f64] }:$FRB, ?:{ *:[v4f64] }:$FRA)
/*105019*/      /*Scope*/ 39, /*->105059*/
/*105020*/        OPC_CheckPatternPredicate, 46, // (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath)
/*105022*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*105030*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 1, 1,  // Results = #3
/*105038*/        OPC_EmitInteger, MVT::i32, 7, 
/*105041*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*105050*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELb), 0,
                      MVT::v4f64, 3/*#Ops*/, 5, 1, 0, 
                  // Src: (fminnum:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                  // Dst: (QVFSELb:{ *:[v4f64] } (QVFLOGICALb:{ *:[v4i1] } (QVFCMPLTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRB, ?:{ *:[v4f64] }:$FRB), 7:{ *:[i32] }), ?:{ *:[v4f64] }:$FRB, ?:{ *:[v4f64] }:$FRA)
/*105059*/      0, /*End of Scope*/
/*105060*/    /*SwitchType*/ 62, MVT::v4f32,// ->105124
/*105062*/      OPC_Scope, 19, /*->105083*/ // 2 children in Scope
/*105064*/        OPC_CheckPatternPredicate, 45, // (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath)
/*105066*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*105074*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELbs), 0,
                      MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (fminnum:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFSELbs:{ *:[v4f32] } (QVFCMPLTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), ?:{ *:[v4f32] }:$FRB, ?:{ *:[v4f32] }:$FRA)
/*105083*/      /*Scope*/ 39, /*->105123*/
/*105084*/        OPC_CheckPatternPredicate, 46, // (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath)
/*105086*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*105094*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 1, 1,  // Results = #3
/*105102*/        OPC_EmitInteger, MVT::i32, 7, 
/*105105*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*105114*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELbs), 0,
                      MVT::v4f32, 3/*#Ops*/, 5, 1, 0, 
                  // Src: (fminnum:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFSELbs:{ *:[v4f32] } (QVFLOGICALb:{ *:[v4i1] } (QVFCMPLTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRB, ?:{ *:[v4f32] }:$FRB), 7:{ *:[i32] }), ?:{ *:[v4f32] }:$FRB, ?:{ *:[v4f32] }:$FRA)
/*105123*/      0, /*End of Scope*/
/*105124*/    0, // EndSwitchType
/*105125*/  /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(ISD::FMAXNUM),// ->105261
/*105129*/    OPC_RecordChild0, // #0 = $FRA
/*105130*/    OPC_RecordChild1, // #1 = $FRB
/*105131*/    OPC_SwitchType /*2 cases */, 62, MVT::v4f64,// ->105196
/*105134*/      OPC_Scope, 19, /*->105155*/ // 2 children in Scope
/*105136*/        OPC_CheckPatternPredicate, 45, // (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath)
/*105138*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*105146*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELb), 0,
                      MVT::v4f64, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (fmaxnum:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                  // Dst: (QVFSELb:{ *:[v4f64] } (QVFCMPGTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), ?:{ *:[v4f64] }:$FRB, ?:{ *:[v4f64] }:$FRA)
/*105155*/      /*Scope*/ 39, /*->105195*/
/*105156*/        OPC_CheckPatternPredicate, 46, // (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath)
/*105158*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*105166*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 1, 1,  // Results = #3
/*105174*/        OPC_EmitInteger, MVT::i32, 7, 
/*105177*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*105186*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELb), 0,
                      MVT::v4f64, 3/*#Ops*/, 5, 1, 0, 
                  // Src: (fmaxnum:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 3
                  // Dst: (QVFSELb:{ *:[v4f64] } (QVFLOGICALb:{ *:[v4i1] } (QVFCMPGTb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRA, ?:{ *:[v4f64] }:$FRB), (QVFTSTNANb:{ *:[v4i1] } ?:{ *:[v4f64] }:$FRB, ?:{ *:[v4f64] }:$FRB), 7:{ *:[i32] }), ?:{ *:[v4f64] }:$FRB, ?:{ *:[v4f64] }:$FRA)
/*105195*/      0, /*End of Scope*/
/*105196*/    /*SwitchType*/ 62, MVT::v4f32,// ->105260
/*105198*/      OPC_Scope, 19, /*->105219*/ // 2 children in Scope
/*105200*/        OPC_CheckPatternPredicate, 45, // (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath)
/*105202*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*105210*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELbs), 0,
                      MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (fmaxnum:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFSELbs:{ *:[v4f32] } (QVFCMPGTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), ?:{ *:[v4f32] }:$FRB, ?:{ *:[v4f32] }:$FRA)
/*105219*/      /*Scope*/ 39, /*->105259*/
/*105220*/        OPC_CheckPatternPredicate, 46, // (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath)
/*105222*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*105230*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 1, 1,  // Results = #3
/*105238*/        OPC_EmitInteger, MVT::i32, 7, 
/*105241*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*105250*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSELbs), 0,
                      MVT::v4f32, 3/*#Ops*/, 5, 1, 0, 
                  // Src: (fmaxnum:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$FRA, v4f32:{ *:[v4f32] }:$FRB) - Complexity = 3
                  // Dst: (QVFSELbs:{ *:[v4f32] } (QVFLOGICALb:{ *:[v4i1] } (QVFCMPGTbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRA, ?:{ *:[v4f32] }:$FRB), (QVFTSTNANbs:{ *:[v4i1] } ?:{ *:[v4f32] }:$FRB, ?:{ *:[v4f32] }:$FRB), 7:{ *:[i32] }), ?:{ *:[v4f32] }:$FRB, ?:{ *:[v4f32] }:$FRA)
/*105259*/      0, /*End of Scope*/
/*105260*/    0, // EndSwitchType
/*105261*/  0, // EndSwitchOpcode
    0
  }; // Total Array size is 105263 bytes

  // Opcode Histogram:
  // #OPC_Scope                                = 836
  // #OPC_RecordNode                           = 71
  // #OPC_RecordChild                          = 1340
  // #OPC_RecordMemRef                         = 34
  // #OPC_CaptureGlueInput                     = 12
  // #OPC_MoveChild                            = 612
  // #OPC_MoveParent                           = 2160
  // #OPC_CheckSame                            = 12
  // #OPC_CheckChildSame                       = 47
  // #OPC_CheckPatternPredicate                = 2049
  // #OPC_CheckPredicate                       = 541
  // #OPC_CheckOpcode                          = 375
  // #OPC_SwitchOpcode                         = 39
  // #OPC_CheckType                            = 1814
  // #OPC_SwitchType                           = 228
  // #OPC_CheckChildType                       = 302
  // #OPC_CheckInteger                         = 3
  // #OPC_CheckChildInteger                    = 812
  // #OPC_CheckCondCode                        = 654
  // #OPC_CheckValueType                       = 60
  // #OPC_CheckComplexPat                      = 414
  // #OPC_CheckAndImm                          = 4
  // #OPC_CheckOrImm                           = 0
  // #OPC_CheckFoldableChainNode               = 5
  // #OPC_EmitInteger                          = 2647
  // #OPC_EmitStringInteger                    = 1375
  // #OPC_EmitRegister                         = 13
  // #OPC_EmitConvertToTarget                  = 275
  // #OPC_EmitMergeInputChains                 = 505
  // #OPC_EmitCopyToReg                        = 0
  // #OPC_EmitNode                             = 4682
  // #OPC_EmitNodeXForm                        = 88
  // #OPC_CompleteMatch                        = 35
  // #OPC_MorphNodeTo                          = 2867

  #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 (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian());
  case 1: return (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian());
  case 2: return (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian());
  case 3: return (PPCSubTarget->hasP9Vector());
  case 4: return (PPCSubTarget->hasAltivec());
  case 5: return (PPCSubTarget->hasQPX());
  case 6: return (PPCSubTarget->hasP8Vector());
  case 7: return (PPCSubTarget->hasFPU());
  case 8: return (PPCSubTarget->hasSPE());
  case 9: return (PPCSubTarget->hasVSX());
  case 10: return (!PPCSubTarget->hasP9Vector());
  case 11: return (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX());
  case 12: return (!PPCSubTarget->hasOnlyMSYNC());
  case 13: return (PPCSubTarget->hasOnlyMSYNC());
  case 14: return (PPCSubTarget->hasHTM());
  case 15: return (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian());
  case 16: return (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian());
  case 17: return (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0());
  case 18: return (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian());
  case 19: return (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian());
  case 20: return (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec());
  case 21: return (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec());
  case 22: return (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian());
  case 23: return (!PPCSubTarget->isLittleEndian());
  case 24: return (PPCSubTarget->isLittleEndian());
  case 25: return (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian());
  case 26: return (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian());
  case 27: return (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian());
  case 28: return (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian());
  case 29: return (PPCSubTarget->hasDirectMove());
  case 30: return (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX());
  case 31: return (PPCSubTarget->hasICBT());
  case 32: return (PPCSubTarget->hasP8Altivec());
  case 33: return (PPCSubTarget->isPPC64());
  case 34: return (!PPCSubTarget->isPPC64());
  case 35: return (PPCSubTarget->hasExtDiv());
  case 36: return (PPCSubTarget->hasP9Altivec());
  case 37: return (PPCSubTarget->hasBPERMD());
  case 38: return (PPCSubTarget->hasP8Crypto());
  case 39: return (PPCSubTarget->isISA3_0());
  case 40: return (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0());
  case 41: return (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian());
  case 42: return (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector());
  case 43: return (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector());
  case 44: return (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector());
  case 45: return (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath);
  case 46: return (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath);
  }
}
#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_truncstorei8
    // Predicate_pre_truncsti8
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

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

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

  }
  case 5: { 
    // Predicate_quadwOffsetStore
    // Predicate_quadwOffsetLoad
    SDNode *N = Node;

  return isOffsetMultipleOf(N, 16);

  }
  case 6: { 
    // Predicate_nonQuadwOffsetStore
    // Predicate_nonQuadwOffsetLoad
    SDNode *N = Node;

  return !isOffsetMultipleOf(N, 16);

  }
  case 7: { 
    // 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 8: { 
    // Predicate_truncstorei32
    // Predicate_pre_truncsti32
    SDNode *N = Node;
if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i32) return false;
return true;

  }
  case 9: { 
    // Predicate_aligned4store
    // Predicate_aligned4pre_store
    SDNode *N = Node;

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

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

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

  }
  case 11: { 
    // Predicate_truncstorev4f32
    // Predicate_pre_truncstv4f32
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::v4f32;

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

  // immZExt16 predicate - True if the immediate fits in a 16-bit zero extended
  // field.  Used by instructions like 'ori'.
  return (uint64_t)N->getZExtValue() == (unsigned short)N->getZExtValue();

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

  // imm32SExt16 predicate - True if the i32 immediate fits in a 16-bit
  // sign extended field.  Used by instructions like 'addi'.
  return (int32_t)Imm == (short)Imm;

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

  // imm64SExt16 predicate - True if the i64 immediate fits in a 16-bit
  // sign extended field.  Used by instructions like 'addi'.
  return (int64_t)Imm == (short)Imm;

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

  // imm64ZExt32 predicate - True if the i64 immediate fits in a 32-bit
  // zero extended field.
  return isUInt<32>(Imm);

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

  // imm16ShiftedZExt predicate - True if only bits in the top 16-bits of the
  // immediate are set.  Used by instructions like 'xoris'.
  return (N->getZExtValue() & ~uint64_t(0xFFFF0000)) == 0;

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

  return ISD::isBuildVectorAllOnes(N);

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

  // imm16ShiftedSExt predicate - True if only bits in the top 16-bits of the
  // immediate are set.  Used by instructions like 'addis'.  Identical to 
  // imm16ShiftedZExt in 32-bit mode.
  if (N->getZExtValue() & 0xFFFF) return false;
  if (N->getValueType(0) == MVT::i32)
    return true;
  // For 64-bit, make sure it is sext right.
  return N->getZExtValue() == (uint64_t)(int)N->getZExtValue();

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

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

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

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

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

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

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

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

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

  }
  case 28: { 
    // Predicate_aligned4sextloadi32
    // Predicate_aligned4load
    SDNode *N = Node;

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

  }
  case 29: { 
    // Predicate_unaligned4sextloadi32
    // Predicate_unaligned4load
    SDNode *N = Node;

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

  }
  case 30: { 
    // Predicate_extloadf32
    SDNode *N = Node;
if (cast<LoadSDNode>(N)->getMemoryVT() != MVT::f32) return false;
return true;

  }
  case 31: { 
    // Predicate_extloadv4f32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::v4f32;

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

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

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

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

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

  // maskImm predicate - True if immediate is a run of ones.
  unsigned mb, me;
  if (N->getValueType(0) == MVT::i32)
    return isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
  else
    return false;

  }
  case 37: { 
    // Predicate_u12
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return (Imm & 0xFFF) == Imm; 
  }
  case 38: { 
    // Predicate_immAllZerosV
    SDNode *N = Node;

  return ISD::isBuildVectorAllZeros(N);

  }
  case 39: { 
    // Predicate_fround_inexact
    SDNode *N = Node;

  return cast<ConstantSDNode>(N->getOperand(1))->getZExtValue() == 0;

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

  return cast<ConstantSDNode>(N->getOperand(1))->getZExtValue() == 1;

  }
  case 41: { 
    // Predicate_fpimm0
    auto *N = cast<ConstantFPSDNode>(Node);
 return N->isExactlyValue(+0.0); 
  }
  case 42: { 
    // Predicate_immAnyExt8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return isInt<8>(Imm) || isUInt<8>(Imm); 
  }
  case 43: { 
    // Predicate_immSExt5NonZero
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm && isInt<5>(Imm); 
  }
  case 44: { 
    // Predicate_vecspltisb
    SDNode *N = Node;

  return PPC::get_VSPLTI_elt(N, 1, *CurDAG).getNode() != nullptr;

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

  return PPC::get_VSPLTI_elt(N, 2, *CurDAG).getNode() != nullptr;

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

  return PPC::get_VSPLTI_elt(N, 4, *CurDAG).getNode() != nullptr;

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

  return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 1);

  }
  case 48: { 
    // Predicate_vsplth_shuffle
    SDNode *N = Node;

  return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 2);

  }
  case 49: { 
    // Predicate_vspltw_shuffle
    SDNode *N = Node;

  return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 4);

  }
  case 50: { 
    // Predicate_vsldoi_unary_shuffle
    SDNode *N = Node;

  return PPC::isVSLDOIShuffleMask(N, 1, *CurDAG) != -1;

  }
  case 51: { 
    // Predicate_vpkuwum_unary_shuffle
    SDNode *N = Node;

  return PPC::isVPKUWUMShuffleMask(cast<ShuffleVectorSDNode>(N), 1, *CurDAG);

  }
  case 52: { 
    // Predicate_vpkuhum_unary_shuffle
    SDNode *N = Node;

  return PPC::isVPKUHUMShuffleMask(cast<ShuffleVectorSDNode>(N), 1, *CurDAG);

  }
  case 53: { 
    // Predicate_vmrglb_unary_shuffle
    SDNode *N = Node;

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 1, 1, *CurDAG);

  }
  case 54: { 
    // Predicate_vmrglh_unary_shuffle
    SDNode *N = Node;

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 2, 1, *CurDAG);

  }
  case 55: { 
    // Predicate_vmrglw_unary_shuffle
    SDNode *N = Node;

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 4, 1, *CurDAG);

  }
  case 56: { 
    // Predicate_vmrghb_unary_shuffle
    SDNode *N = Node;

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 1, 1, *CurDAG);

  }
  case 57: { 
    // Predicate_vmrghh_unary_shuffle
    SDNode *N = Node;

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 2, 1, *CurDAG);

  }
  case 58: { 
    // Predicate_vmrghw_unary_shuffle
    SDNode *N = Node;

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 4, 1, *CurDAG);

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

  return PPC::isVMRGEOShuffleMask(cast<ShuffleVectorSDNode>(N), true, 1, *CurDAG);

  }
  case 60: { 
    // Predicate_vmrgow_unary_shuffle
    SDNode *N = Node;

  return PPC::isVMRGEOShuffleMask(cast<ShuffleVectorSDNode>(N), false, 1, *CurDAG);

  }
  case 61: { 
    // Predicate_vpkudum_unary_shuffle
    SDNode *N = Node;

  return PPC::isVPKUDUMShuffleMask(cast<ShuffleVectorSDNode>(N), 1, *CurDAG);

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

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 1, 0, *CurDAG);

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

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 2, 0, *CurDAG);

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

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 4, 0, *CurDAG);

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

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 1, 0, *CurDAG);

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

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 2, 0, *CurDAG);

  }
  case 67: { 
    // Predicate_vmrglw_shuffle
    SDNode *N = Node;

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 4, 0, *CurDAG);

  }
  case 68: { 
    // Predicate_vpkuhum_shuffle
    SDNode *N = Node;

  return PPC::isVPKUHUMShuffleMask(cast<ShuffleVectorSDNode>(N), 0, *CurDAG);

  }
  case 69: { 
    // Predicate_vpkuwum_shuffle
    SDNode *N = Node;

  return PPC::isVPKUWUMShuffleMask(cast<ShuffleVectorSDNode>(N), 0, *CurDAG);

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

  return PPC::isVSLDOIShuffleMask(N, 0, *CurDAG) != -1;

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

  return PPC::isVSLDOIShuffleMask(N, 2, *CurDAG) != -1;

  }
  case 72: { 
    // Predicate_vpkuwum_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVPKUWUMShuffleMask(cast<ShuffleVectorSDNode>(N), 2, *CurDAG);

  }
  case 73: { 
    // Predicate_vpkuhum_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVPKUHUMShuffleMask(cast<ShuffleVectorSDNode>(N), 2, *CurDAG);

  }
  case 74: { 
    // Predicate_vmrglb_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 1, 2, *CurDAG);

  }
  case 75: { 
    // Predicate_vmrglh_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 2, 2, *CurDAG);

  }
  case 76: { 
    // Predicate_vmrglw_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 4, 2, *CurDAG);

  }
  case 77: { 
    // Predicate_vmrghb_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 1, 2, *CurDAG);

  }
  case 78: { 
    // Predicate_vmrghh_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 2, 2, *CurDAG);

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

  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 4, 2, *CurDAG);

  }
  case 80: { 
    // Predicate_vmrgew_shuffle
    SDNode *N = Node;

  return PPC::isVMRGEOShuffleMask(cast<ShuffleVectorSDNode>(N), true, 0, *CurDAG);

  }
  case 81: { 
    // Predicate_vmrgow_shuffle
    SDNode *N = Node;

  return PPC::isVMRGEOShuffleMask(cast<ShuffleVectorSDNode>(N), false, 0, *CurDAG);

  }
  case 82: { 
    // Predicate_vmrgew_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVMRGEOShuffleMask(cast<ShuffleVectorSDNode>(N), true, 2, *CurDAG);

  }
  case 83: { 
    // Predicate_vmrgow_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVMRGEOShuffleMask(cast<ShuffleVectorSDNode>(N), false, 2, *CurDAG);

  }
  case 84: { 
    // Predicate_vpkudum_shuffle
    SDNode *N = Node;

  return PPC::isVPKUDUMShuffleMask(cast<ShuffleVectorSDNode>(N), 0, *CurDAG);

  }
  case 85: { 
    // Predicate_vpkudum_swapped_shuffle
    SDNode *N = Node;

  return PPC::isVPKUDUMShuffleMask(cast<ShuffleVectorSDNode>(N), 2, *CurDAG);

  }
  }
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
      SDValue N, unsigned PatternNo,
      SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result) override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
      SDValue N, unsigned PatternNo,
      SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result)
#if DAGISEL_INLINE
  override
#endif
{
  unsigned NextRes = Result.size();
  switch (PatternNo) {
  default: llvm_unreachable("Invalid pattern # in table?");
  case 0:
    Result.resize(NextRes+2);
  return SelectAddrIdxOnly(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 1:
    Result.resize(NextRes+2);
  return SelectAddrIdx(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 2:
    Result.resize(NextRes+2);
  return SelectAddrImmX16(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 3:
    Result.resize(NextRes+2);
  return SelectAddrImmX4(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 4:
    Result.resize(NextRes+2);
  return SelectAddrImm(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 5:
    Result.resize(NextRes+1);
  return SelectAddrImmOffs(N, Result[NextRes+0].first);
  case 6:
    Result.resize(NextRes+1);
  return SelectAddr(N, Result[NextRes+0].first);
  }
}
#endif // GET_DAGISEL_BODY

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

  // Transformation function: shift the immediate value down into the low bits.
  return getI32Imm((unsigned)N->getZExtValue() >> 16, SDLoc(N));

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

  // Transformation function: get the low 16 bits.
  return getI32Imm((unsigned short)N->getZExtValue(), SDLoc(N));

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

  // Transformation function: shift the immediate value down into the low bits.
  long Val = N->getZExtValue();
  return getI32Imm((Val - (signed short)Val) >> 16, SDLoc(N));

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

  // Transformation function: get the start bit of a mask
  unsigned mb = 0, me;
  (void)isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
  return getI32Imm(mb, SDLoc(N));

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

  // Transformation function: get the end bit of a mask
  unsigned mb, me = 0;
  (void)isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
  return getI32Imm(me, SDLoc(N));

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

  return getI32Imm (N->getZExtValue(), SDLoc(N));

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

  // Transformation function: 31 - imm
  return getI32Imm(31 - N->getZExtValue(), SDLoc(N));

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

  // Transformation function: 63 - imm
  return getI32Imm(63 - N->getZExtValue(), SDLoc(N));

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

  // Transformation function: 32 - imm
  return N->getZExtValue() ? getI32Imm(32 - N->getZExtValue(), SDLoc(N))
                           : getI32Imm(0, SDLoc(N));

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

  // Transformation function: 64 - imm
  return N->getZExtValue() ? getI32Imm(64 - N->getZExtValue(), SDLoc(N))
                           : getI32Imm(0, SDLoc(N));

  }
  case 10: {  // VSPLTISB_get_imm
    SDNode *N = V.getNode();

  return PPC::get_VSPLTI_elt(N, 1, *CurDAG);

  }
  case 11: {  // VSPLTISH_get_imm
    SDNode *N = V.getNode();

  return PPC::get_VSPLTI_elt(N, 2, *CurDAG);

  }
  case 12: {  // VSPLTISW_get_imm
    SDNode *N = V.getNode();

  return PPC::get_VSPLTI_elt(N, 4, *CurDAG);

  }
  case 13: {  // VSPLTB_get_imm
    SDNode *N = V.getNode();

  return getI32Imm(PPC::getVSPLTImmediate(N, 1, *CurDAG), SDLoc(N));

  }
  case 14: {  // VSPLTH_get_imm
    SDNode *N = V.getNode();

  return getI32Imm(PPC::getVSPLTImmediate(N, 2, *CurDAG), SDLoc(N));

  }
  case 15: {  // VSPLTW_get_imm
    SDNode *N = V.getNode();

  return getI32Imm(PPC::getVSPLTImmediate(N, 4, *CurDAG), SDLoc(N));

  }
  case 16: {  // VSLDOI_unary_get_imm
    SDNode *N = V.getNode();

  return getI32Imm(PPC::isVSLDOIShuffleMask(N, 1, *CurDAG), SDLoc(N));

  }
  case 17: {  // VSLDOI_get_imm
    SDNode *N = V.getNode();

  return getI32Imm(PPC::isVSLDOIShuffleMask(N, 0, *CurDAG), SDLoc(N));

  }
  case 18: {  // VSLDOI_swapped_get_imm
    SDNode *N = V.getNode();

  return getI32Imm(PPC::isVSLDOIShuffleMask(N, 2, *CurDAG), SDLoc(N));

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